openapi: 3.0.0
info:
  title: API Endpoint Reference
  description: >-
    Tenovos offers a REST API for partner and customer integrations.  This API
    provides a RESTful endpoint, token-based authorization, HTTP methods for
    operations, and JSON-formatted payloads.  Use this API to incorporate
    Tenovos functionality into your own application.


    This API is up-versioned when a breaking change is introduced such as
      - a change in the format of the response data for one or more calls 
      - a change in the request or response type (i.e. changing an integer to a float) 
      - removing any part of the API. 
      
    This API is not up-versioned for non-breaking changes such as
      - new endpoints 
      - new response parameters
      - new optional request parameters
      
  termsOfService: https://tenovos.com/terms-of-service
  contact:
    email: product@tenovos.com
  license:
    name: Tenovos Active Story Management
    url: https://www.tenovos.com/
  version: '1.0'
externalDocs:
  description: Find out more about Tenovos
  url: https://tenovos.com
servers:
  - url: https://enterprise.services.tenovos.io/content-store-v1
  - url: https://enterprise-2.services.tenovos.io/content-store-v1
  - url: https://enterprise3.services.tenovos.io/content-store-v1
  - url: https://enterprise-4.services.tenovos.io/content-store-v1
security:
  - ApiKeyAuth: []
  - BasicAuth: []
tags:
  - name: Action Operations
    description: Invoke the Action API to retrieve information about invoked Actions.
  - name: Asset Operations
    description: >-
      Invoke the Asset API to create, retrieve, manipulate, and share Assets. 
      This API also provides operations to manage Asset relationships and
      download Asset content.
  - name: Authentication Operations
    description: >-
      Invoke the Authentication API to generate, refresh, and revoke access
      tokens.  An access token is required to perform any authorized API
      operation.
  - name: Collection Operations
    description: >-
      Invoke the Collection API to create, retrieve, edit, and delete
      Collections.  Collections are used to group and catalog related Assets for
      quick access and consumption.  Collections can be configured as:
        - private: Visible only to the user who created the Collection.
        - secured: Visible to shared users with permission.

      When retrieving the Assets within a Collection, the requesting user will
      only see the Assets that the user has access to view.  For example, a
      librarian may see all Assets within a Collection, but a general consumer
      user may only see a portion of those Assets, due to limited security
      access.
  - name: Customer Operations
    description: Invoke the Customer API to retrieve Customer account profile information.
  - name: Metadata Operations
    description: >-
      Invoke the Metadata API to retrieve Metadata Template to be applied to
      Assets during Asset creation.  A Metadata Template defines a set of
      Metadata Attributes of varying types, including Text, Date, Controlled
      Vocabulary, Tabular, and Cascading Attributes.  When a Metadata Template
      is assigned to a new Asset, the corresponding Metadata Attributes will be
      available for population on the Asset.
  - name: Search Operations
    description: >-
      Search for Collections by Collection name.


      Perform Asset searches using keywords or Attribute-specific search terms
      using the Keyword Search endpoint.


      Perform a scan on all assets based on search criteria using a cursor to
      page through the entire result set of assets.
  - name: Security Operations
    description: >-
      Invoke the Metadata API to retrieve Security Template information to be
      applied to Assets during Asset creation or edit.
  - name: User Operations
    description: Invoke the User API to retrieve User profile information.
paths:
  /action/{id}:
    get:
      operationId: GetAction
      tags:
        - Action Operations
      summary: Get details about an invoked Action.
      description: >-
        Retrieve an Action by specifying an **Object ID** or **File ID** in the
        request path.


        The user requesting the Action must have view access to the Action in
        order to retrieve the Action.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Action Object ID or File ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Returns JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Asset_Not_Found:
                  value:
                    message: Asset not found
                Missing_X-API-key:
                  value:
                    message: Forbidden
  /asset:
    post:
      operationId: CreateAsset
      tags:
        - Asset Operations
      summary: Create an Asset.
      description: >-
        Use this service to perform one of the following operations:

        1) Create a new **Asset**

        2) Create a new **Version** of an existing Asset

        3) Create a new **Metadata-only Asset**


        Once the new Asset or Asset Version is created, a new Object ID is
        returned to identify the new Asset / Asset Version.


        When a new Asset is created, the Asset is considered a metadata-only
        Asset until a corresponding content file is uploaded.  The Asset's
        content file size must be less than or equal to 5GB.


        After invoking the Create Asset service, the response shall include a
        signed URL to upload the content file.  The upload should be performed
        using a PUT request with the file content attached as binary data in the
        request body.


        **After creating an asset greater than 100MB, multiple presigned urls
        will be returned.  You must upload file chunks of 100MB to each one.**


        **You must call the /asset/complete endpoint to complete or cancel a
        multi-part file upload, otherwise the file will not be available to
        Tenovos.**


        The user submitting the request to create an Asset must have the
        **Upload** Security Role Privilege and be granted access to at least one
        Security Template to assign to the new Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: >-
          The Request Body must be a JSON object.

          To create a **new version** instead of new asset pass an additional
          property **originalFileId** as part of the JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetCreateRequest'
            examples:
              Create_a_New_Asset:
                $ref: '#/components/examples/CreateAsset'
              Create_a_New_Version:
                $ref: '#/components/examples/CreateNewAssetVersion'
              Create_Asset_with_Multipart_Upload:
                $ref: '#/components/examples/MultipartUpload'
        required: true
      responses:
        '200':
          description: The Response Body is a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetCreateResponse'
              examples:
                Create_a_New_Asset:
                  $ref: '#/components/examples/AssetCreateResponse'
                Create_Asset_With_Multipart:
                  $ref: '#/components/examples/MultipartUploadResponse'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Missing_or_Invalid_Filename:
                  value:
                    message: Failed to parse Asset
                Invalid_Original_File_ID:
                  value:
                    message: Invalid Response from Create Asset
                Invalid_FileType_for_Metadata_Asset:
                  value:
                    message: Failed to parse Asset
                Missing_Metadata:
                  value:
                    message: Unexpected end of JSON input
                Missing_Metadata_Template_ID:
                  value:
                    message: 'Invalid Asset: Missing Metadata Template ID'
                Missing_Security_Template_ID:
                  value:
                    message: 'Invalid Asset: Missing Security Template ID(s)'
    patch:
      operationId: EditAssets
      tags:
        - Asset Operations
      summary: Bulk edit one or more Assets.
      description: >-
        Perform metadata edits and/or reassign Security Templates to one or more
        Assets.  Assets are identified by Object ID.  If multiple Assets are
        specified, the same metadata and/or security edits will be applied to
        all Assets in the request.


        Each Metadata Attribute is identified by a Metadata Definition ID.


        The user performing the bulk edit must have the **Edit Metadata**
        permission granted on each Asset being edited.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: >-
          The Request Body must be a JSON object. The object must contain
          **metadata** and/or **securityTemplateIds** as well as an array of
          **objectIds**.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetBulkEditRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetBulkEditResponse'
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: >-
                  Invalid metadataTemplateId | Invalid Request: Missing Bulk
                  Edit Asset Details
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /asset/{id}:
    get:
      operationId: GetAsset
      tags:
        - Asset Operations
      summary: Get a single Asset.
      description: >-
        Retrieve an Asset by specifying an **Object ID** or **File ID** in the
        request path.


        The user requesting the Asset must have view access to the Asset in
        order to retrieve the Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Asset Object ID or File ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Returns JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Asset_Not_Found:
                  value:
                    message: Asset not found
                Missing_X-API-key:
                  value:
                    message: Forbidden
    patch:
      operationId: UpdateAsset
      tags:
        - Asset Operations
      summary: Update a single Asset.
      description: >-
        Update the metadata attributes and/or the Security Template assignments
        for an Asset identified by Object ID.  The Object ID must be specified
        in the request path.


        The user submitting the request must have edit access to the Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Asset object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetUpdateRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAssetResponse'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Invalid_Metadata_Provided:
                  value:
                    status: error
                    message: Invalid fields for metadata template
                Invalid_Security_Templates_Provided:
                  value:
                    status: error
                    message: Invalid security template ID(s)
  /asset/{id}/content:
    get:
      operationId: GetAssetContent
      tags:
        - Asset Operations
      summary: Get the content file download link of an Asset.
      description: >-
        Retrieve a presigned URL to the Asset's source file by Object ID.


        The user requesting the Asset's source file must have download access to
        the Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Asset object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: >-
            The response is a JSON object containing URL to download the
            content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetContent'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
        '502':
          description: Invalid Asset Object ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Internal server error
  /asset/{id}/delete:
    post:
      operationId: DeleteAsset
      tags:
        - Asset Operations
      summary: Soft Delete or Un-delete an Asset.
      description: >-
        Soft delete or un-delete an Asset.  An Asset that has been soft-deleted
        can be later purged from the recycle bin.  A soft-deleted Asset cannot
        be edited or downloaded.


        The user attempting to soft delete or un-delete an Asset must be granted
        the **Delete** Security Template permission on the Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Asset Object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: >-
          The request body is a JSON object. 

          Use **delete** action to soft delete the asset and **un-delete** to
          un-delete the asset.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetDeleteRequest'
            examples:
              Delete_Asset:
                value:
                  action: delete
                  deleteType: full
              Un-delete_Asset:
                value:
                  action: undelete
                  deleteType: full
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
        '400':
          description: Missing secondaryIds id or linkType
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StringErrorResponse'
              example: >-
                Invalid Request: ["Missing Secondary Object ID or Link Type for
                Relationship 0"]
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Undelete_Asset_that_is_not_Soft-Deleted:
                  value:
                    message: Failed to UnDelete Asset
        '500':
          description: Invalid Asset Object ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Failed to delete Relationship
                detail: payload.body.map is not a function
        '502':
          description: Missing or Invalid action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Internal server error
  /asset/{id}/latest:
    get:
      operationId: GetLatestVersion
      tags:
        - Asset Operations
      summary: Get latest version of an Asset.
      description: >-
        Retrieve latest version of an Asset by specifying an **Object ID** in
        the request path.


        The user requesting the Asset must have view access to the Asset in
        order to retrieve the Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Asset Object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Returns JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Asset_Not_Found:
                  value:
                    message: Asset not found
                Missing_X-API-key:
                  value:
                    message: Forbidden
  /asset/{id}/link:
    get:
      operationId: GetAssetRelationship
      tags:
        - Asset Operations
      summary: Retrieve Asset relationships associated with an Asset.
      description: >-
        Retrieve all Asset relationships associated with an Asset specified by
        Object ID. In a relationship, the Asset can be a primary or secondary
        (related) Asset. For example, in a parent / derivative relationship, the
        primary Asset would be the **parent**, while the secondary Asset would
        be the **derivative**. Both the Object ID and relationship type for each
        Asset will be returned.  Relationships will be retrieved where the Asset
        is a primary or secondary Asset.


        The user requesting the Asset relationships must have **View** access to
        both the primary Asset and the secondary Assets in order to retrieve the
        relationships.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Asset object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AssetRelationship'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    post:
      operationId: CreateRelationship
      tags:
        - Asset Operations
      summary: Create a relationship between Assets.
      description: >-
        Create a bidirectional relationship between a primary Asset and one or
        more secondary Assets.  Asset relationships allow a user to quickly
        navigate from one Asset to another related Asset.


        The user attempting to create a relationship using Asset must be granted
        the **Relationship** Security Template permission on the Asset.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Asset object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: >-
          The Request Body is a JSON object that provides information about
          relationships to create.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelationshipCreateRequest'
        required: true
      responses:
        '200':
          description: >-
            The response is an array that contains a status(success/failed) for
            each relationship.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AssetCreateLinkResponse'
        '400':
          description: Invalid Asset Object ID or secondaryIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StringErrorResponse'
              example: Failed to create Relationship
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    patch:
      operationId: RemoveRelationship
      tags:
        - Asset Operations
      summary: Remove a relationship between Assets.
      description: >-
        Remove a relationship between a primary Asset and one or more secondary
        Assets.  Specify the primary Asset Object ID as a path parameter. 
        Specify the secondary Asset Object IDs and Link Types as an array in the
        request body.


        The user requesting the Asset relationships must have view access to
        both the primary Asset and the related Assets in order to relationships
        and the related Assets.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Asset object ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body is a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelationshipDeleteRequest'
        required: true
      responses:
        '200':
          description: Successful operation with relationshipId
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetLinkDeleteResponse'
        '400':
          description: Invalid JSON request object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StringErrorResponse'
              example: 'Invalid Request: ["Missing Secondary Object IDs"]'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /asset/{id}/version:
    get:
      operationId: GetVersions
      tags:
        - Asset Operations
      summary: Get the version history of an Asset.
      description: >-
        Retrieve a list of all versions of an Asset by specifying an **Object
        ID** or Original **File ID** in the request path.


        The user requesting the Asset must have view access to the Asset in
        order to retrieve the Asset version history.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Object ID or File ID of the asset.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Asset'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Returns JSON object with error message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Forbidden:
                  value:
                    message: Forbidden
                Invalid_Object_ID:
                  value:
                    message: Asset not found
  /asset/complete:
    post:
      operationId: FinishUpload
      tags:
        - Asset Operations
      summary: Complete Upload.
      description: >-
        Complete/Cancel multipart upload once all parts are uploaded. **This
        endpoint must be called after creating asset when the file is sent in
        chunks of 100MB each.  For files 100MB or less in size this operation is
        not needed.**
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: The Request Body must be a JSON array.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetMultipartUploadRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetMultipartUploadResponse'
        '400':
          description: Error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Validation_Errors:
                  value:
                    message: 'Failed to parse asset: Missing fields'
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /asset/content/preview:
    post:
      operationId: ReplacePreview
      tags:
        - Asset Operations
      summary: Assign an image or PDF to be the new preview for one or more Assets.
      description: >-
        Generate a request to upload an image or PDF file to be the new preview
        for one or more Assets.  Supported preview image formats include: GIF,
        JPG, PNG, and TIFF.


        If a PDF file is uploaded to be the preview for a document Asset, then
        the PDF will also be displayed in the Asset Detail page as the
        multi-page PDF preview.


        After submitting the request to replace an Asset preview, 


        The user replacing the Asset previews must be granted the **Replace
        Mezzanine** and **Upload** User Role Permissions and **View** Security
        Template Permission on the Assets being updated.


        For Federated Assets, if user provides optional **contentPaths** key in
        the request body, then files referenced in the **contentPaths** >
        **<named-rendition-key>** properties are used as renditions. 
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: The Request Body must be a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetReplacePreviewRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetShareResponse'
        '400':
          description: Invalid status value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StringErrorResponse'
              examples:
                Missing_Asset_File_ID:
                  value: >-
                    The following fields are required, but are missing or
                    incorrect ["fileIds"]
                Missing_File_Name:
                  value: >-
                    The following fields are required, but are missing or
                    incorrect ["filename"]
                Missing_File_Size:
                  value: >-
                    The following fields are required, but are missing or
                    incorrect ["filesize"]
                Invalid_File_ID:
                  value: Provided fileIds are invalid
                Invalid_Rendition_Type_in_Content_Paths:
                  value: 'Invalid Rendition Name(s): invalidName'
                File_Referenced_in_Content_Paths_Not_Found:
                  value: File not found on provided content path
                No_Rendition_Path_Specified_in_Content_Paths:
                  value: No Rendition Path Specified
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /asset/expose:
    post:
      operationId: GetAssetUrl
      tags:
        - Asset Operations
      summary: Exposes Content.
      description: >-
        Exposes Asset's pre-signed urls with expiration time given in seconds


        Asset being exposed needs to have a Security Template with **Download** 
        permission and and User must have role with **Download** privilege.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: The Request Body must be a JSON array.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetExposeRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetExposeResponse'
        '400':
          description: Error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                No_Asset_Found:
                  value:
                    message: No assets found
                Validation_Errors:
                  value:
                    message: Body requires at least single item
        '401':
          description: Unauthorized. Missing Authorization or AccessToken or expired token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /asset/scan:
    post:
      operationId: ScanAssets
      tags:
        - Search Operations
      summary: Scan assets by paging through an entire search result set.
      description: >-
        Provides the ability to scan a search result set of assets using a
        cursor to fetch the next set of results pages on the limit (page size)
        passed.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scan'
        required: true
      responses:
        '200':
          description: |-
            The Response Body will be a JSON object
              
             
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralResponse'
              example:
                status: error
                message: Invalid Search Query
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Failed operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
  /asset/share:
    post:
      operationId: ShareAssets
      tags:
        - Asset Operations
      summary: Share a selection of Assets.
      description: >-
        Share a selection of Assets to a user specified by Email address.


        The user sharing the Assets must be granted the **Download** Security
        Template permission on the Assets being shared.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: The Request Body is a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetShareRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetShareResponse'
              examples:
                Success:
                  value:
                    message: Message sent successfully
                Missing_Recipient:
                  value:
                    message: Bad Data. Recipient information is required.
                Invalid_Asset_File_ID:
                  value:
                    status: error
                    message: >-
                      Either the users or assets does not belong to senders
                      customer
                Missing_Asset_File_ID:
                  value:
                    status: error
                    message: >-
                      Invalid input. No Collection or Assets are selected to
                      share.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                Missing_Sender:
                  value:
                    message: Missing Sender
                Missing_Share_Users:
                  value:
                    message: Invalid Share Asset Missing shareUsers
                Invalid_Share_Users:
                  value:
                    status: error
                    message: >-
                      Either the users or assets does not belong to senders
                      customer
  /asset/transform:
    post:
      operationId: GetTransformation
      tags:
        - Asset Operations
      summary: Share or download transformation of an Assets.
      description: >-
        Transform asset and download or share transformation with an email. If
        email is available then this API will share link (send email) of
        transformed file.


        Note: Access to this API Service is currently limited.  Contact Tenovos
        Customer Support to inquire further about access to this API Service if
        needed.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: X-API-Verification-Key
          in: header
          description: >-
            Additional Customer-specific API verification key to limit access to
            this API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body is a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetTransformRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetTransformResponse'
              examples:
                Success:
                  value:
                    message: Message sent successfully
                Missing_Recipient:
                  value:
                    message: Bad Data. Recipient information is required.
                Invalid_Asset_File_ID:
                  value:
                    status: error
                    message: >-
                      Either the users or assets does not belong to senders
                      customer
                Missing_Asset_File_ID:
                  value:
                    status: error
                    message: >-
                      Invalid input. No Collection or Assets are selected to
                      share.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                Missing_Sender:
                  value:
                    message: Missing Value for Sender
                Missing_Share_Users:
                  value:
                    message: 'Invalid Share Asset: Missing shareUsers'
                Invalid_Share_Users:
                  value:
                    status: error
                    message: >-
                      Either the users or assets does not belong to senders
                      customer
  /workflow-templates:
    get:
      operationId: GetProofTemplate
      tags:
        - Proof Operations
      summary: Get workflow templates.
      description: Get active workflow templates.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowTemplateResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /proof/{id}/status:
    get:
      operationId: GetProofStatus
      tags:
        - Proof Operations
      summary: Get Proof Status.
      description: Get Proof status and decision status
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a Proof ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProofStatusResponse'
        '400':
          description: Error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /proofing/user:
    post:
      operationId: CreateProofUser
      tags:
        - Proof Operations
      summary: Create a Proofing User.
      description: >-
        Creates a Proofing User account.  Must be a Story Orchestration customer
        and have available user licenses.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProofUser'
        required: true
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProofUserResponse'
        '400':
          description: Error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /proof/{id}/reviewer-url:
    post:
      operationId: GetReviewerUrl
      tags:
        - Proof Operations
      summary: Get Reviewer URL.
      description: Get proof Reviewer URL.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: X-API-Verification-Key
          in: header
          description: Verification key created in Config customer specific.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a Proof ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body is a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetProofReviewerUrlRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProofReviewerUrlResponse'
              example:
                url: https://myco.com/proof/mumcj6m7l07s07sh7smo70sn93
        '400':
          description: Invalid email is Inputted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Invalid_Email:
                  value:
                    message: Please provide valid email
                Invalid_Proof_ID:
                  value:
                    message: ‘Valid Proof ID is Required’
                Missing_X-API-Verification-Key:
                  value:
                    message: X-API-Verification-Key header is missing
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Unauthorized:
                  value:
                    message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /auth/impersonate:
    post:
      operationId: Impersonate
      deprecated: true
      tags:
        - Authentication Operations
      summary: Impersonate a given user.
      description: >-
        Use this operation to request an access token to perform other API
        operations that require authorization.


        The authentication response includes an **accessToken** which is used as
        the AccessToken request header when performing any authenticated
        operation.


        This operation will also accept the previous authentication response as
        the request payload to return a refreshed access token.  The access
        token expires after 1 hour and must be refreshed after expiration, using
        the included **refreshToken**.  The refresh token can be used for up to
        30 days to request new access tokens, or until the refresh token is
        revoked.  Once the refresh token expires or is revoked, the user
        credentials must be provided again to generate a new access token and
        refresh token.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: >-
          The Request Body must be a JSON-formatted string.


          The following parameters are required to request an access token:

          * username


          * The credentials obtained after invoking this API will not be able to
          refresh tokens
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImpersonateRequest'
            examples:
              New_Session:
                $ref: '#/components/examples/impersonateUserExample'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImpersonateResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Invalid Authentication Parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                No_Username:
                  value:
                    status: error
                    message: Invalid Authentication Parameters
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Invalid Authentication Parameters
        '422':
          description: Pre Conditions Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Invalid Authentication Parameters
  /auth/token:
    post:
      security:
        - BasicAuth: []
          ApiKeyAuth: []
      operationId: GetAuthToken
      tags:
        - Authentication Operations
      summary: Request/Refresh an access token.
      description: >-
        Use this operation to request an access token to perform other API
        operations that require authorization.



        The authentication response includes an **accessToken** which is used as
        the AccessToken request header when performing any authenticated
        operation.


        This operation will also accept the previous authentication response as
        the request payload to return a refreshed access token.  The access
        token expires after 1 hour and must be refreshed after expiration, using
        the included **refreshToken**.  The refresh token can be used for up to
        30 days to request new access tokens, or until the refresh token is
        revoked.  Once the refresh token expires or is revoked, the user
        credentials must be provided again to generate a new access token and
        refresh token.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: |-
          The Request Body must be a JSON-formatted string.

          The following parameters are required to request an access token:
          * clientId
          * username
          * password

          The following parameters are required to refresh the access token:
          * accessToken
          * refreshToken
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthRequest'
            examples:
              New_Token:
                $ref: '#/components/examples/newTokenExample'
              Refresh_Token:
                $ref: '#/components/examples/refreshTokenExample'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Invalid Authentication Parameters
        '401':
          description: >-
            Unauthorized operation.  This occurs when invalid user credentials
            are provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                No_Client_ID:
                  value:
                    status: error
                    message: >-
                      2 validation errors detected: Value '' at 'clientId'
                      failed to satisfy constraint: Member must have length
                      greater than or equal to 1; Value '' at 'clientId' failed
                      to satisfy constraint: Member must satisfy regular
                      expression pattern: [\w+]+
                No_Username:
                  value:
                    status: error
                    message: Invalid Authentication Parameters
                No_Password:
                  value:
                    status: error
                    message: Missing required parameter PASSWORD
    delete:
      operationId: ExpireToken
      tags:
        - Authentication Operations
      summary: Expire an access token.
      description: >-
        Expire an access token before the token's expiration date and revoke
        access to the system.


        Access tokens normally expire within an hour.  This operation expires an
        access token upon request so that the token may no longer be used for
        future operations.


        The **Request Body** must be a JSON object.  

        The following parameters are required to expire the access token:

        ```

        {  
          "endpointUrl": "URL",  
          "clientId": "string",  
          "userPoolId": "string",
          "username": "string",
          "password": "string",
          "session":
          {
            "accessToken": "string",
            "refreshToken": "string",
            "authorization": "string"
          }
        }

        ```    
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: Provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '401':
          description: >-
            Unauthorized operation.  This occurs when invalid refresh token and
            user credentials are provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Failed to Expire Session and Logout 1
        '502':
          description: Bad Gateway. Missing clientId or userPoolId
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Internal server error
  /collection:
    post:
      operationId: CreateCollection
      tags:
        - Collection Operations
      summary: Create a Collection.
      description: >-
        Create a collection and add assets to it. Assets in the collection are
        identified by FileID therefore **collectionDocument** contains **File
        ID**


        The user should have **View** permission on assets to be added to the
        collection.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: 'The Request Body must be a JSON object. '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectionCreateRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionCreateResponse'
              examples:
                Success:
                  $ref: '#/components/examples/CollectionCreateSuccessResponse'
                Missing_Required_Fields:
                  $ref: '#/components/examples/CollectionCreateErrorResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_Collection_ID:
                  value:
                    message: Collection does not exist
  /collection/{id}:
    get:
      operationId: GetCollection
      tags:
        - Collection Operations
      summary: Get a single Collection and assigned Assets.
      description: >-
        Retrieve a single Collection specified by Collection ID.  The retrieved
        Collection may be either a secured Collection or a private Collection
        created by the User.  The Collection will include the list of Assets
        assigned to the Collection, referenced by Asset **File ID**.


        The User retrieving the Collection must have the **Collection** Security
        Role Privilege.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Specify Collection ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body is a JSON object describing the collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: response contains detailed error message.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Does_Not_Exist:
                  value:
                    message: Collection does not exist
                Missing_X-API-key:
                  value:
                    message: Forbidden
    delete:
      operationId: DeleteCollection
      tags:
        - Collection Operations
      summary: Delete a Collection.
      description: >-
        User can delete the collection, but the Assets assigned to the
        Collection will remain and dissociate from this Collection.


        The User submitting the request to delete a private Collection must have
        the **Collection** and **Delete** Security Role Privilege.  Secured
        Collections may only be deleted by Users with the **Purge** Security
        Role Privilege.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Specify Collection ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CollectionDeleteResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    patch:
      operationId: UpdateCollection
      tags:
        - Collection Operations
      summary: Update a Collection.
      description: >-
        Update a Collection's attributes or assigned Assets. The list of
        existing assets is replaced with assets provided in the call. Assets in
        the collection are referenced by Asset **FileID** therefore the
        **collectionDocument** must contain asset's **FileID**.


        The User editing the Collection must have the **Collection** Security
        Role Privilege.  The User must have **View** access to the Assets that
        are being added to or removed from the Collection.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Specify Collection ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectionUpdateRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                example:
                  message: Collection update was successful
                items:
                  $ref: '#/components/schemas/CollectionUpdateResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_Collection_ID:
                  value:
                    message: >-
                      A collection with the same name and customerId already
                      exists
  /collection/{id}/share:
    post:
      operationId: ShareCollection
      tags:
        - Collection Operations
      summary: Share all accessible Assets in a Collection.
      description: >-
        Share the zip file of all accessible Assets in a collection and send to
        the specified emails in share users list. User can also send the custom
        share message along with request. 


        The user sharing the Assets must be granted the **Download** and
        **Share** Security Template permission on the Assets being shared.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Specify Collection ID
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectionShareRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionShareResponse'
        '400':
          description: Invalid status value
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_Collect_ID:
                  value:
                    message: Collection does not exist
  /cart:
    post:
      operationId: CreateCart
      tags:
        - Cart Operations
      summary: Create a Cart.
      description: >-
        Create a cart and add assets to it. Assets in the collection are
        identified by FileID therefore **collectionDocument** contains **File
        ID**
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: 'The Request Body must be a JSON object. '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CartCreateRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CartCreateResponse'
              examples:
                Success:
                  $ref: '#/components/examples/CollectionCreateSuccessResponse'
                Missing_Required_Fields:
                  $ref: '#/components/examples/CollectionCreateErrorResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_Collection_ID:
                  value:
                    message: Collection does not exist
  /customer:
    get:
      operationId: GetCustomer
      tags:
        - Customer Operations
      summary: Get a parent Customer.
      description: Retrieve the parent Customer profile information of a current user.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      responses:
        '200':
          description: >-
            The Response Body will be a JSON object that contains information
            about the customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /metadata/template:
    get:
      operationId: GetMetadataTemplates
      tags:
        - Metadata Operations
      summary: Retrieve all Metadata Templates available to the current User.
      description: >-
        Retrieve all metadata templates available to the requesting user


        The user submitting the request must have administrator rights to view
        metadata templates.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      responses:
        '200':
          description: The Response Body will be a JSON array of template objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MetadataTemplate'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /metadata/template/{id}:
    get:
      operationId: GetMetadataTemplate
      tags:
        - Metadata Operations
      summary: Get Metadata Template by ID.
      description: >-
        Retrieve the metadata template and its attributes list by template ID 


        The user submitting the request to metadata template must have the
        **Metadata Template Management** security role privilege.


        In response, it will contain the metadata groups template have and each
        group metadata attributes list.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Specify a Metadata Template ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: >-
            The Response Body will be a JSON object representing the metadata
            template.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataTemplate'
        '400':
          description: Wrong Template ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Metadata Template not found
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /metadata/vocabulary:
    get:
      operationId: GetAllControlledVocab
      tags:
        - Metadata Operations
      summary: Retrieve all Controlled Vocabularies available to the current User.
      description: >-
        Retrieve all the controlled vocabularies available to the current user.


        In response, it will contain the list of metadata key/value pair and
        metadata definition attributes like id, name, type and search fields
        etc.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: >-
            The Response Body will be a JSON-formatted list including the
            following properties.

            - **metadata**: Vocabulary metadata
              - **values**: Key/Value list
                - **valueId** 
                - **valueName**
              - **searchable**: Toggle searchability 
            - **metadataDefinitionId**

            - **metadataDefinitionName**

            - **metadataDefinitionSearchField**: Map search field for this
            metadata definition

            - **metadataDefinitionType**: Metadata definition type

            - **createdEpoch**: Create time in milliseconds

            - **lastUpdatedEpoch**: Update time in milliseconds
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ControlledVocabulary'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    post:
      operationId: CreateControlledVocab
      tags:
        - Metadata Operations
      summary: Create a Controlled Vocabulary.
      description: >-
        Create a Controlled Vocabulary. User must have permission to create a
        controlled vocabulary.


        In response, it will contain the object of metadata definition
        attributes like id, name, type and search fields etc.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ControlledVocabularyCreateRequest'
        required: true
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlledVocabularyResponse'
        '400':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_Name:
                  value:
                    message: name cannot be empty
                Missing_Value:
                  value:
                    message: value cannot be empty
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /metadata/vocabulary/{id}:
    get:
      operationId: GetControlledVocab
      tags:
        - Metadata Operations
      summary: Get Controlled Vocabulary by ID.
      description: >-
        Retrieve the Controlled Vocabulary and its attributes by Controlled
        Vocabulary Id


        In response, it will contain the list of metadata key/value pair and
        metadata definition attributes like id, name, type and search fields
        etc.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a Controlled Vocabulary ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body will be a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlledVocabularyResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
        '404':
          description: Wrong ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Controlled vocabulary not found
    delete:
      operationId: DeleteControlledVocab
      tags:
        - Metadata Operations
      summary: Remove a Controlled Vocabulary.
      description: Delete a Controlled Vocabulary.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a Controlled Vocabulary ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralResponse'
              example:
                status: success
                message: Metadata Definition delete operation succeeded
        '400':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VocabularyDeleteErrorResponse'
              example:
                message: Controlled vocabulary not found
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    patch:
      operationId: UpdateControlledVocab
      tags:
        - Metadata Operations
      summary: Update a Controlled Vocabulary.
      description: >-
        Update a Controlled Vocabulary. User must have permission to update a
        controlled vocabulary.


        In response, it will contain the object of metadata definition
        attributes like id, name, type and search fields etc.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: Specify a Controlled Vocabulary ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: >-
          The Request Body will be a JSON-formatted object including the
          following properties. Each property here is an operation. All of these
          operations can be applied in a single request. After updating the
          Controlled Vocabulary, execute */metadata/apply* POST request to apply
          the new changes.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ControlledVocabularyUpdateRequest'
            examples:
              Change_Name:
                $ref: '#/components/examples/ControlledVocabularyNameChange'
              Add_Values:
                $ref: '#/components/examples/ControlledVocabularyAdd'
              Update_Values:
                $ref: '#/components/examples/ControlledVocabularyUpdate'
              Delete_Values:
                $ref: '#/components/examples/ControlledVocabularyDelete'
        required: true
      responses:
        '200':
          description: >-
            The Response Body will be a JSON-formatted object having operation
            as key and each operation including the following properties.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ControlledVocabularyResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
        '404':
          description: Wrong ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Controlled vocabulary not found
  /metadata/apply:
    post:
      operationId: ApplyMetadataChanges
      tags:
        - Metadata Operations
      summary: Apply the metadata definition changes.
      description: >-
        Apply the metadata definition changes. Use this operation after making
        any modification in metadata.


        In response, it will contain the object of metadata definition
        attributes like id, name, type and search fields etc.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: Changes applied successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataApplyResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /search/collection:
    post:
      operationId: SearchCollections
      tags:
        - Search Operations
      summary: Search for Collections.  Return a list of Collections.
      description: >-
        Retrieve the collection list against the list of search terms/keywords.
        By default **AND** operation will be applied between the search terms.


        By default 50 collections will return, you can also set search offset by
        setting **from** attribute, for example for first page set **from** to
        zero and after that you set 50, 100, 150 and so on.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: >-
          The Request Body must be a JSON-formatted list of collections which
          include the following properties.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Search'
        required: true
      responses:
        '200':
          description: The Response Body must be a JSON object
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CollectionSearchResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralResponse'
              example:
                status: error
                message: Invalid Search Query
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: returns JSON object with error description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
  /search/keyword:
    post:
      operationId: Search
      tags:
        - Search Operations
      summary: Perform a Keyword Search.  Return a list of Assets.
      description: >-
        To Retrieve the Assets list there is two types of searches available,


        **Simple Keyword Search:** Requesting user can get list of Assets
        against search terms/keywords list. For example ["keyword1", "keyword2"]


        **Facet Search:** Requesting user can get list of Assets against Facet
        value list. For example ["Facet: facet_value"]


        **Targeted Search:** Requesting user can target keyword searches against
        Filename, Asset ID, Metadata, or Content (extracted text from documents)
        by passing the optional property of keywordSearchField.


        Requesting user can apply the combination of both searches and if there
        is no keyword/facet in requesting body it will apply wildcard search.


        By default **AND** operation will be applied with search terms and/or
        facets.


        By default, up to 50 Assets will return from the search.You can also set
        search offset by setting the **from** property. For example, for the
        first page, set **from** to zero. After that set **from** to 50, 100,
        150, etc.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Search'
        required: true
      responses:
        '200':
          description: |-
            The Response Body will be a JSON object
              
             
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralResponse'
              example:
                status: error
                message: Invalid Search Query
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Failed operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
  /security/template:
    get:
      operationId: GetSecurityTemplates
      tags:
        - Security Operations
      summary: Retrieve a list of Security Templates available to the current User.
      description: >-
        User will get the list of Security Templates available to him.


        The user submitting the request must have administrator rights to view
        Security Templates.


        In response user will get a list, containing template names and their
        corresponding template id.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SecurityTemplate'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /security/groups:
    get:
      operationId: GetSecurityGroups
      tags:
        - Security Operations
      summary: Retrieve a list of Security Groups.
      description: >-
        User will get the list of Security Groups available in the system.


        The user submitting the request must have administrator rights to User
        Management.


        In response user will get a list, containing group names and their
        corresponding group id.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body is a JSON object of Security User Groups and ID's.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SecurityGroups'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /user:
    get:
      operationId: GetCurrentUser
      tags:
        - User Operations
      summary: Get the current User's Profile.
      description: >-
        Use this endpoint to get the user profile information for the account
        that you've authenticated against the Tenovos API with.  

        This is useful when needing to check which groups you are in which may
        restrict the API calls you can make.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    post:
      operationId: CreateUser
      tags:
        - User Operations
      summary: Create a new User in system.
      description: >-
        Use this endpoint to create a new user account in the system.  You must
        have User Management role privilege and Security Template Management
        role privilege in order to create a user and assign groups.

        This endpoint can be used to create local or federated users.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequest'
        required: true
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /user/{id}:
    get:
      operationId: GetUser
      tags:
        - User Operations
      summary: Get User Profile by ID.
      description: >-
        Current user will get its profile information in response.

        User will also get ID of a role assign to him and a list of group IDs
        from which it belongs to.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a User Profile ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body will be a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_User_ID:
                  value:
                    message: User not found
    patch:
      operationId: UpdateUser
      tags:
        - User Operations
      summary: Update User attributes.
      description: >-
        Update User Profile attributes such as First Name, Last Name, Friendly
        Name, Email, Company, Country, Contact, Phone, and User Role. The user
        role can be updated by sending either role id or role name.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a User Profile ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
        required: true
      responses:
        '200':
          description: The Response Body will be a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad Request, one or more of the required fields are not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                Missing_Required_Fields:
                  value:
                    status: error
                    message: >-
                      Bad Request: one or more of the required fields are not
                      provided
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_User_ID:
                  value:
                    message: User not found
  /user/{id}/add-to-group:
    patch:
      operationId: AddUserToGroup
      tags:
        - User Operations
      summary: Add User to Security Group.
      description: Assign a Security Group to a User Profile.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a User Profile ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateSecurityGroupRequest'
        required: true
      responses:
        '200':
          description: The Response Body will be a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserUpdateSecurityGroupResponse'
        '400':
          description: Bad Request, Group is not valid or User is already part of group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                GroupAlreadyAssigned:
                  value:
                    status: error
                    message: 'Bad Request: User is already part of this group.'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_User_ID:
                  value:
                    message: User not found
  /user/{id}/remove-from-group:
    patch:
      operationId: DeleteGroupFromUser
      tags:
        - User Operations
      summary: Remove User from Security Group.
      description: Remove an assigned Security Group from a User Profile.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: id
          in: path
          description: Specify a User Profile ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateSecurityGroupRequest'
        required: true
      responses:
        '200':
          description: The Response Body will be a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserUpdateSecurityGroupResponse'
        '400':
          description: Bad Request, Group is not valid or User is not part of group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorResponse'
              examples:
                UserNotInGroup:
                  value:
                    status: error
                    message: 'Bad Request: User is not part of this group.'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
                Incorrect_User_ID:
                  value:
                    message: User not found
  /user/search/{searchText}:
    get:
      operationId: GetUserByText
      tags:
        - User Operations
      summary: Search User Profiles by Text.
      description: >-
        User will get a list of User Profiles matching the searchText in
        response.

        Provided searchText will be matched against the user attributes case
        insensitively - First Name, Last Name, Friendly Name, Email, Phone,
        Company, Contact, Country, Group Names, and Role Name.

        User will only see the list of users that are part of the user groups
        that it belongs to.
      parameters:
        - name: X-API-Key
          in: header
          description: Customer-specific API key required to invoke API.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Provided by Authentication Token creation operation
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: AccessToken
          in: header
          description: JWT token provided by Authentication Token creation operation.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: searchText
          in: path
          description: Specify searchText to search across user attributes.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: The Response Body will be a JSON object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSearchResponse'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Missing_X-API-key:
                  value:
                    message: Forbidden
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    BasicAuth:
      type: http
      scheme: basic
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    Action:
      type: object
      properties:
        createdBy:
          type: string
          description: User ID who initiated this Action
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c405214e
        createdEpoch:
          type: integer
          description: Creation time in milliseconds
          example: 1608745510614
        currentVersion:
          type: string
          description: Current version flag
          example: 'Y'
          enum:
            - 'Y'
            - 'N'
        customerId:
          type: string
          description: Customer ID of Created By User's Account
          example: '123203455'
        fileId:
          type: string
          description: Asset File ID
          format: uuid
        filename:
          type: string
          description: Action file name
          example: action.png
        fileState:
          type: string
          description: Action content file state
          enum:
            - available
            - recycle bin
        lastUpdatedBy:
          description: User ID who last updated the asset
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c40133ds
        lastUpdatedEpoch:
          type: integer
          description: Last update time in milliseconds
          example: 1612333543954
        metadata:
          $ref: '#/components/schemas/MetadataDocument'
        metadataDenormalized:
          type: object
          description: >-
            Metadata document is a flat list of metadata attributes and values,
            where values are either in text values or foreign keys / referential
            values
        metadataState:
          type: string
          description: Action metadata state
          example: available
          enum:
            - available
            - recycle bin
        metadataTemplateId:
          type: string
          description: Metadata Template ID
          format: uuid
          example: ea6eb24d-adef-4380-bd02-f64f567c437f
        objectId:
          type: string
          description: Action Object ID
          format: uuid
          example: e6f4bd5e-9bea-43cb-b15e-22582fa5322e
        objectType:
          type: string
          description: Action Object type
          example: Asset
          enum:
            - Action
        originalFileId:
          type: string
          description: The ID of the original version of the Action
          format: uuid
          example: 003391e4-e78a-4186-b2d7-b5d4fcbe445d
        renditions:
          $ref: '#/components/schemas/AssetRenditions'
        securityTemplateIds:
          type: array
          description: List of Security Template IDs
          items:
            type: string
            format: uuid
            example: 7d6f4e30-f423-11e9-8071-89c0c4052156
        securityDenormalized:
          $ref: '#/components/schemas/AssetSecurityDenormalized'
        technicalMetadata:
          $ref: '#/components/schemas/AssetTechnicalMetadata'
        versionNumber:
          type: integer
          description: Action version number
          deprecated: true
    Asset:
      type: object
      properties:
        createdBy:
          type: string
          description: User ID who created this Asset
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c405214e
        createdEpoch:
          type: integer
          description: Creation time in milliseconds
          example: 1608745510614
        currentVersion:
          type: string
          description: Current version flag
          example: 'Y'
          enum:
            - 'Y'
            - 'N'
        customerId:
          type: string
          description: Customer ID of Created By User's Account
          example: '123203455'
        fileId:
          type: string
          description: Asset File ID
          format: uuid
        filename:
          type: string
          description: Asset content file name
          example: adventure-alps-beautiful-landscape-2444403.jpg
        fileState:
          type: string
          description: Asset content file state
          enum:
            - available
            - recycle bin
        lastUpdatedBy:
          description: User ID who last updated the asset
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c40133ds
        lastUpdatedEpoch:
          type: integer
          description: Last update time in milliseconds
          example: 1612333543954
        metadata:
          $ref: '#/components/schemas/MetadataDocument'
        metadataDenormalized:
          type: object
          description: >-
            Metadata document is a flat list of metadata attributes and values,
            where values are either in text values or foreign keys / referential
            values
        metadataState:
          type: string
          description: Asset metadata state
          example: available
          enum:
            - available
            - recycle bin
        metadataTemplateId:
          type: string
          description: Metadata Template ID
          format: uuid
          example: ea6eb24d-adef-4380-bd02-f64f567c437f
        objectId:
          type: string
          description: Asset Object ID
          format: uuid
          example: e6f4bd5e-9bea-43cb-b15e-22582fa5322e
        objectType:
          type: string
          description: Asset Object type
          example: Asset
          enum:
            - Asset
        originalFileId:
          type: string
          description: The ID of the original version of the file
          format: uuid
          example: 003391e4-e78a-4186-b2d7-b5d4fcbe445d
        renditions:
          $ref: '#/components/schemas/AssetRenditions'
        securityTemplateIds:
          type: array
          description: List of Security Template IDs
          items:
            type: string
            format: uuid
            example: 7d6f4e30-f423-11e9-8071-89c0c4052156
        securityDenormalized:
          $ref: '#/components/schemas/AssetSecurityDenormalized'
        technicalMetadata:
          $ref: '#/components/schemas/AssetTechnicalMetadata'
        versionNumber:
          type: integer
          description: Asset version number
          deprecated: true
        presignedURL:
          type: string
          description: The URL to download the file. Populated for download requests.
        linkType:
          type: string
        relationshipId:
          type: string
        secondaryId:
          type: string
    AssetBulkEditRequest:
      required:
        - metadataTemplateId
        - objectIds
      type: object
      properties:
        metadataTemplateId:
          type: string
          description: Metadata Template ID to assign to the edited Assets.
          format: uuid
          example: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadataDocument:
          type: array
          description: An array of metadata attribute operations
          items:
            anyOf:
              - $ref: '#/components/schemas/AssetBulkEditStringValue'
              - $ref: '#/components/schemas/AssetBulkEditDateValue'
              - $ref: '#/components/schemas/AssetBulkEditRestrictedVocabularyValue'
              - $ref: '#/components/schemas/AssetBulkEditMultiValue'
              - $ref: '#/components/schemas/AssetBulkEditGridValue'
        objectIds:
          type: array
          description: An array of Asset Object IDs
          items:
            type: string
            format: uuid
            example: e55bdb0c-022b-475d-9e26-9d74552e1e81
        securityTemplateIds:
          type: array
          description: An array of Security Template IDs.
          items:
            type: string
            format: uuid
            example: a7099f22-4585-4533-88b4-a5e9dff928bc
        securityTemplateOp:
          type: string
          description: >-
            Operation to either replace or append to the currently assigned list
            of Security Template IDs with the provided list of Security Template
            IDs.
          enum:
            - replace
            - append
    AssetBulkEditStringValue:
      required:
        - metadataDefinitionId
        - metadataDefinitionValue
        - operation
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Attribute ID retrieved from metadata template.
          format: uuid
          example: dfeb57c1-b149-4b15-920f-3f40ff0b959a
        metadataDefinitionValue:
          type: string
          description: Metadata value
          example: Photo
        operation:
          type: string
          example: replace
          enum:
            - replace
            - append
    AssetBulkEditDateValue:
      required:
        - metadataDefinitionId
        - metadataDefinitionValue
        - operation
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: 3229e863-022b-4365-afe6-e9aa3807c386
        metadataDefinitionValue:
          type: string
          description: Date formatted as  **mm/dd/yyyy** string
          example: 02/10/2021
        operation:
          type: string
          example: replace
          enum:
            - replace
    AssetBulkEditGridValue:
      required:
        - metadataDefinitionId
        - metadataDefinitionValue
        - operation
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: 3229e863-022b-4365-afe6-e9aa3807c386
        metadataDefinitionTableValue:
          type: array
          description: Array representing the rows in the grid.
          items:
            $ref: '#/components/schemas/AssetBulkEditTableRow'
        operation:
          type: string
          example: append
          enum:
            - replace
            - append
    AssetBulkEditMultiValue:
      required:
        - metadataDefinitionId
        - metadataDefinitionValue
        - operation
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: 3229e863-022b-4365-afe6-e9aa3807c386
        metadataDefinitionValue:
          type: array
          description: An array of values.
          items:
            $ref: >-
              #/components/schemas/AssetBulkEditMultiValue_metadataDefinitionValue
        operation:
          type: string
          example: append
          enum:
            - replace
            - append
    AssetBulkEditResponse:
      type: object
      properties:
        jobId:
          type: string
          description: Job ID of the submitted Bulk Edit Job.
          format: uuid
          example: 5fa57655-c56c-47d3-a409-751fd5fd9735
        collectionId:
          type: string
          description: >-
            Collection ID of the Collection containing the Assets being bulk
            edited.
          format: uuid
          example: 7c6a6a3b-cac0-4218-be3b-515e0f9cb967
    AssetBulkEditRestrictedVocabularyValue:
      required:
        - metadataDefinitionId
        - metadataDefinitionValue
        - operation
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
        metadataDefinitionValue:
          $ref: >-
            #/components/schemas/AssetBulkEditRestrictedVocabularyValue_metadataDefinitionValue
        operation:
          type: string
          example: replace
          enum:
            - replace
    AssetBulkEditTableRow:
      type: array
      description: Array defining the columns of the grid.
      items:
        anyOf:
          - $ref: '#/components/schemas/AssetBulkEditStringValue'
          - $ref: '#/components/schemas/AssetBulkEditRestrictedVocabularyValue'
          - $ref: '#/components/schemas/AssetBulkEditDateValue'
    AssetCreateRequest:
      required:
        - filename
        - metadata
        - metadataTemplateId
        - securityTemplateIds
      type: object
      properties:
        originalFileId:
          type: string
          description: ID of the file. When provided a new version will be created.
          format: uuid
        metadataTemplateId:
          type: string
          description: ID of metadata template to apply.
          format: uuid
          example: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadata:
          $ref: '#/components/schemas/MetadataDocument'
        securityTemplateIds:
          type: array
          description: Array of Security Template IDs
          items:
            type: string
            format: uuid
            example: 7d6f4e30-f423-11e9-8071-89c0c4052141
        filename:
          type: string
          description: Asset file name.
        contentPath:
          type: string
          description: S3 path to the federated file
        skipTranscode:
          type: boolean
          description: Flag to skip content transformation
        filesize:
          type: number
          description: Size of file in bytes
      description: >-
        JSON Object included when submitting a request to create an asset.
        **metadata** property is required but can be an empty array
    AssetCreateResponse:
      type: object
      properties:
        filename:
          type: string
          description: File Name
          example: apples.jpg
        objectId:
          type: string
          description: Id of created object
          example: e55bdb0c-022b-475d-9e26-9d74552e1e81
        fileId:
          type: string
          description: File Id
          example: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        originalFileId:
          type: string
          description: Id of the original version of the file
          example: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        url:
          type: string
          description: Presigned URL to upload the Asset file
          format: url
          example: >-
            https://contentstore3.com/masters/919f33e2-dc03-4627-ab7b-642a5f1d11ae/apples.jpg?...
    AssetContent:
      type: object
      properties:
        presignedURL:
          type: string
          description: URL to download an Asset content
          format: url
          example: >-
            https://contentstore.example.com/masters/055f4b24-0218-45ce-8d8f-2d39be0b676d/aerial-shot-1612461.jpg?...
    AssetExposeRefRendition:
      type: object
      properties:
        componentType:
          type: string
          example: rendition
        componentRef:
          type: array
          items:
            type: string
            example: imageThumb
        expiration:
          type: integer
          example: 3000
    AssetExposeRefObject:
      type: object
      properties:
        componentType:
          type: string
          example: object
        componentRef:
          type: string
          example: original
        expiration:
          type: integer
          description: Expiration Time in seconds.
          example: 3000
    AssetExposeRequest:
      type: array
      items:
        $ref: '#/components/schemas/AssetExposeRequest_inner'
    AssetExposeResponse:
      type: array
      items:
        $ref: '#/components/schemas/AssetExposeResponse_inner'
    AssetExposeRenditionResponse:
      type: object
      properties:
        renditionType:
          type: string
          example: imageThumb
        componentRef:
          type: string
          example: imageThumb
        expires:
          type: integer
          example: 3000
        url:
          type: string
          example: >-
            https://example.com/4c3e98f2-03d9-41b4-8970-63a1528bb33d-200x200.jpg?...
    AssetExposeObjectResponse:
      type: object
      properties:
        renditionType:
          type: string
          example: original
        componentRef:
          type: string
          example: original
        expires:
          type: integer
          example: 3000
        url:
          type: string
          example: >-
            https://example.com/masters/Example%20Document%20PowerPoint%20Presentation.ppt?...
    AssetDeleteRequest:
      type: object
      properties:
        action:
          type: string
          description: specifies whether to delete or un-delete the asset
          example: delete
          enum:
            - delete
            - undelete
        deleteType:
          type: string
          description: 'Delete Type: full, content, or metadata'
          example: full
          enum:
            - full
      description: >-
        JSON request message to soft delete or un-delete an Asset.  Currently
        only full delete type is supported.
    AssetImageMetadata:
      type: object
      properties:
        fileName:
          type: string
          example: adventure-alps-beautiful-landscape-2444403.jpg
        fileSize:
          type: string
          example: 4.4 MB
        fileType:
          type: string
          example: JPEG
        fileTypeExtension:
          type: string
          example: jpg
        mimeType:
          type: string
          example: image/jpeg
        jfifVersion:
          type: string
          example: '1.01'
        resolutionUnit:
          type: string
          example: inches
        xResolution:
          type: string
          example: '72'
        yResolution:
          type: string
          example: '72'
        profileCMMType:
          type: string
          example: Linotronic
        profileVersion:
          type: string
          example: 2.1.0
        profileClass:
          type: string
          example: Display Device Profile
        colorSpaceData:
          type: string
          example: RGB
        profileConnectionSpace:
          type: string
          example: XYZ
        profileDateTime:
          type: string
          example: 1998:02:09 06:49:00
        profileFileSignature:
          type: string
          example: acsp
        primaryPlatform:
          type: string
          example: Microsoft Corporation
        cmmFlags:
          type: string
          example: Not Embedded, Independent
        deviceManufacturer:
          type: string
          example: Hewlett-Packard
        deviceModel:
          type: string
          example: sRGB
        deviceAttributes:
          type: string
          example: Reflective, Glossy, Positive, Color
        renderingIntent:
          type: string
          example: Perceptual
        connectionSpaceIlluminant:
          type: string
          example: 0.9642 1 0.82491
        profileCreator:
          type: string
          example: Hewlett-Packard
        profileID:
          type: string
          example: '0'
        profileCopyright:
          type: string
          example: Copyright (c) 1998 Hewlett-Packard Company
        profileDescription:
          type: string
          example: sRGB IEC61966-2.1
        mediaWhitePoint:
          type: string
          example: 0.95045 1 1.08905
        mediaBlackPoint:
          type: string
          example: 0 0 0
        redMatrixColumn:
          type: string
          example: 0.43607 0.22249 0.01392
        greenMatrixColumn:
          type: string
          example: 0.38515 0.71687 0.09708
        blueMatrixColumn:
          type: string
          example: 0.14307 0.06061 0.7141
        deviceMfgDesc:
          type: string
          example: IEC http://www.iec.ch
        deviceModelDesc:
          type: string
          example: IEC 61966-2.1 Default RGB color space - sRGB
        viewingCondDesc:
          type: string
          example: Reference Viewing Condition in IEC61966-2.1
        viewingCondIlluminant:
          type: string
          example: 19.6445 20.3718 16.8089
        viewingCondSurround:
          type: string
          example: 3.92889 4.07439 3.36179
        viewingCondIlluminantType:
          type: string
          example: D50
        luminance:
          type: string
          example: 76.03647 80 87.12462
        measurementObserver:
          type: string
          example: CIE 1931
        measurementBacking:
          type: string
          example: 0 0 0
        measurementGeometry:
          type: string
          example: Unknown
        measurementFlare:
          type: string
          example: 0.999%
        measurementIlluminant:
          type: string
          example: D65
        technology:
          type: string
          example: Cathode Ray Tube Display
        redToneReproductionCurve:
          type: string
          example: (Binary data 2060 bytes, use -b option to extract)
        greenToneReproductionCurve:
          type: string
          example: (Binary data 2060 bytes, use -b option to extract)
        blueToneReproductionCurve:
          type: string
          example: (Binary data 2060 bytes, use -b option to extract)
        imageWidth:
          type: integer
          example: 3264
        imageHeight:
          type: integer
          example: 4080
        encodingProcess:
          type: string
          example: Baseline DCT, Huffman coding
        bitsPerSample:
          type: number
          example: 8
        colorComponents:
          type: integer
          example: 3
        yCbCrSubSampling:
          type: string
          example: YCbCr4:2:0 (2 2)
        imageSize:
          type: string
          example: 3264x4080
        megapixels:
          type: number
          example: 13.3
    AssetLinkDeleteResponse:
      type: array
      description: >-
        The array returns a status for each secondary ID object. Some could have
        been successful and some are not
      items:
        anyOf:
          - $ref: '#/components/schemas/AssetLinkUpdateSuccessResponse'
          - $ref: '#/components/schemas/AssetLinkUpdateFailureResponse'
    AssetLinkUpdateSuccessResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Relationship deleted successfully
        relationshipId:
          type: string
          example: >-
            f81769d1-8e93-4af7-856e-56ea30ec1038-c91f8b40-a7ba-476c-b52f-341952f6c250
    AssetLinkUpdateFailureResponse:
      type: object
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          example: >-
            relationship retrieval failed
            [f81769d1-8e93-4af7-856e-56ea30ec1038-1f426f2f2-69bc-43a8-9e4b-a857af81972b]
    AssetMultipartUploadRequest:
      type: object
      properties:
        fileId:
          type: string
          format: uuid
        filename:
          type: string
        filesize:
          type: integer
          example: 335226108
        action:
          type: string
          description: >-
            Either **complete** or **cancel** as the action to finalize the
            multipart upload.  This field is case sensitive.
          example: complete
          enum:
            - complete
            - cancel
        originalFileId:
          type: string
          format: uuid
        uploadId:
          type: string
          example: >-
            gR5XHJZpuDv8UizdpSGuwONje0GbMHnCWXS5zTTVkyVINURV6iraWLhpM7Sy7oy65utAgPcm2FfM4fRp4oVga4ggEzD811aS1tke_F0iIIXX1kV7m6UouytsNE0oL8fzo2Zr2JCqwRyhFTXp98zjdQ--
        parts:
          type: array
          items:
            $ref: '#/components/schemas/AssetMultipartUploadRequest_parts'
    AssetMultipartUploadResponse:
      type: object
      properties:
        fileId:
          type: string
          format: uuid
        filename:
          type: string
        action:
          type: string
          example: Complete/Cancel
        originalFileId:
          type: string
          format: uuid
        uploadId:
          type: string
          example: >-
            gR5XHJZpuDv8UizdpSGuwONje0GbMHnCWXS5zTTVkyVINURV6iraWLhpM7Sy7oy65utAgPcm2FfM4fRp4oVga4ggEzD811aS1tke_F0iIIXX1kV7m6UouytsNE0oL8fzo2Zr2JCqwRyhFTXp98zjdQ--
        s3Key:
          type: string
          example: masters/843ec17f-9491-4cfa-b840-faa299973207/2-vid.mp4
        status:
          type: string
          example: success
    AssetRelationship:
      type: object
      properties:
        secondaryId:
          type: string
          description: ID of the secondary asset
          format: uuid
        createdEpoch:
          type: integer
          description: Created date in epoch format
          example: 1613677209722
        customerId:
          type: string
          example: '15716718541456'
        linkType:
          type: string
          description: The type of link.
          enum:
            - child
            - derivative
            - placed-graphic
        lastUpdatedEpoch:
          type: integer
          description: Date when last updated. Epoch format.
          example: 1613677209722
        primaryId:
          type: string
          description: ID of the primary asset.
          format: uuid
          example: f81769d1-8e93-4af7-856e-56ea30ec1038
        relationshipId:
          type: string
          description: ID the defines relationship between primary and secondary assets.
          example: >-
            f81769d1-8e93-4af7-856e-56ea30ab1038-73b49f17-4c1a-4c05-bb31-5ab2364e2534
      description: Describes relationship between two assets.
    AssetRenditions:
      type: object
      properties:
        width:
          type: integer
          example: 4000
        imageThumb:
          type: string
          example: >-
            https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/cc8f089a-1464-89d5-42f6-77217a9f09f2-200x200.png
        imagePreview:
          type: string
          example: >-
            https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/cc8f089a-1464-42f6-89d5-77217a9f09f2-700x700.png
        fpo:
          type: string
          example: >-
            https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/adventure-alps-beautiful-landscape-2444403-fpo.png
        imagePreviewLarge:
          type: string
          example: >-
            https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/cc8f089a-1464-42f6-89d5-77217a9f09f2-1000x1000.png
        mezzaninePreview:
          type: string
          example: >-
            https://host.io/1571671854145/3a76743f-45f6-4d30-a7d4-05de2dc8c232/adventure-alps-beautiful-landscape-2444403-3000x3000.png
        height:
          type: integer
          example: 6000
      description: Renditions details
    AssetShareSender:
      type: object
      properties:
        name:
          type: string
          description: Sender's name
          example: John
      description: Sender information to use in the email
    AssetTransformationObject:
      type: object
      properties:
        objectId:
          type: string
          description: Object Id of the Asset
          format: uuid
          example: 9f23f1d5-44c1-4b69-8f66-8f0fd03b62c7
        expiration:
          type: integer
          description: expiry of presigned url
          example: 3600
        source:
          type: string
          description: name of the rendition to be used in transformation
          example: imagePreviewLarge
        includeOriginal:
          type: boolean
          description: Whether original asset should be included in result or not
          example: false
        transformations:
          type: string
          description: Transformation name
          example: png
      description: Sender information to use in the email
    AssetShareRecipient:
      type: object
      properties:
        email:
          type: string
          description: Recipient's email
          format: email
        name:
          type: string
          description: Recipient's name
          example: Jeff
      description: Recipient information to use in the email
    AssetCreateLinkResponse:
      type: array
      description: Array of objects for every secondary id with the execution status.
      items:
        anyOf:
          - $ref: '#/components/schemas/AssetCreateLinkSuccessResponse'
          - $ref: '#/components/schemas/AssetCreateLinkFailureResponse'
    AssetCreateLinkSuccessResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Relationship created successfully
        relationshipId:
          type: string
          example: >-
            f81769d1-8e93-4af7-856e-56ea30ec1038-73b49f17-4c1a-4c05-bb31-5ab2364e25fe
    AssetCreateLinkFailureResponse:
      type: object
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          example: Item already exists
        relationshipId:
          type: string
          example: >-
            f81769d1-8e93-4af7-856e-56ea30ec1038-c91f8b40-a7ba-476c-b52f-341952f6c250
    AssetSecurityDenormalized:
      type: array
      items:
        $ref: '#/components/schemas/AssetSecurityDenormalizedObject'
    AssetSecurityDenormalizedObject:
      type: object
      properties:
        groupId:
          type: string
          format: uuid
          example: 7d6207c0-f423-11e9-8071-89c0c4052141
        permissions:
          type: array
          items:
            type: string
            format: uuid
            example: d0bbfb23-9304-4eb0-9c60-8e6e27a580d9
    AssetTechnicalMetadata:
      type: object
      properties:
        tenovos_metadata:
          $ref: '#/components/schemas/TenovosMetadata'
        image_metadata:
          $ref: '#/components/schemas/AssetImageMetadata'
      description: Technical metadata about the asset
    AssetTechnicalMetadataUpdateResponse:
      type: object
      properties:
        message:
          type: string
          example: Success
    AssetUpdateRequest:
      type: object
      properties:
        metadata:
          $ref: '#/components/schemas/MetadataDocument'
        securityTemplateIds:
          type: array
          items:
            type: string
            format: string
            example: 7d6f4e30-f423-11e9-8071-89c0c4052141
    AssetReplacePreviewRequest:
      type: object
      properties:
        fileIds:
          type: array
          items:
            type: string
            format: uuid
            example: 7d6f4e30-f423-11e9-8071-89c0c4052141
        filename:
          type: string
          example: Preview.jpg
        filesize:
          type: integer
          example: 1024
        contentPaths:
          type: object
          description: This property is used only for federated assets
          example:
            imagePreview: <relativePath>
            imageThumb: <relativePath>
            videoProxy: <relativePath>
    AssetShareRequest:
      type: object
      properties:
        sender:
          $ref: '#/components/schemas/AssetShareSender'
        shareUsers:
          type: array
          description: A list of users to share assets with
          items:
            $ref: '#/components/schemas/AssetShareRecipient'
        assets:
          type: array
          description: List of Asset object IDs to be shared
          items:
            type: string
            format: uuid
        shareMessage:
          type: string
          description: An email message.
          example: A message from sender to recipient
    AssetTransformRequest:
      type: object
      properties:
        transformations:
          type: array
          items:
            $ref: '#/components/schemas/AssetTransformationObject'
        recipients:
          type: string
          description: A list of emails of users to share assets with
        shareMessage:
          type: string
          description: An email message.
          example: A message from sender to recipient
    AssetTransformResponse:
      type: object
      properties:
        jobId:
          type: string
          description: Id of the Job created for the transformation
          format: uuid
          example: f8479fef-c389-4b15-9736-e5dd7b35d8d3
        status:
          type: string
          description: status of the request, success or failure
          example: success
        message:
          type: string
          example: Message sent successfully
    AssetShareResponse:
      type: object
      properties:
        message:
          type: string
          example: Message sent successfully
        status:
          type: string
          description: status of the request, success or failure
    AuthRequest:
      type: object
      properties:
        clientId:
          type: string
          description: Use in **new token** request
        username:
          type: string
          description: Use in **new token** request
        password:
          type: string
          description: Use in **new token** request
        session:
          $ref: '#/components/schemas/AuthRequest_session'
    AuthResponse:
      type: object
      properties:
        endpointUrl:
          type: string
          example: https://endpoint.url/v1
        clientId:
          type: string
          example: 12345abc
        userPoolId:
          type: string
          example: us-east-1_123456789
        username:
          type: string
          example: username
        password:
          type: string
          example: ''
        session:
          $ref: '#/components/schemas/AuthResponse_session'
    ImpersonateRequest:
      type: object
      properties:
        username:
          type: string
          description: Use in **new token** request
    ImpersonateResponse:
      type: object
      properties:
        endpointUrl:
          type: string
          example: https://endpoint.url/v1
        clientId:
          type: string
          example: 12345abc
        userPoolId:
          type: string
          example: us-east-1_123456789
        username:
          type: string
          example: username
        password:
          type: string
          example: ''
        session:
          $ref: '#/components/schemas/ImpersonateResponse_session'
    Collection:
      type: object
      properties:
        expirationDate:
          type: integer
          description: Expiration date in milliseconds
          example: 1613755131855
        lastUpdatedEpoch:
          type: integer
          description: Last update time in milliseconds
          example: 1613755131855
        shareMessage:
          type: string
          example: ''
        recipients:
          type: array
          items:
            type: string
        downloadId:
          type: string
          example: 'NULL'
        shared:
          type: string
          description: Shared Collection Flag (Y | N)
          enum:
            - 'N'
            - 'Y'
        name:
          type: string
          description: Collection Name
          example: Best of the month
        shareDocument:
          type: array
          description: Array of Asset IDs for shared Collection
          items:
            type: string
            format: uuid
        sender:
          type: object
        createdEpoch:
          type: integer
          description: Creation time in milliseconds
          example: 1613755131855
        userCognitoId:
          type: string
          description: User ID who created this Collection
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c4052141
        collectionType:
          type: string
          description: Type of Collection (secured | private)
          enum:
            - secured
            - private
        collectionId:
          type: string
          description: Collection ID
          format: uuid
          example: 4dc328ce-4b3f-4f76-b7bb-1e83ad35458a
        collectionDocument:
          type: array
          description: Array of Asset File IDs in Collection
          items:
            type: string
            format: uuid
            example: 0176c8e6-1017-4308-be3b-2de3931cbb37
        customerId:
          type: string
          description: Customer ID
          example: '1235644566523'
    CollectionCreateRequest:
      type: object
      properties:
        collectionType:
          type: string
          enum:
            - secured
            - private
        name:
          type: string
          description: Name of the collection
          example: Best of the month
        collectionDocument:
          type: array
          description: List of Asset IDs to be added to the Collection.
          items:
            type: string
            description: ID of the asset
            format: uuid
        metadataTemplateId:
          type: string
          description: >-
            Unique ID of the metadata template for 'secure' or 'private'
            collections
          format: uuid
          example: ea6eb24d-adef-4380-bd02-f64f567c437f
        securityTemplateIds:
          type: array
          description: List of Security Template IDs
          items:
            type: string
            format: uuid
            example: 7d6f4e30-f423-11e9-8071-89c0c4052156
        MetadataDocument:
          type: array
          description: >-
            Array of metadata attributes that are required for the metadata
            template
          items:
            anyOf:
              - $ref: '#/components/schemas/MetadataStringValue'
              - $ref: '#/components/schemas/MetadataRestrictedVocabularyValue'
              - $ref: '#/components/schemas/MetadataDateValue'
              - $ref: '#/components/schemas/MetadataMultiValue'
              - $ref: '#/components/schemas/MetadataGridValue'
    CartCreateRequest:
      type: object
      properties:
        collectionDocument:
          type: array
          description: List of Asset File IDs to be added to the Collection.
          items:
            type: string
            description: FileID of the asset
            format: uuid
    CollectionCreateResponse:
      type: object
      properties:
        statusCode:
          type: string
          example: success
          enum:
            - success
            - error
        message:
          type: string
          description: detailed message
          example: Collection successfully created
        collectionId:
          type: string
          description: ID of created collection if successful
          format: uuid
          example: 4b5896b4-33e4-41ac-b251-39a4dbaa25b1
    CartCreateResponse:
      type: object
      properties:
        statusCode:
          type: string
          example: success
          enum:
            - success
            - error
        message:
          type: string
          description: detailed message
          example: Collection update was successful
    CollectionDeleteResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Collection delete operation succeeded
    CollectionUpdateRequest:
      type: object
      properties:
        collectionType:
          type: string
          description: Type of the collection.
          enum:
            - secured
            - private
        name:
          type: string
          description: Name of the collection
          example: Photo Collection
        collectionDocument:
          type: array
          description: >-
            List of fileIDs to be added to collection. This list will replace
            the current set of assets in the collection.
          items:
            type: string
            format: uuid
      description: >-
        Updates specified properties of the collection. Only those properties
        that need to be updated should be specified.
    CollectionUpdateResponse:
      type: object
      properties:
        message:
          type: string
    CollectionSearchItem:
      type: object
      properties:
        collectionId:
          type: string
          description: Collection ID in UUID format
          format: uuid
          example: 6c921f5c-24c2-40b9-8718-3ad2d4a6be54
        createdEpoch:
          type: integer
          description: Created date timestamp in milliseconds
          example: 1613773880176
        customerId:
          type: integer
          description: Current User's Customer ID
          example: 1571671853455
        lastUpdatedEpoch:
          type: integer
          description: Last update time in milliseconds
          example: 1613773880176
        collectionType:
          type: string
          description: Collection type either secured or private
          enum:
            - private
            - secured
        name:
          type: string
          description: Name of the Collection
          example: Animal Photos
        shared:
          type: string
          description: Y/N is this Collection shareable or not
          enum:
            - 'Y'
            - 'N'
        shareDocument:
          type: array
          description: List of share document IDs
          items:
            type: string
        userCognitoId:
          type: string
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c4052141
        collectionDocument:
          type: array
          description: List of Asset Object IDs which are assigned to this Collection
          items:
            type: string
            example: 58ab7b10-2c0a-4ff6-b9d4-098b4abd6175
    CollectionSearchResult:
      type: object
      properties:
        hitCount:
          type: integer
          description: Number of Collections found
          example: 0
        result:
          type: array
          description: List of Collection objects
          items:
            $ref: '#/components/schemas/CollectionSearchItem'
        facets:
          type: array
          items:
            type: object
    CollectionShareRequest:
      type: object
      properties:
        sender:
          $ref: '#/components/schemas/Sender'
        shareUsers:
          type: array
          description: A list of email addresses of the recipients.
          items:
            $ref: '#/components/schemas/Recipient'
        shareMessage:
          type: string
          description: A message from sender to recipient
          example: A message from sender to recipient
    CollectionShareResponse:
      type: object
      properties:
        StatusCode:
          type: integer
          example: 200
        ExecutedVersion:
          type: string
          example: $LATEST
        Payload:
          type: string
          example: >-
            {"statusCode":200,"body":"{\"message\":\"Message sent
            successfully\"}","headers":{"content-type":"application/json"}}
    ControlledVocabulary:
      type: object
      properties:
        createdEpoch:
          type: integer
          description: Create time in milliseconds
          example: 1613877219787
        customerId:
          type: string
          description: Customer Id
          example: '157167185123342'
        lastUpdatedEpoch:
          type: integer
          description: Update time in milliseconds
          example: 1613877219787
        metadataDefinitionId:
          type: string
          description: Field ID
          format: uuid
          example: 6c921f5c-24c2-40b9-8718-3ad2d4a6be54
        metadataDefinitionName:
          type: string
          description: Field Name
          example: Colors
        metadataDefinitionSearchField:
          type: string
          description: Map search field for this metadata definition
          example: colors
        metadataDefinitionType:
          type: string
          example: controlledVocabulary
        metadata:
          $ref: '#/components/schemas/ControlledVocabulary_metadata'
    ControlledVocabularyResponse:
      type: object
      properties:
        createdEpoch:
          type: integer
          description: Create time in milliseconds
          example: 1613877219787
        customerId:
          type: string
          description: Customer Id
          example: '157167185123342'
        lastUpdatedEpoch:
          type: integer
          description: Update time in milliseconds
          example: 1613877219787
        metadataDefinitionId:
          type: string
          description: Field ID
          format: uuid
          example: 6c921f5c-24c2-40b9-8718-3ad2d4a6be54
        metadataDefinitionName:
          type: string
          description: Field Name
          example: Colors
        metadataDefinitionSearchField:
          type: string
          description: Map search field for this metadata definition
          example: colors
        metadataDefinitionType:
          type: string
          example: controlledVocabulary
        metadataDocument:
          $ref: '#/components/schemas/ControlledVocabulary_metadata'
    ControlledVocabularyCreateRequest:
      type: object
      properties:
        name:
          type: string
          description: Vocabulary Name
          example: Color List
        values:
          type: array
          description: List of vocabulary values
          example:
            - Red
            - Blue
          items:
            type: string
    ControlledVocabularyUpdateRequest:
      type: object
      properties:
        name:
          type: string
          description: New name of the Controlled Vocabulary
          example: Color List
        add:
          type: array
          description: JSON Array with new values to add into the Controlled Vocabulary
          items:
            type: string
            example: Black
        update:
          type: array
          description: Payload to update existing values by their IDs
          example:
            - valueId: 4746f395-05ea-4cc3-9577-c636f468a59c
              valueName: Green
            - valueId: aaaaaaaa-bbbb-cccc-ddddd-eeeeeeeeeeee
              valueName: Blue
          items:
            $ref: '#/components/schemas/ControlledVocabularyUpdateRequest_update'
        delete:
          type: array
          description: JSON array with the value IDs to delete from Controlled Vocabulary
          items:
            type: string
            example: aaaaaaaa-bbbb-cccc-ddddd-eeeeeeeeeeee
          $ref: '#/components/schemas/ControlledVocabulary'
    ControlledVocabularyValue:
      type: object
      properties:
        valueId:
          type: string
          format: uuid
        valueName:
          type: string
          example: Red
    Customer:
      type: object
      properties:
        customerId:
          type: string
          example: '1571618541345'
        name:
          type: string
          example: John Lake
        profile:
          $ref: '#/components/schemas/CustomerProfile'
    CustomerProfile:
      type: object
      properties:
        contactName:
          type: string
          example: Bill Maple
        contactEmail:
          type: string
          example: example@mail.com
        contactNumber:
          type: string
          example: 301-234-5567
        contactAddress:
          type: string
          example: 10 Maple ave
        contactCity:
          type: string
          example: Middletown
        contactState:
          type: string
          example: MD
        contactZipcode:
          type: string
          example: '24566'
        contactCountry:
          type: string
          example: USA
    DeleteResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Master Object update was successful
        data:
          type: string
          description: Serialized JSON representation of object's data
          example: >-
            {"lastUpdatedEpoch":1613671028496,"metadataTemplateId":"ea6eb24d-adef-4080-bd02-f64f567c437f","createdBy":"7d675ef0-f423-11e9-8071-89c0c4052141","originalFileId":"003391e4-e780-4186-b2d7-b5d4fcbe445d","objectId":"e6f4bd5e-9bea-43cb-b15e-22582fa5d954","renditionsDocument":{"fpo":"https://dev.content.tenovos.io/1571671854139/003391e4-e780-4186-b2d7-b5d4fcbe445d/animal-animal-photography-carnivore-2055100-fpo.png","width":2172,"imagePreviewLarge":"https://dev.content.tenovos.io/1571671854139/003391e4-e780-4186-b2d7-b5d4fcbe445d/e5d61ed7-b859-493a-a7bb-eb89b0953b9f-1000x1000.png","imageThumb":"https://dev.content.tenovos.io/1571671854139/003391e4-e780-4186-b2d7-b5d4fcbe445d/e5d61ed7-b859-493a-a7bb-eb89b0953b9f-200x200.png","imagePreview":"https://dev.content.tenovos.io/1571671854139/003391e4-e780-4186-b2d7-b5d4fcbe445d/e5d61ed7-b859-493a-a7bb-eb89b0953b9f-700x700.png","mezzaninePreview":"https://dev.content.tenovos.io/1571671854139/003391e4-e780-4186-b2d7-b5d4fcbe445d/animal-animal-photography-carnivore-2055100-3000x3000.png","height":3322},"lockType":[],"fileId":"003391e4-e780-4186-b2d7-b5d4fcbe445d","metadataDocument":"[{\"metadataDefinitionId\":\"dfeb57c1-b149-4b15-920f-3f40ff0b959a\",\"metadataDefinitionValue\":\"50MB51MB\"},{\"metadataDefinitionId\":\"b8cacda9-6ef8-4be6-a529-c1f5a18f0143\",\"metadataDefinitionValue\":{\"valueId\":\"df04b9de-e79e-48ed-b9ba-019f14ba17a5\"}},{\"metadataDefinitionId\":\"8ea42d4f-1d93-4f29-81f8-aaf9de729f20\"},{\"metadataDefinitionId\":\"9234ed7f-0af4-4f47-97a0-0cef3dfba607\"},{\"metadataDefinitionId\":\"9b1688dd-fcf8-4507-bc5b-88f6bcfe48dd\",\"metadataDefinitionTableValue\":[[{\"metadataDefinitionId\":\"0303c809-d815-4865-97ba-b94c8f1e742b\",\"metadataDefinitionValue\":{\"valueId\":\"273b4f2c-cc0c-4290-bd47-2360a30ae7c4\"}}],[{\"metadataDefinitionId\":\"0303c809-d815-4865-97ba-b94c8f1e742b\",\"metadataDefinitionValue\":{\"valueId\":\"23fdd209-f51f-46a8-a64c-6272a79400a9\"}}]]},{\"metadataDefinitionId\":\"c8c719ed-f729-4569-b50a-c5e10fd32b23\",\"metadataDefinitionTableValue\":[[{\"metadataDefinitionId\":\"15be99d0-1241-44d9-b359-6e99332ed962\",\"metadataDefinitionValue\":[{\"metadataDefinitionId\":\"db42dfa4-35f7-4242-9b0c-ff8dc6cdab8f\",\"metadataDefinitionValue\":{\"valueId\":\"aeea73dd-2337-4e92-911e-83b4a0e7897c\"}},{\"metadataDefinitionId\":\"1de0dfa6-2a97-4031-8e3b-ca9487f459b7\",\"metadataDefinitionValue\":{\"valueId\":\"19b9e829-f578-4379-8fd0-f43aff663e53\"}}]}]]},{\"metadataDefinitionId\":\"97de4763-684e-410e-bf79-414ec4b35608\",\"metadataDefinitionValue\":{\"valueId\":\"445b691c-9a76-4800-a720-e99cf8e46230\"}},{\"metadataDefinitionId\":\"dc50d092-182b-49c2-ae64-b1ba561fe6d6\",\"metadataDefinitionValue\":{\"valueId\":\"241189e9-420c-4f28-8ddf-72c542d4c3b9\"}},{\"metadataDefinitionId\":\"97a64a6c-50d6-406e-9473-79b3819b03e7\",\"metadataDefinitionTableValue\":[[{\"metadataDefinitionId\":\"2017f4ff-f40f-4f71-9f38-45887225ea59\",\"metadataDefinitionValue\":{\"valueId\":\"053358d0-7663-4d05-b3f2-cbd1ed1a2225\"}},{\"metadataDefinitionId\":\"4e30aa55-3870-424c-b456-c1131110cd1b\",\"metadataDefinitionValue\":{\"valueId\":\"fb3d0ddd-50c2-48cf-a291-7bd38ebec643\"}},{\"metadataDefinitionId\":\"3229e863-022b-4365-afe6-e9aa3807c386\",\"metadataDefinitionValue\":\"02/10/2021\"},{\"metadataDefinitionId\":\"9b51b9e2-0815-4f01-b63c-d13f75383746\",\"metadataDefinitionValue\":\"02/18/2021\"}]]},{\"metadataDefinitionId\":\"5de1238d-a703-4da3-aa2b-60a6a1c7cf2f\",\"metadataDefinitionValue\":{\"valueId\":\"ea6eb24d-adef-4080-bd02-f64f567c437f\"}},{\"metadataDefinitionId\":\"68a7fcc6-090e-4b7f-920d-be0dbddb1ff3\",\"metadataDefinitionValue\":[{\"valueId\":\"7d6f4e30-f423-11e9-8071-89c0c4052141\"}]},{\"metadataDefinitionId\":\"721ff851-13cc-48fe-bc4b-3927d36450d4\",\"metadataDefinitionValue\":{\"valueId\":\"7d675ef0-f423-11e9-8071-89c0c4052141\"}},{\"metadataDefinitionId\":\"2b2a54d7-1898-44f5-a0f5-bd56fa4a7485\",\"metadataDefinitionValue\":\"1608745510614\"},{\"metadataDefinitionId\":\"baedc7de-c79e-4f4f-8648-1b19737a30ed\",\"metadataDefinitionValue\":{\"valueId\":\"8157e90c-90f4-4537-9935-1a3bf011a526\"}},{\"metadataDefinitionId\":\"e3667a6f-1e09-4afb-85ee-0a5c2174d4f0\",\"metadataDefinitionValue\":{\"valueId\":\"0de14dd8-7d39-466a-a8a9-9f35ab722cac\"}}]","metadataDeletedEpoch":1613671241253,"technicalMetadataDocument":"{\"tenovos_metadata\":{\"fileName\":\"animal-animal-photography-carnivore-2055100.jpg\",\"fileSize\":\"940
            kB\",\"MD5Checksum\":\"b746d0fbffcbace4841709039b1f53ae\"},\"image_metadata\":{\"fileName\":\"animal-animal-photography-carnivore-2055100.jpg\",\"fileSize\":\"940
            kB\",\"fileType\":\"JPEG\",\"fileTypeExtension\":\"jpg\",\"mimeType\":\"image/jpeg\",\"jfifVersion\":1.01,\"resolutionUnit\":\"inches\",\"xResolution\":72,\"yResolution\":72,\"profileCMMType\":\"Linotronic\",\"profileVersion\":\"2.1.0\",\"profileClass\":\"Display
            Device
            Profile\",\"colorSpaceData\":\"RGB\",\"profileConnectionSpace\":\"XYZ\",\"profileDateTime\":\"1998:02:09
            06:49:00\",\"profileFileSignature\":\"acsp\",\"primaryPlatform\":\"Microsoft
            Corporation\",\"cmmFlags\":\"Not Embedded,
            Independent\",\"deviceManufacturer\":\"Hewlett-Packard\",\"deviceModel\":\"sRGB\",\"deviceAttributes\":\"Reflective,
            Glossy, Positive,
            Color\",\"renderingIntent\":\"Perceptual\",\"connectionSpaceIlluminant\":\"0.9642
            1
            0.82491\",\"profileCreator\":\"Hewlett-Packard\",\"profileID\":\"0\",\"profileCopyright\":\"Copyright
            (c) 1998 Hewlett-Packard Company\",\"profileDescription\":\"sRGB
            IEC61966-2.1\",\"mediaWhitePoint\":\"0.95045 1
            1.08905\",\"mediaBlackPoint\":\"0 0
            0\",\"redMatrixColumn\":\"0.43607 0.22249
            0.01392\",\"greenMatrixColumn\":\"0.38515 0.71687
            0.09708\",\"blueMatrixColumn\":\"0.14307 0.06061
            0.7141\",\"deviceMfgDesc\":\"IEC
            http://www.iec.ch\",\"deviceModelDesc\":\"IEC 61966-2.1 Default RGB
            colour space - sRGB\",\"viewingCondDesc\":\"Reference Viewing
            Condition in IEC61966-2.1\",\"viewingCondIlluminant\":\"19.6445
            20.3718 16.8089\",\"viewingCondSurround\":\"3.92889 4.07439
            3.36179\",\"viewingCondIlluminantType\":\"D50\",\"luminance\":\"76.03647
            80 87.12462\",\"measurementObserver\":\"CIE
            1931\",\"measurementBacking\":\"0 0
            0\",\"measurementGeometry\":\"Unknown\",\"measurementFlare\":\"0.999%\",\"measurementIlluminant\":\"D65\",\"technology\":\"Cathode
            Ray Tube Display\",\"redToneReproductionCurve\":\"(Binary data 2060
            bytes, use -b option to
            extract)\",\"greenToneReproductionCurve\":\"(Binary data 2060 bytes,
            use -b option to extract)\",\"blueToneReproductionCurve\":\"(Binary
            data 2060 bytes, use -b option to
            extract)\",\"imageWidth\":2172,\"imageHeight\":3322,\"encodingProcess\":\"Baseline
            DCT, Huffman
            coding\",\"bitsPerSample\":8,\"colorComponents\":3,\"yCbCrSubSampling\":\"YCbCr4:2:0
            (2
            2)\",\"imageSize\":\"2172x3322\",\"megapixels\":7.2}}","AITags":[],"lastUpdatedBy":"7d675ef0-f423-11e9-8071-89c0c4052141","metadataState":"recycle
            bin","objectType":"Asset","securityTemplateIds":["7d6f4e30-f423-11e9-8071-89c0c4052141"],"fileDeletedBy":"7d675ef0-f423-11e9-8071-89c0c4052141","metadataDeletedBy":"7d675ef0-f423-11e9-8071-89c0c4052141","currentVersion":"N","versionNumber":1608745510614,"filename":"animal-animal-photography-carnivore-2055100.jpg","lockStatus":"unlocked","createdEpoch":1608745510614,"childProductIds":[],"digitalAssetIds":[],"customerId":"1571671854139","fileState":"recycle
            bin","fileDeletedEpoch":1613671241253}
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          example: Detailed Error Message
    GeneralResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Detailed Message
    GeneralErrorMessageResponse:
      type: object
      properties:
        message:
          type: string
        detail:
          type: string
    GroupPermission:
      type: object
      properties:
        permissionId:
          type: string
          format: uuid
          example: d0bbfb23-9304-4eb0-9c60-8e6e27a580d9
        isPermitted:
          type: boolean
          example: true
    GeneralErrorResponse:
      type: object
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          example: Detailed Message
    GetProofReviewerUrlRequest:
      type: object
      properties:
        email:
          type: string
          description: Email of user who wishes to access proof (must have permission).
          format: email
          example: john@company.com
    GetProofReviewerUrlResponse:
      type: object
      properties:
        url:
          type: string
          description: URL of proof corresponding to ID.
          format: website URL
    MetadataAttribute:
      type: object
      properties:
        isMultipleSelect:
          type: boolean
          description: Indicates whether the attribute allows multiple values
          example: false
        visible:
          type: boolean
          description: Indicates whether attribute is visible or not
          example: true
        searchField:
          type: string
          description: Set a search key of this attribute
          example: file_size
        dateFormat:
          type: string
          description: Date format in case of date input. 'N/A' if it is not a date field.
          example: MM/dd/yyyy
        fieldOrder:
          type: integer
          description: Display order of attribute in this group.
        length:
          type: integer
          description: Length validation in case text input
          example: 10
        type:
          type: string
          enum:
            - controlledVocabulary
            - date
            - text
        required:
          type: boolean
          description: Toggle required validation on the attribute
          example: false
        controlledVocabularyId:
          type: string
          description: Id Of controlled vocabulary if controlledVocabulary type field.
          format: uuid
          example: efa68bb7-5504-43a6-8956-666d4e811225
        readonly:
          type: boolean
          description: Indication whether the field is read only
          example: false
        name:
          type: string
          description: Name of the attribute
          example: File Size
        facetable:
          type: boolean
          description: Indication if field is facetable
          example: true
        id:
          type: string
          format: uuid
        isRestricted:
          type: boolean
          description: Toggle attribute access
          example: false
      description: Object that describes a metadata attribute
    MetadataApplyResponse:
      type: object
      properties:
        message:
          type: string
          example: Changes applied successfully
    MetadataDocument:
      type: array
      description: Array of metadata attributes
      items:
        anyOf:
          - $ref: '#/components/schemas/MetadataStringValue'
          - $ref: '#/components/schemas/MetadataRestrictedVocabularyValue'
          - $ref: '#/components/schemas/MetadataDateValue'
          - $ref: '#/components/schemas/MetadataMultiValue'
          - $ref: '#/components/schemas/MetadataGridValue'
    MetadataStringValue:
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: dfeb57c1-b149-4b15-920f-3f40ff0b959a
        metadataDefinitionValue:
          type: string
          example: Photo
      description: Defines a text attribute
    MetadataDateValue:
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: 3229e863-022b-4365-afe6-e9aa3807c386
        metadataDefinitionValue:
          type: string
          description: Date formatted as  **mm/dd/yyyy** string
          example: 02/10/2021
      description: Defines a date attribute
    MetadataRestrictedVocabularyValue:
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
        metadataDefinitionValue:
          $ref: >-
            #/components/schemas/AssetBulkEditRestrictedVocabularyValue_metadataDefinitionValue
      description: Defines a Restricted Vocabulary attribute
    MetadataMultiValue:
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: 3229e863-022b-4365-afe6-e9aa3807c386
        metadataDefinitionValue:
          type: array
          description: An array of values.
          items:
            $ref: >-
              #/components/schemas/AssetBulkEditMultiValue_metadataDefinitionValue
      description: Defines a multi-select attribute
    MetadataGridValue:
      type: object
      properties:
        metadataDefinitionId:
          type: string
          description: Definition ID
          format: uuid
          example: 3229e863-022b-4365-afe6-e9aa3807c386
        metadataDefinitionTableValue:
          type: array
          description: Array representing the rows in the grid.
          items:
            $ref: '#/components/schemas/MetadataTableRow'
      description: Defines a table
    MetadataTableRow:
      type: array
      description: Array defining the columns of the grid.
      items:
        anyOf:
          - $ref: '#/components/schemas/MetadataStringValue'
          - $ref: '#/components/schemas/MetadataRestrictedVocabularyValue'
          - $ref: '#/components/schemas/MetadataDateValue'
    MetadataGroup:
      type: object
      properties:
        groupOrder:
          type: integer
          description: Display order of this group
        metadataGroupName:
          type: string
          description: Group Name
        metadataGroupSearchField:
          type: string
        metadataAttributes:
          type: array
          description: List of this group attributes
          items:
            $ref: '#/components/schemas/MetadataAttribute'
    MetadataTemplate:
      type: object
      properties:
        template:
          $ref: '#/components/schemas/MetadataTemplate_template'
      example:
        template:
          metadataGroups:
            - groupOrder: 1
              metadataGroupSearchField: file_details
              securityPermissions: []
              metadataGroupName: File Details
              metadataAttributes:
                - name: File Size
                  type: text
                  length: 16
                  visible: true
                  readonly: false
                  required: false
                  facetable: true
                - name: File Type
                  type: controlledVocabulary
                  subType: textBox
                  visible: true
                  readonly: false
                  required: false
                  facetable: true
            - groupOrder: 2
              metadataSearchField: document_details
              securityPermissions: []
              metadataGroupName: Document Details
              metadaAttributes:
                - name: Document Owner
                  type: controlledVocabulary
                  visible: true
                  readonly: false
                  required: false
                  facetable: true
            - groupOrder: 3
              metadataSearchField: categories
              securityPermissions: []
              metadataGroupName: categories
              metadataAttributes:
                - isSingleRow: false
                  visible: true
                  searchField: categorie_table
                  tableFieldsDenormalized:
                    - visible: true
                      readonly: false
                      searchField: category_cascade
                      cascadeFieldsDenormalized:
                        - isMultipleSelect: false
                          cascadeOrder: 0
                          visible: true
                          searchField: category
                          type: controlledVocabulary
                          required: false
                          controlledVocabularyId: 7d675ef0-f423-11e9-8071-89c0c4052141
                          readonly: false
                          name: category
                          id: 725f7d71-9ab2-46b5-aea1-be03f47c9fe7
                          isRestricted: false
                        - isMultipleSelect: false
                          cascadeOrder: 1
                          visible: true
                          searchField: sub_category
                          type: controlledVocabulary
                          required: false
                          controlledVocabularyId: e0b96fb8-0f1e-46ec-9319-e78bdb127e3e
                          readonly: false
                          name: Sub Category
                          facetable: true
                          id: f33b5bc7-0c9e-4eba-aa4f-a1f502c0710c
                          isRestricted: false
                      attributeOrder: 1
                      name: Categories table
                      id: 4a515fea-e402-4331-b364-582b8ebf66c0
                      type: tableAttribute
                      tableNameVisible: false
        templateId: b7b4e518-b221-40ec-9051-3a9596883cf5
        templateName: Images
        createdEpoch: 1588094144567
        lastUpdatedEpoch: 1719233797847
        templateType:
          - asset
    ProofUserRoles:
      type: string
      enum:
        - manager
        - user
        - guest
    MetadataTemplateType:
      type: string
      enum:
        - default
        - action
        - search
        - proof
        - tile
    ProofStatusResponse:
      type: object
      properties:
        status:
          type: string
          example: completed
        decisionStatus:
          type: string
          example: approved
    Recipient:
      type: object
      properties:
        email:
          type: string
          format: email
          example: john@mail.com
        name:
          type: string
          example: John
    RelationshipCreateRequest:
      type: object
      properties:
        secondaryIds:
          type: array
          items:
            $ref: '#/components/schemas/RelationshipCreateRequest_secondaryIds'
    RelationshipDeleteRequest:
      type: object
      properties:
        secondaryIds:
          type: array
          items:
            $ref: '#/components/schemas/RelationshipDeleteRequest_secondaryIds'
    Search:
      type: object
      properties:
        from:
          type: integer
          description: Search offset from which index search will start
          example: 0
        searchTerm:
          type: array
          description: List of search terms with AND operation be default
          items:
            type: string
            example: '*'
        includeDeleted:
          type: boolean
          description: >-
            Flag to denote whether or not to include Deleted assets in the
            result
          items:
            type: boolean
            example: true
        includeVersions:
          type: boolean
          description: >-
            Flag to denote whether or not to include prior versions of the asset
            in the result
          items:
            type: boolean
            example: false
        sortBy:
          type: array
          items:
            $ref: '#/components/schemas/Search_sortBy'
        operation:
          type: string
          description: Operation between search terms
          example: AND
          enum:
            - AND
            - OR
        aggregations:
          type: boolean
          description: >-
            Boolean field to indicate whether or not to return filter menu
            aggregation counts for the search term.  Set to false to significant
            improve speed and reduce payload size.
          example: false
        keywordSearchField:
          type: string
          description: >-
            Specified Search Target. Valid values are - filename, assetId,
            metadata, content
          example: filename
          enum:
            - filename
            - assetId
            - metadata
            - content
    Scan:
      type: object
      properties:
        limit:
          type: integer
          description: Number of results that will be returned for each page
          example: 100
        searchTerm:
          type: array
          description: List of search terms
          items:
            type: string
            example: '*'
        includeDeleted:
          type: boolean
          description: >-
            Flag to denote whether or not to include Deleted assets in the
            result
          items:
            type: boolean
            example: true
        includeVersions:
          type: boolean
          description: >-
            Flag to denote whether or not to include prior versions of the asset
            in the result
          items:
            type: boolean
            example: false
        sortBy:
          type: array
          items:
            $ref: '#/components/schemas/Search_sortBy'
        operation:
          type: string
          description: Operation between search terms
          example: AND
          enum:
            - AND
            - OR
        keywordSearchField:
          type: string
          description: Specified Search Terms
        cursor:
          type: string
          description: >-
            Optional parameter on the first call.  On subsequent calls requires
            the cursor value returned in the API response.
          example: >-
            WzE2ODI5NTczMDM2NDgsMTY4Mjk1NzI2MzU5NSwxNjgyOTU3MjYzNTk1LCI3ZDkwZTkzMi01MmU4LTQ2NTEtYmQ3Ny03M2Y1OWFjMmY3YTMiLDEyMDI1OTA4NTEzMF0=
        assetType:
          type: string
          description: >-
            Optional parameter that restricts search results to the asset type
            specified.
          example: Base Product
    SearchFacetList:
      type: array
      items:
        $ref: '#/components/schemas/SearchFacetList_inner'
    ScanResult:
      type: object
      properties:
        hitCount:
          type: integer
          description: Number of Assets return
          example: 1
        cursor:
          type: string
          description: >-
            Cursor returned after the first call to be passed on all subsequent
            calls to get the next page of results
          example: >-
            WzE2ODI5NTczMDM2NDgsMTY4Mjk1NzI2MzU5NSwxNjgyOTU3MjYzNTk1LCI3ZDkwZTkzMi01MmU4LTQ2NTEtYmQ3Ny03M2Y1OWFjMmY3YTMiLDEyMDI1OTA4NTEzMF0=
        result:
          type: array
          description: List of Asset objects
          items:
            $ref: '#/components/schemas/Asset'
        facets:
          $ref: '#/components/schemas/SearchFacetList'
    SearchResult:
      type: object
      properties:
        hitCount:
          type: integer
          description: Number of Assets return
          example: 1
        result:
          type: array
          description: List of Asset objects
          items:
            $ref: '#/components/schemas/Asset'
        facets:
          $ref: '#/components/schemas/SearchFacetList'
    SecurityGroups:
      type: object
      properties:
        groupId:
          type: string
          description: Group ID of the User Group
          format: uuid
          example: e013bf7a-9702-406b-8d23-1bba004c88d4
        groupName:
          type: string
          description: The name of the User Group associated to the Group ID
          example: EMEA Marketing
    SecurityTemplate:
      type: object
      properties:
        templateId:
          type: string
          description: Template ID
          format: uuid
          example: 7d7345d0-f423-11e9-8071-89c0c4052141
        templateName:
          type: string
          description: TemplateName
          example: No Access
        securityDenormalized:
          $ref: '#/components/schemas/AssetSecurityDenormalized'
        templateDocument:
          type: array
          items:
            $ref: '#/components/schemas/TemplateDocument'
    Sender:
      type: object
      properties:
        name:
          type: string
          description: The name of the person ton display in the email
          example: Michael Lee
    StringErrorResponse:
      type: string
    TechnicalMetadataRequest:
      type: object
      properties:
        tenovos_metadata:
          type: object
          description: Tenovos related technical metadata
          example:
            fileName: 983794168.jpg
            fileSize: 96 KiB
            MD5Checksum: ebbdec1d2fccf423281273e325d69655
        image_metadata:
          type: object
          description: Image metadata
          example:
            exifToolVersionNumber: 12.36
            fileName: 983794168.jpg
            fileSize: 96 KiB
            zoneIdentifier: Exists
            fileModificationDateTime: 2021:11:18 16:12:35+05:00
            fileAccessDateTime: 2021:11:18 16:12:35+05:00
            fileCreationDateTime: 2021:11:18 16:12:24+05:00
            imageSize: 929x700
            megapixels: 0.65
    TemplateDocument:
      type: object
      properties:
        groupPermissions:
          type: array
          items:
            $ref: '#/components/schemas/GroupPermission'
        groupId:
          type: string
          format: uuid
          example: 7d6207c0-f423-11e9-8071-89c0c4052141
    TenovosMetadata:
      type: object
      properties:
        fileName:
          type: string
          example: adventure-alps-beautiful-landscape-2444403.jpg
        fileSize:
          type: string
          example: 4.4 MB
        MD5Checksum:
          type: string
          example: 6cbc612262877e8502904ea3ffd6a278
      description: Core technical metadata
    UpdateAssetResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Asset update was successful
    User:
      type: object
      properties:
        userId:
          type: string
          description: Current User ID
          format: uuid
          example: 7d675ef0-f423-11e9-8071-89c0c4052141
        customerId:
          type: string
          description: Parent Customer ID
          example: '1234567890'
        emailId:
          type: string
          description: User email
          format: email
          example: jlake@company.com
        firstName:
          type: string
          description: User first name
          example: John
        lastName:
          type: string
          description: User last name
          example: Lake
        roleId:
          type: string
          description: User role ID
          format: uuid
          example: 7d5620e0-f423-11e9-8071-89c0c4052141
        status:
          type: string
          description: User account status
          example: enabled
        groups:
          type: array
          description: List of group IDs that user belongs to
          items:
            type: string
            format: uuid
            example: 7d6207c0-f423-11e9-8071-89c0c4052141
    UserUpdateSecurityGroupRequest:
      type: object
      properties:
        userGroupId:
          type: string
          description: group-id of a valid existing user-security-group of customer
          format: uuid
          example: 7d6207c0-f423-11e9-8071-89c0c4052141
        userGroupName:
          type: string
          description: group-name of a valid existing user-security-group of a customer
    UserCreateRequest:
      type: object
      properties:
        firstName:
          type: string
          description: First Name of the User.
          example: John
        lastName:
          type: string
          description: Last Name of the User.
          example: Wick
        friendlyName:
          type: string
          description: Friendly Name of the User.
          example: john.wick
        email:
          type: string
          description: Email of the User.
          example: john.wick@tenovos.com
        username:
          type: string
          description: Username of the User.
          example: john.wick
        password:
          type: string
          description: Password of the User.
          example: sdhg&uuUz78u
        accountType:
          type: string
          description: Account Type of the User.
          example: local
          enum:
            - local
            - federated
        customAttributes:
          $ref: '#/components/schemas/UserCreateRequest_customAttributes'
        userRoleId:
          type: string
          description: Account Type of the User.
          example: 1401df5e-3f13-4c88-a5a8-de64f6227a03
        groups:
          type: array
          description: List of group IDs that user belongs to
          items:
            type: string
            format: uuid
            example: 7d6207c0-f423-11e9-8071-89c0c4052141
    UserResponse:
      type: object
      properties:
        roleId:
          type: string
          description: User role ID
          format: uuid
          example: 7d5620e0-f423-11e9-8071-89c0c4052141
        status:
          type: string
          description: User account status
          example: success
    UserSearchResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        data:
          type: array
          description: List of User objects
          items:
            $ref: '#/components/schemas/User'
    UserUpdateRequest:
      type: object
      properties:
        firstName:
          type: string
          description: First Name of the user
          example: John
        lastName:
          type: string
          description: Last Name of the user
          example: Smith
        friendlyName:
          type: string
          description: Last Name of the user
          example: John Smith
        email:
          type: string
          description: Email of the user
          example: john.smith@company.com
        company:
          type: string
          description: Company name of the user
          example: John's Company Inc.
        country:
          type: string
          description: Country of the user
          example: USA
        contact:
          type: number
          description: Contact Number of the user
          example: 1234567890
        phone:
          type: number
          description: Alternate phone number of the user
          example: 1234567890
        userRoleId:
          type: string
          description: User role id of the user
          format: uuid
          example: 7d5620e0-f423-11e9-8071-89c0c4052141
        userRoleName:
          type: string
          description: User role name of the user
          example: End user
        groups:
          type: array
          description: List of user group ids the user is part of
          items:
            type: string
            description: User group id
            format: uuid
            example: 7d6207c0-f423-11e9-8071-89c0c4052141
        status:
          type: string
          description: >-
            Allows updating the users status to either enable or disabled. 
            These values are case sensitive.
          example: enabled
          enum:
            - enabled
            - disabled
    UserUpdateSecurityGroupResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: User Profile update was successful
    VocabularyDeleteErrorResponse:
      type: object
      properties:
        message:
          type: string
    WorkflowTemplateResponse:
      type: array
      items:
        $ref: '#/components/schemas/WorkflowTemplate'
    WorkflowTemplate:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Marketing
    AssetBulkEditMultiValue_metadataDefinitionValue:
      type: object
      properties:
        valueId:
          type: string
          example: 7d6f4e30-f423-11e9-8071-89c0c4052141
    AssetBulkEditRestrictedVocabularyValue_metadataDefinitionValue:
      type: object
      properties:
        valueId:
          type: string
          format: uuid
    AssetExposeRequest_inner:
      type: object
      properties:
        id:
          type: string
          format: uuid
        identifier:
          type: string
          description: Type of identifier
          example: objectId
          enum:
            - objectId
            - fileId
        components:
          type: array
          description: >-
            Array of Objects for generating urls based on properties rendition
            or object with expiration time in seconds.
          items:
            anyOf:
              - $ref: '#/components/schemas/AssetExposeRefRendition'
              - $ref: '#/components/schemas/AssetExposeRefObject'
    AssetExposeResponse_inner:
      type: object
      properties:
        id:
          type: string
          format: uuid
        identifier:
          type: string
          example: objectId
          enum:
            - objectId
            - fileId
        components:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/AssetExposeRenditionResponse'
              - $ref: '#/components/schemas/AssetExposeObjectResponse'
    AssetMultipartUploadRequest_parts:
      type: object
      properties:
        partNumber:
          type: number
          example: 1
        etag:
          type: string
          example: 6988d46a133c76f49c555deebb8efb8a
    AuthRequest_session:
      type: object
      properties:
        refreshToken:
          type: string
        accessToken:
          type: string
      description: Use this to **refresh** token
    AuthResponse_session:
      type: object
      properties:
        authorization:
          type: string
          example: >-
            eyJraWQiOiJqQWNzNDFBdFBEcXdKTVN6Y0dzV01SNFR0T3hETDhcL3dtOW9qQ0JOWVdqcz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJhdWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjEzNzUyODE3LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV9PU2dRdlRhVEEiLCJjb2duaXRvOnVzZXJuYW1lIjoiamVmZiIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJlbWFpbCI6ImplZmZAdGVub3Zvcy5jb20ifQ.kzu1AddXc-HIopmmsxnnXjDiKXhOLox6P2Hx5HCg0gzupbjW9hjbMWVl0NIZRgrLJIEkYjTl9zRUre_QpiJdeVdluMVPLi6OfMUy8XskeqrOAUFDr3nqrkt99uR-LSrVd_hI8NSGvRPXEcWXV6A35Nq8_xZ8tHHlWEanGhtNcEPzgWa1JU1LdQPDCtixgwQGhroevX2TByGC_yfbimn9l5JeveQGyWKNIfvUPR9zLu2g8bPgCzCUroNWU1QRh1o-p1-8lMVwyROl3mIiCfSTo_QwtLArcFTJi5MyMsWCwWHXV
        refreshToken:
          type: string
          example: >-
            eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAifQ.jkuKuQVDhGxbX04I3iczTCioh9ah2MA90YkOcY7DTyLS94XCvS_JpOhUSHhk70uM_ZNxLCU00OtahFm7Ktc-Zw_21qjuA40yf9Uf0KcQok5DEbv-9-_j8F4PAdChaS8Cok_-SjUoZmbiIgC-uF601vcczTHgC2SLs4FiOubdc-3tVjQrt6sf0k_W3cBBR-ajbYrDYMdHiJGEtetod88bO1WYJlSWhSddHXkjWOYE0-x3flkDswYJkEq1FKpc1lgqaeoVGShJ90H4S9Yj_FS9vHd0Yq8pwOUkCjIr_P3xFK4d9pRtEc35gkQ3QMbE1Nx93srzUx2rkI75_J2Hf3IltA.jlAjOx1FRapys-J-.YfjwTEQMsnp1wPXkKab_NvA_6lZp15ur2zNUEuX0NqC4hfQ6kbzzQXOl_nLujNwLI8YqqNgLni3l4Eu-luxHDCM2fHvjVaL6_ULJ9VThkBlkJYmxFQZX8c20EPWa1IBH630EPKslFNwPgYT113
        accessToken:
          type: string
          example: >-
            eyJraWQiOiJITk5BbmN6bW1NajFaMUlGNXE3SXdzM3RvbE1QWnFYRjBWVFVzUGQyTnc4PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MTM3NTI4MTcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX09TZ1F2VGFUQSIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJqdGkiOiI3NWJjZWYzZi03Njg3LTQ5MjgtOTY2Zi05MzM0MmQ0MjFmYjkiLCJjbGllbnRfaWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwidXNlcm5hbWUiOiJqZWZmIn0.COepDhay_VaqCHJwNOT
        expireEpoch:
          type: number
          example: 1546300800000
    ImpersonateResponse_session:
      type: object
      properties:
        authorization:
          type: string
          example: >-
            eyJraWQiOiJqQWNzNDFBdFBEcXdKTVN6Y0dzV01SNFR0T3hETDhcL3dtOW9qQ0JOWVdqcz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJhdWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjEzNzUyODE3LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV9PU2dRdlRhVEEiLCJjb2duaXRvOnVzZXJuYW1lIjoiamVmZiIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJlbWFpbCI6ImplZmZAdGVub3Zvcy5jb20ifQ.kzu1AddXc-HIopmmsxnnXjDiKXhOLox6P2Hx5HCg0gzupbjW9hjbMWVl0NIZRgrLJIEkYjTl9zRUre_QpiJdeVdluMVPLi6OfMUy8XskeqrOAUFDr3nqrkt99uR-LSrVd_hI8NSGvRPXEcWXV6A35Nq8_xZ8tHHlWEanGhtNcEPzgWa1JU1LdQPDCtixgwQGhroevX2TByGC_yfbimn9l5JeveQGyWKNIfvUPR9zLu2g8bPgCzCUroNWU1QRh1o-p1-8lMVwyROl3mIiCfSTo_QwtLArcFTJi5MyMsWCwWHXV
        refreshToken:
          type: string
          example: ''
        accessToken:
          type: string
          example: >-
            eyJraWQiOiJITk5BbmN6bW1NajFaMUlGNXE3SXdzM3RvbE1QWnFYRjBWVFVzUGQyTnc4PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MTM3NTI4MTcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX09TZ1F2VGFUQSIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJqdGkiOiI3NWJjZWYzZi03Njg3LTQ5MjgtOTY2Zi05MzM0MmQ0MjFmYjkiLCJjbGllbnRfaWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwidXNlcm5hbWUiOiJqZWZmIn0.COepDhay_VaqCHJwNOT
        expireEpoch:
          type: number
          example: 1546300800000
    ControlledVocabulary_metadata:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/ControlledVocabularyValue'
        searchable:
          type: boolean
          description: Toggle searchability
      description: Vocabulary metadata
    ControlledVocabularyUpdateRequest_update:
      type: object
      properties:
        valueId:
          type: string
        valueName:
          type: string
    MetadataTemplate_template:
      type: object
      properties:
        metadataGroups:
          type: array
          description: List of meta data groups this template contain
          items:
            $ref: '#/components/schemas/MetadataGroup'
        templateId:
          type: string
          format: uuid
        templateName:
          type: string
        createdEpoch:
          type: integer
          example: 1234567890123
        lastUpdatedEpoch:
          type: integer
          example: 1234567890123
        templateType:
          type: array
          items:
            $ref: '#/components/schemas/MetadataTemplateType'
    CreateProofUser:
      type: object
      properties:
        first_name:
          type: string
          example: Tony
        last_name:
          type: string
          example: Stark
        email:
          type: string
          description: Email address for the user
          example: tony.stark@tenovos.com
        roles:
          type: array
          description: List of string for each account type assigned to the user
          items:
            $ref: '#/components/schemas/ProofUserRoles'
        phone:
          type: string
          description: Phone number for the user
          example: '4412345678911'
        timezone:
          type: string
          description: Timezone for the user
          example: account_owner_timezone
        company:
          type: string
          description: The company associated with the user account
          example: Tenovos
        verified:
          type: boolean
          description: >-
            Indicates whether or not the user has confirmed their account via
            the email notification sent.  Only  available when the role is not
            guest.  If set to true, user will not receive an email notification
            and will be able to login without confirming email address.
          example: false
        password:
          type: string
          description: >-
            The password the user will use to login.  For Tenovos federated
            users, this can be any password that is at least 8 characters with 1
            number and 1 captial letter, and user will not use this password
            when accessing proofs via Tenovos federation.
        proofing_defaults:
          type: object
          properties:
            view:
              type: boolean
              description: Indicates whether the user account can view proofs
              example: true
            comment:
              type: boolean
              description: Indicates whether the user account can comment on proofs
              example: true
            decision:
              type: boolean
              description: Indicates whether the user account can make decisions on proofs
              example: false
            share:
              type: boolean
              description: Indicates whether the user account can share proofs
              example: true
            manage:
              type: boolean
              description: >-
                Indicates whether the user account can manage proofs. Should be
                false if user is not in the manage role
              example: false
            notification:
              type: string
              description: >-
                Indicates whether the user account is configured to get
                notications about proofs
              example: disabled
    ProofUserResponse:
      type: object
      properties:
        id:
          type: string
          description: Identifier of the proofing user account created
          example: a4fdc859-6d9e-4885-8df0-a5d315827703
        first_name:
          type: string
          example: Tony
        last_name:
          type: string
          example: Stark
        account_owner:
          type: boolean
          description: >-
            Indicated if the user is the owner of the Proofing account for the
            organization
          example: false
        timezone:
          type: string
          example: Europe/London
        email:
          type: string
          description: Email address for the user
          example: tony.stark@tenovos.com
        roles:
          type: array
          description: List of string for each account type assigned to the user
          items:
            $ref: '#/components/schemas/ProofUserRoles'
        phone:
          type: string
          description: Phone number for the user
          example: '4412345678911'
        company:
          type: string
          description: The company associated with the user account
          example: Tenovos
        verified:
          type: boolean
          description: >-
            Indicates whether or not the user has confirmed their account via
            the email notification sent
          example: 'false'
    RelationshipCreateRequest_secondaryIds:
      type: object
      properties:
        id:
          type: string
          description: ID of the secondary asset
          format: uuid
        linkType:
          type: string
          description: A relationship type
          enum:
            - child
            - derivative
            - placed-graphic
    RelationshipDeleteRequest_secondaryIds:
      type: object
      properties:
        id:
          type: string
          description: ID of the secondary asset
          format: uuid
          example: f81769d1-8e93-4af7-856e-56ea30ec1038
        linkType:
          type: string
          description: Relationship type
          enum:
            - child
            - placed-graphic
            - derivative
    Search_sortBy:
      type: object
      properties:
        metadataDefinitionSearchField:
          type: string
          description: >-
            Sort the result set according to specified attributes by metadata
            search field name
          example: lastUpdatedEpoch
        order:
          type: string
          description: Sort Order
          example: desc
          enum:
            - asc
            - desc
    SearchFacetList_inner:
      type: object
      properties:
        facet_name:
          type: string
          description: Name of the facet
          example: Agency
        values:
          type: array
          description: List of facet values
          items:
            type: object
            properties:
              key:
                type: string
                description: Key of the facet
                example: Sunset Images LLC
              doc_count:
                type: integer
                description: Number of Assets against the key
                example: 3
    UserCreateRequest_customAttributes:
      type: object
      properties:
        country:
          type: string
          description: Country of User
          example: USA
        company:
          type: string
          description: Company of User
          example: Tenovos
        phone:
          type: string
          description: Phone of User
          example: ''
        contact:
          type: string
          description: Contact of User
          example: ''
  examples:
    impersonateUserExample:
      value:
        username: user-name
    newTokenExample:
      value:
        username: user@co.com
        password: XXXX
        clientId: '123355543'
    refreshTokenExample:
      value:
        session:
          accessToken: yJraWQiOiJITk5BbmN6bW1NajFaMUlGN
          refreshToken: eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2
    ControlledVocabularyNameChange:
      value:
        name: Color List
    ControlledVocabularyAdd:
      value:
        add:
          - Black
    ControlledVocabularyUpdate:
      value:
        update:
          - valueId: 4746f395-05ea-4cc3-9577-c636f468a59c
            valueName: Green
          - valueId: 7d6f4e30-f423-11e9-8071-89c0c4052141
            valueName: Blue
    ControlledVocabularyDelete:
      value:
        delete:
          - abc6f395-05ea-4cc3-9577-c636fff8a5e3
    CreateAsset:
      value:
        metadataTemplateId: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadata:
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
            metadataDefinitionValue: Photo
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
            metadataDefinitionValue:
              valueId: 3fa85f64-5717-4562-b3fc-2c963f66aea6
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue: 02/10/2021
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue:
              - valueId: 7d6f4e30-f423-11e9-8071-89c0c4052141
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionTableValue:
              - - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
                  metadataDefinitionValue: Photo
                - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
                  metadataDefinitionValue:
                    valueId: 3fa85f64-5717-4562-b3fc-2c963f66ada6
                - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
                  metadataDefinitionValue: 02/10/2021
        securityTemplateIds:
          - 7d6f4e30-f423-11e9-8071-89c0c4052141
        filename: apples.jpg
    CreateNewAssetVersion:
      value:
        originalFileId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        metadataTemplateId: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadata:
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
            metadataDefinitionValue: Photo
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
            metadataDefinitionValue:
              valueId: 3fa85f64-5717-4562-b3fc-2c963f66aea6
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue: 02/10/2021
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue:
              - valueId: 7d6f4e30-f423-11e9-8071-89c0c4052141
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionTableValue:
              - - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
                  metadataDefinitionValue: Photo
                - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
                  metadataDefinitionValue:
                    valueId: 3fa85f64-5717-4562-b3fc-2c963f66ada6
                - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
                  metadataDefinitionValue: 02/10/2021
        securityTemplateIds:
          - 7d6f4e30-f423-11e9-8071-89c0c4052141
        filename: apples.jpg
    CreateFederatedAsset:
      value:
        metadataTemplateId: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadata:
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
            metadataDefinitionValue: Photo
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
            metadataDefinitionValue:
              valueId: 3fa85f64-5717-4562-b3fc-2c963f66aea6
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue: 02/10/2021
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue:
              - valueId: 7d6f4e30-f423-11e9-8071-89c0c4052141
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionTableValue:
              - - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
                  metadataDefinitionValue: Photo
                - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
                  metadataDefinitionValue:
                    valueId: 3fa85f64-5717-4562-b3fc-2c963f66ada6
                - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
                  metadataDefinitionValue: 02/10/2021
        securityTemplateIds:
          - 7d6f4e30-f423-11e9-8071-89c0c4052141
        filename: apples.jpg
        contentPath: S3-Key
        skipTranscode: true
    MultipartUpload:
      value:
        metadataTemplateId: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadata:
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
            metadataDefinitionValue: Photo
          - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
            metadataDefinitionValue:
              valueId: 3fa85f64-5717-4562-b3fc-2c963f66aea6
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue: 02/10/2021
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionValue:
              - valueId: 7d6f4e30-f423-11e9-8071-89c0c4052141
          - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
            metadataDefinitionTableValue:
              - - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff0b959a
                  metadataDefinitionValue: Photo
                - metadataDefinitionId: dfeb57c1-b149-4b15-920f-3f40ff3423ad1
                  metadataDefinitionValue:
                    valueId: 3fa85f64-5717-4562-b3fc-2c963f66ada6
                - metadataDefinitionId: 3229e863-022b-4365-afe6-e9aa3807c386
                  metadataDefinitionValue: 02/10/2021
        securityTemplateIds:
          - 7d6f4e30-f423-11e9-8071-89c0c4052141
        filename: apples.jpg
        filesize: 182989737790
    AssetCreateResponse:
      value:
        filename: apples.jpg
        objectId: e55bdb0c-022b-475d-9e26-9d74552e1e81
        fileId: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        originalFileId: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        url: >-
          https://contentstore3.com/masters/919f33e2-dc03-4627-ab7b-642a5f1d11ae/apples.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAYNV%2F20210221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210221T023210Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIFz62IeetD0q9EPtTeRxCSZEcNMqsuGVqK9UmK&X-Amz-Signature=e03d60e8299af92664a0ea8f9be78c50c8dd28f88520b0c2b7d0073b36511ce5&X-Amz-SignedHeaders=host%3Bx-amz-meta-objectid&x-amz-meta-objectid=2c1d0732-31a7-4800-bbd7-3fb05c222549
    MultipartUploadResponse:
      value:
        filename: apples.jpg
        objectId: e55bdb0c-022b-475d-9e26-9d74552e1e81
        fileId: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        originalFileId: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        uploadId: >-
          gR5XHJZpuDv8UizdpSGuwONje0GbMHnCWXS5zTTVkyVINURV6iraWLhpM7Sy7oy65utAgPcm2FfM4fRp4oVga4ggEzD811aS1tke_F0iIIXX1kV7m6UouytsNE0oL8fzo2Zr2JCqwRyhFTXp98zjdQ
        urls:
          - partNumber: 1
            url: >-
              https://contentstore3.com/masters/919f33e2-dc03-4627-ab7b-642a5f1d11ae/apples.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAYNV%2F20210221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210221T023210Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIFz62IeetD0q9EPtTeRxCSZEcNMqsuGVqK9UmK&X-Amz-Signature=e03d60e8299af92664a0ea8f9be78c50c8dd28f88520b0c2b7d0073b36511ce5&X-Amz-SignedHeaders=host%3Bx-amz-meta-objectid&x-amz-meta-objectid=2c1d0732-31a7-4800-bbd7-3fb05c222549
          - partNumber: 2
            url: >-
              https://contentstore3.com/masters/919f33e2-dc03-4627-ab7b-642a5f1d11ae/apples.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAYNV%2F20210221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210221T023210Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIFz62IeetD0q9EPtTeRxCSZEcNMqsuGVqK9UmK&X-Amz-Signature=e03d60e8299af92664a0ea8f9be78c50c8dd28f88520b0c2b7d0073b36511ce5&X-Amz-SignedHeaders=host%3Bx-amz-meta-objectid&x-amz-meta-objectid=2c1d0732-31a7-4800-bbd7-3fb05c222549
    FederatedAssetCreateResponse:
      value:
        filename: apples.jpg
        objectId: e55bdb0c-022b-475d-9e26-9d74552e1e81
        fileId: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        originalFileId: ecc0d79a-e5cc-41aa-852d-1d9e0da62739
        url: S3-Key
    CollectionCreateSuccessResponse:
      value:
        statusCode: success
        message: Collection successfully created
        collectionId: 4b5896b4-33e4-41ac-b251-39a4dbaa25b1
    CollectionCreateErrorResponse:
      value:
        statusCode: error
        message: The following fields are required, but are missing [collectionType]
