openapi: 3.0.0
info:
  title: API Endpoint Reference
  description: >


    Tenovos has introduced version 1.5 to provide non-breaking improvements over
    previous versions.


    Key Changes:
      * Authentication Standards now include OAuth2 code flow.  
      * Client ID is no longer required to be passed when requesting an Authorization token using our Standard Auth from v1.4 
      * New endpoints have been added and will continue to be added until v2 is generally available to all customers.
        * Adaptive Template endpoints
        * A new Get Asset endpoint with a simplified Response
        * A new Create Asset endpoint with simplified payloads for the Request and Response
        * A new Update Asset endpoint with simplified payloads for the Request and Response
      * We've made some performance improvements to most endpoints
  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.5'
externalDocs:
  description: Find out more about Tenovos
  url: https://tenovos.com
servers:
  - url: https://api.uat.tenovos.io/v1
  - url: https://api.tenovos.io/v1
security:
  - ApiKeyAuth: []
  - BasicAuth: []
tags:
  - name: ACTIONS
    description: Invoke the Action API to retrieve information about invoked Actions.
  - name: ADAPTIVE TEMPLATES
    description: Invoke the API to retrieve information about invoked Actions.
  - name: ASSETS
    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
    description: >-
      Invoke the Authentication API to generate, refresh, and revoke access
      tokens.  An access token is required to perform any authorized API
      operation.
  - name: CDN (Coming Soon!)
    description: >-
      <span style="font-size: 1.5em; font-weight: bold;">Tenovos Content
      Delivery Network (CDN) - Coming Soon!</span>


      <span style="font-size: 1.2em; font-weight: bold;">Tenovos CDN: Pull Zone
      Overview</span>


      Tenovos CDN provides global content acceleration and optimization through
      a pull zone architecture, ensuring that your assets are delivered to end
      users with maximum speed, reliability, and efficiency. A Content Delivery
      Network (CDN) works by caching

      static content—such as images, videos, and other media—on servers
      distributed across the globe. When an asset is requested, the CDN serves
      it from the nearest edge location, reducing load times and offloading
      traffic from the origin server, which in this case is Tenovos DAM.


      A pull zone is the core mechanism that powers this system. It
      automatically fetches content from the origin the first time it is
      requested, then caches it at the edge. Subsequent requests are served
      directly 

      from the CDN cache, improving response times and reducing bandwidth
      consumption.


      Through the Tenovos CDN API, you can create, update, and manage pull zones
      programmatically. Pull zones support advanced features such as global edge
      caching, cache purging, bandwidth controls, and real-time performance
      statistics like cache 

      hit rate and geographic request distribution. Optional optimization
      settings allow you to enhance performance further by enabling image
      compression, WebP and AVIF support, and content minification.


      With just a few API calls, you can fully integrate high-performance
      content delivery into your Tenovos workflows—no complex infrastructure
      required.  
  - name: COLLECTIONS
    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 users with.

      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: METADATA
    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
    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: REQUESTS
    description: Invoke these API's to create new Requests and manage existing Requests.
  - name: SECURITY
    description: >-
      Invoke the Metadata API to retrieve Security Template information to be
      applied to Assets during Asset creation or edit.
  - name: PEOPLE
    description: Invoke the User API to retrieve User profile information.
  - name: WEBHOOKS
    description: >
      <span style="font-size: 1.5em; font-weight: bold;">Tenovos Webhook
      Subscriptions</span>


      <span style="font-size: 1.2em; font-weight: bold;">For more information
      about our Webhooks, see the [Webhook
      section](/developer-portal/webhooks/overview) of our Developer
      Portal</span>
paths:
  /action/{id}:
    get:
      operationId: GetAction
      tags:
        - ACTIONS
      summary: Action Details
      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.


        **Average Response Time:** 146ms
      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: id
          in: path
          description: Action **Object ID** or **File ID**
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
            maxLength: 36
            minLength: 36
            x-nullable: false
            example: a1c6a2ab-4b01-4253-b4c9-70e04b3b48fc
      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:
        - ASSETS
      summary: Create Asset
      description: >-
        Use this endpoint 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.


        **Average Response Time:** 1077ms (varies based on metadata)
      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: 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/create-asset-response'
        '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:
        - ASSETS
      summary: Bulk Edit 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.


        **Average Response Time:** 605ms
      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: 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:
        - ASSETS
      summary: Get Asset
      description: >-
        Retrieve an Asset's details and metadata 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.


        **Average Response Time:** 451ms (Get asset by fileId)


        **Average Response Time:** 2973ms (Get asset by objectId)
      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: id
          in: path
          description: Asset **Object ID** or **File ID**
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
            minLength: 36
            maxLength: 36
      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:
        - ASSETS
      summary: Update 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.


        **Average Response Time:** 1701ms
      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: 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:
        - ASSETS
      summary: Get Asset Download Link
      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.


        **Average Response Time:** 934ms
      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: 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:
        - ASSETS
      summary: Delete or Restore 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.


        **Average Response Time:** 445ms (Soft Delete an Asset)

        **Average Response Time:** 1055ms (Undeleted an 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: 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:
        - ASSETS
      summary: Get Asset Latest Version
      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.


        **Average Response Time:** 265ms
      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: 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:
        - ASSETS
      summary: Get Asset Relationships
      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.


        **Average Response Time:** 140ms
      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: 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:
        - ASSETS
      summary: Create Asset Relationship
      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.


        **Average Response Time:** 3922ms
      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: 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:
        - ASSETS
      summary: Remove Asset Relationship
      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.


        **Average Response Time:** 929ms
      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: 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:
        - ASSETS
      summary: Get Asset Version History
      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: 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:
        - ASSETS
      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.**  


        **Average Response Time:** 1310ms
      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: 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:
        - ASSETS
      summary: Assign Asset Preview Image
      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.\n\nIf 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.\n\nAfter submitting the request to
        replace an Asset preview, \n\nThe 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.\n\nFor 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."


        **Average Response Time:** 953ms
      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: 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/{id}/history:
    get:
      operationId: getAssetHistory
      tags:
        - ASSETS
      summary: (NEW!) Asset History
      description: |-
        **COMING SOON!**

        This endpoint returns a complete history of all events
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/userId'
        - $ref: '#/components/parameters/eventType'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/endDate'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/cursor'
      responses:
        '200':
          description: Successful Request. Event Types Retrieved Successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-history'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /asset/expose:
    post:
      operationId: GetAssetUrl
      tags:
        - ASSETS
      summary: Generate Temporary Asset Preview Link
      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 User must have a role with the **Download** privilege.


        **Average Response Time:** 785ms
      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: 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
      summary: Scan Asset Search Results
      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: 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:
        - ASSETS
      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.


        **Average Response Time:** 195ms
      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: 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:
        - ASSETS
      summary: Share or Download Asset Transformation
      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.


        **Average Response Time:** 937ms
      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: 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
  /assets/asset:
    post:
      operationId: create-asset-v1.5
      tags:
        - ASSETS
      summary: (NEW!) Create an Asset
      description: >-
        Use this endpoint to perform one of the following:
          - Create a new Asset
          - Create a new version of an existing Asset
          - Create a new Metadata-only Asset

        Once the new Asset or version is created, a new object ID is returned in
        the response 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 endpoint, the response will 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
      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:
              oneOf:
                - $ref: '#/components/schemas/create-asset'
                - $ref: '#/components/schemas/create-asset-version'
                - $ref: '#/components/schemas/create-multipart-asset'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create-asset-response'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired.  Also occurs if the user does not have the permission to
            perform the action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key or Invalid Metadata Template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /assets/asset/{id}:
    get:
      operationId: get-asset-v1.5
      tags:
        - ASSETS
      summary: (NEW!) Retrieve an Asset
      description: >-
        Retrieves an asset's details and metadata by specifying an Asset
        Identifier or File Identifier in the request path.


        ** The user requesting the Asset must have view 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: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: The Asset Identifier (same as objectId) to retrieve.
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
        - name: empty
          in: query
          description: >-
            Default is `true`. When false, results will not include metadata
            without values, when true all metadata attributes for the asset will
            be returned even those with no values provided.
          required: false
          style: simple
          schema:
            type: boolean
        - name: system
          in: query
          description: >-
            Default is `true`.  When false, system metadata fields will be
            excluded from the metadata array that is returned in the response.
          required: false
          style: simple
          schema:
            type: boolean
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-asset-response'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired.  Also occurs if the user does not have the permission to
            perform the action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key or Asset Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
    patch:
      operationId: update-asset-v1.5
      tags:
        - ASSETS
      summary: (NEW!) Update an Asset
      description: >-
        Update the metadata attribute values and/or the Security Template
        assignments for an Asset identified by Object ID (Asset ID).  ** The
        identifier must be specified in the path parameter.


        ** The user requesting the Asset must have edit role privilege, as well
        as edit permission on the Asset's security template in order to update
        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: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
        - name: id
          in: path
          description: The Asset Identifier belonging to the Asset to update.
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
      requestBody:
        description: >-
          The Request Body must be a JSON object.

          Update the security templates assigned to an Asset, or update metadata
          values.  Only those values you wish to change need to be provided.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-asset'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/update-response'
                  - $ref: '#/components/schemas/update-response-error'
        '401':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired.  Also occurs if the user does not have the permission to
            perform the action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Unauthorized
        '403':
          description: Forbidden. Missing X-API-key or Asset Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: Forbidden
  /workflow-templates:
    get:
      operationId: GetProofTemplate
      tags:
        - PROOFING
      summary: Get Workflow Templates
      description: |-
        Get active workflow templates.

        **Average Response Time:** 9690ms
      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
      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:
        - PROOFING
      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: 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:
        - PROOFING
      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
      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:
        - PROOFING
      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: 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/token:
    post:
      security:
        - BasicAuth: []
          ApiKeyAuth: []
      operationId: GetAuthToken
      tags:
        - AUTHENTICATION
      summary: Authorize Session
      description: >-
        Generates authentication credentials that expire after one hour.


        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.


        **Average Response Time:** 3671ms (New Token)


        **Average Response Time:** 233ms (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:
          * 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
      summary: Expire 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.


        **Average Response Time:** 288ms
      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: >-
            JWT token provided by Authentication Token creation operation. This
            header is required specifically for the Expire Token API to identify
            which token to expire.
          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.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthExpireRequest'
            examples:
              Expire_Token:
                $ref: '#/components/examples/expireTokenExample'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthExpireResponse'
        '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
  /auth/impersonate:
    post:
      operationId: Impersonate
      deprecated: true
      tags:
        - AUTHENTICATION
      summary: Impersonate User
      description: >-
        This endpoint generates an Access Token and Authorization given a system
        username.
      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: 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/impersonate:
                  post:
                    operationId: Impersonate
                    tags:
                      - AUTHENTICATION
                    summary: Impersonate User
                    description: 'This endpoint '
                    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: 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
  /collection:
    post:
      operationId: CreateCollection
      tags:
        - COLLECTIONS
      summary: Create 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.


        **Average Response Time:** 200ms (Private Collection)


        **Average Response Time:** 2568ms (Shared 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: 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:
        - COLLECTIONS
      summary: Get Collection
      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.


        **Average Response Time:** 53ms
      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: 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:
        - COLLECTIONS
      summary: Delete 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.


        **Average Response Time:** 81ms
      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: 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:
        - COLLECTIONS
      summary: Update 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.


        **Average Response Time:** 5070ms
      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: 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:
        - COLLECTIONS
      summary: Share Collection Contents
      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. \n\nThe user sharing the Assets must
        be granted the **Download** and **Share** Security Template permission
        on the Assets being shared.


        **Average Response Time:** 49ms
      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: 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
  /cdn/pullzone/{pullZoneId}:
    get:
      operationId: getPullZone
      tags:
        - CDN (Coming Soon!)
      summary: Get Pull Zone
      description: >-
        **COMING SOON!**


        This endpoint returns all available about a customer configured CDN Pull
        Zone, including monthly bandwidth usage. 
      parameters:
        - $ref: '#/components/parameters/pull-zone-id'
        - 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: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      responses:
        '200':
          description: Successful Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pull-zone'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /cdn/pullzone:
    post:
      operationId: createPullZone
      tags:
        - CDN (Coming Soon!)
      summary: Create Pull Zone
      x-status: coming-soon
      description: >-
        Configure Tenovos CDN Pull Zone.  CDN Pull Zones should be based in a
        region closest to where your content needs to be served to ensure the
        lowest latency possible.  Consider geo-replication for serving content
        to global 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: 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 of the available configuration
          properties.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pull-zone'
      responses:
        '200':
          description: Successful Request. CDN Zone Successfully Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pull-zone'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
    patch:
      operationId: editPullZone
      tags:
        - CDN (Coming Soon!)
      summary: Update Pull Zone
      description: >-
        Update your Tenovos CDN Pull Zone Configuration.  CDN Zones should be
        based on a region closest to where your content needs to be delivered to
        ensure the lowest latency possible.  Consider geo-replication for global
        delivery.
      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: 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 of the available configuration
          properties.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pull-zone'
      responses:
        '204':
          description: The CDN zone was successfully updated
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /cdn/pullzone/stats/{pullZoneId}:
    get:
      operationId: pullZoneStats
      tags:
        - CDN (Coming Soon!)
      summary: Pull Zone Statistics
      x-status: coming-soon
      description: Use this endpoint to retrieve usage statistic for a specified Pull Zone.
      parameters:
        - $ref: '#/components/parameters/pull-zone-id'
        - 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: Content-Type
          in: header
          required: true
          style: simple
          explode: false
          schema:
            type: string
            enum:
              - application/json
      responses:
        '200':
          description: Successful Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cdn-pullzone-stats'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /metadata/attributes:
    get:
      operationId: getMetadataAttributes
      tags:
        - METADATA
      summary: (NEW!) Metadata Attributes
      description: >-
        Retrieve all metadata attributes available to the requesting user.


        The user submitting the request must have administrator privilege to
        Metadata Management.


        **Average Response Time:** 492ms
      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: 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:
                $ref: '#/components/schemas/metadata-attributes'
        '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
      summary: Retrieve Metadata Templates
      description: >-
        Retrieve all metadata templates available to the requesting user


        The user submitting the request must have administrator rights to view
        metadata templates.


        **Average Response Time:** 492ms
      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: 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
      summary: Get Metadata Template
      description: >-
        "Retrieve the metadata template and its attributes list by template ID
        \n\nThe user submitting the request to metadata template must have the
        **Metadata Template Management** security role privilege.\n\nIn
        response, it will contain the metadata groups template have and each
        group metadata attributes list."


        **Average Response Time:** 1406ms
      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: 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
      summary: Get Controlled Vocabularies
      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.


        **Average Response Time:** 592ms
      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
      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
      summary: Create Controlled Vocabulary
      description: >-
        Create a Controlled Vocabulary. User must have permission to create a
        controlled vocabulary.


        Response will contain the object of the metadata definition attributes,
        such as id, name, type and search fields, etc.


        **Average Response Time:** 585ms
      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: 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
      summary: Get Controlled Vocabulary
      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.


        **Average Response Time:** 472ms
      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: 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
      summary: Delete Controlled Vocabulary
      description: |-
        Delete a Controlled Vocabulary.

        **Average Response Time:** 130ms
      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: 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: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              examples:
                Invalid_Token:
                  value:
                    message: >-
                      Invalid token specified: Cannot read properties of
                      undefined (reading 'replace')
        '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/VocabularyDeleteErrorResponse'
              example:
                message: Controlled vocabulary not found
    patch:
      operationId: UpdateControlledVocab
      tags:
        - METADATA
      summary: Update 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.


        **Average Response Time:** 1462ms (Add Controlled Vocabulary (CV) value)

        **Average Response Time:** 716ms (Update a CV value )
      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: 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'
        '400':
          description: >-
            Unauthorized. Missing Authorization or AccessToken or Access Token
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorMessageResponse'
              example:
                message: >-
                  Invalid token specified: Cannot read properties of undefined
                  (reading 'replace')
        '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
      summary: Apply 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.


        **Average Response Time:** 53ms
      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
      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
  /request:
    post:
      operationId: createRequest
      tags:
        - REQUESTS
      summary: (NEW!) Create Request
      description: |-
        **COMING SOON!**

        Use this endpoint to create a new Request in Tenovos.  
      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
      requestBody:
        description: The Request Body must be a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-request'
      responses:
        '200':
          description: Created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create-request-2'
        '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
  /request/{id}:
    patch:
      operationId: updateRequest
      summary: (NEW!) Update Request
      description: >-
        **COMING SOON!**


        Use this endpoint to update an existing Request.  Only send the data
        that you wish to change.
      tags:
        - REQUESTS
      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: id
          in: path
          description: A Request ID.
          required: true
          style: simple
          explode: true
          schema:
            type: string
            format: uuid
            x-nullable: false
            maxLength: 36
            minLength: 36
            example: 4e428628-2537-40b5-91a4-5393cbf167df
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-request'
        required: true
      responses:
        '204':
          description: No Content.  Successful Update.
        '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
    get:
      operationId: getRequest
      summary: (NEW!) Get Request
      description: >-
        **COMING SOON!**


        Use this endpoint to retrieve a specific request based on the id of the
        request.
      tags:
        - REQUESTS
      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: id
          in: path
          description: A Request ID.
          required: true
          style: simple
          explode: true
          schema:
            type: string
            format: uuid
            x-nullable: false
            maxLength: 36
            minLength: 36
            example: 4e428628-2537-40b5-91a4-5393cbf167df
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-request'
        '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
  /request/list:
    post:
      operationId: listRequests
      tags:
        - REQUESTS
      summary: (NEW!) List Requests
      description: >-
        **COMING SOON**


        Use this endpoint to return a listing of all Requests.  The request body
        is entirely optional, and by default, the API will return all types of
        Requests sorted by **created_date** from the most recent to the oldest
        in batches of 100.  


        No metadata on the requests is returned from this endpoint.
      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
      requestBody:
        description: The Request Body must be a JSON object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/list-requests'
        required: false
      responses:
        '200':
          description: Changes applied successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list-requests-2'
        '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
  /roles:
    get:
      operationId: getRoles
      tags:
        - SECURITY
      summary: Retrieve Roles
      description: >-
        Response provides an array of the security Roles that are configured in
        Tenovos.  The items returned are limited to the Roles available to the
        user making the API call.


        **API User credentials must have administrative rights to the User
        Management privilege.**


        **Average Response Time:** 274ms
      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
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/roles'
        '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
  /roles/privileges:
    get:
      operationId: getPrivileges
      tags:
        - SECURITY
      summary: (NEW!) Retrieve Role Privileges
      description: >-
        Response will include a list of all role privileges available in the
        system. The user making the request must have the 'Security Template
        Management' role privilege. All role privileges will be returned by
        default. User can pass 'enabled' or 'disabled' as a path parameter to
        return only enabled or disabled role privileges. 

        The user making the request must have **Role Management** privilege. 


        **Average Response Time:** 188ms
      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
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/security-privileges'
        '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:
    post:
      operationId: searchAssets
      tags:
        - SEARCH
      summary: (NEW!) Search Assets
      description: >-
        There are 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"]
          
        Specifying a value in the 'keywordSearchField' attribute in the request
        allows you to target keyword searches against Filename, Asset ID,
        Metadata, or Content (extracted text from documents.
          
        By default, if not specified in the request, the search operation type
        will be set to 'AND' for search terms and/or facets. If the 'relevancy'
        field is passed as true, this will negate the operation selection used 

        in legacy search and will leverage the relevancy search matching. When
        relevancy is set to true, the 'metadataDefinitionSearchField' field
        within the sortBy object should be set to 'relevance', and the 'order'
        field should be set to 'desc'.
          
        By default, up to 50 Assets will return from the search. Should you want
        to limit the amount of assets returned in each response, the value for
        'limit' can be set to a number up to 50. You can also set search offset
        by setting the 'from' property. 

        For example, for the first page, set 'from' to 0. After that set 'from'
        to 50, 100, 150, etc.
          
        This endpoint will only return a handful of metadata fields by default.
        To include more metadata fields in the response, those fields should be
        included in the 'includes' array. System metadata fields, such as
        Metadata Template ID, 

        should be entered using camel case (ie, metadataTemplateId). Custom
        metadata fields should be entered by their attribute search term,
        prefixed by metadataDocument. For example, to retrieve an attribute
        called Published Channel, a user 

        would include "metadataDocument.published_channel" in the includes
        array. Fields included in this array will be returned in an object
        called 'metadataDocument' if those attributes exist on the asset.


        **Average Response Time:** 691ms
      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: 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/search-2'
        '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
  /search/collection:
    post:
      operationId: SearchCollections
      tags:
        - SEARCH
      summary: Search 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.


        **Average Response Time:** 244ms
      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: 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
      summary: Search Assets by Keyword
      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.


        **Average Response Time:** 4185ms
      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: 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
  /search/users/{searchText}:
    get:
      operationId: searchUsersByText
      tags:
        - SEARCH
      summary: Search User Profiles
      description: >-
        Use this endpoint to retrieve a list of User Profiles matching the
        search keyword provided in the request parameter. Do not enter your
        search term wrapped in quotation marks.

        Provided keyword will be matched against the user attributes case
        insensitively - First Name, Last Name, Friendly Name, Username, Email,
        Phone, Company, Contact, Country, Status, Group Names, and Role Name.
        Entering "*" as your search term will return all users.

        The response is formatted as an area of objects, with each user account
        being returned as an object, as well as a key called 'count', which
        indicates how many accounts met the search critera. A maximum limit of
        100 accounts will be returned in the response. 

        In the case that more than 100 accounts meet the search criteria,
        pagination using the optional 'from' and 'limit' query parameters will
        be required to retrieve all accounts.


        **The user performing this action must have the 'User Management' role
        privilege.**


        **How to use pagination:**

        Pagination should be used when the amount of user accounts that match
        the entered search term exceeds the amount of users (100) returned in a
        single response. Paginating through the results will require making more
        than one call to this endpoint.

        To retrieve the first 100 users, in your query parameters, set your
        'from' value to 0, and your 'limit' value to 100. To return the next set
        of 100 users, leave your 'limit' value as 100, but set your 'from' value
        to 100. 


        Continue to repeat this process of adding 100 to your 'from' value until
        all user account results are captured.
      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: searchText
          in: path
          description: Specify searchText to search across user attributes.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: from
          in: query
          description: Specify the starting position for the next result set.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: Specify the maximum number of records to return each call.
          required: true
          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
  /security/template:
    get:
      operationId: GetSecurityTemplates
      tags:
        - SECURITY
      summary: Retrieve Security Templates
      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.


        **Average Response Time:** 243ms
      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
      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
      summary: Retrieve 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.


        **Average Response Time:** 189ms
      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
      responses:
        '200':
          description: The Response Body is a JSON object of Security User Groups and ID's.
          content:
            application/json:
              schema:
                $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
  /security/permissions:
    get:
      operationId: GetSecurityPermissions
      tags:
        - SECURITY
      summary: (NEW!) Retrieve Security Permissions
      description: >-
        Response will include a list of all security permissions available in
        the system. The user making the request must 

        have the **Security Template Management** role privilege.


        **Average Response Time:** 231ms
      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
      responses:
        '200':
          description: The Response Body is a JSON object of Security User Groups and ID's.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/security-permissions'
        '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:
        - PEOPLE
      summary: Get Current User 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
      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:
        - PEOPLE
      summary: Create User
      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.


        **Average Response Time:** 5140ms
      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
      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:
        - PEOPLE
      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.


        **Average Response Time:** 154ms
      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: id
          in: path
          description: A User Profile ID.
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
            x-nullable: false
            maxLength: 36
            minLength: 36
            example: 4e428628-2537-40b5-91a4-5393cbf167df
      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:
        - PEOPLE
      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.


        **Average Response Time:** 1587ms
      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: 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:
        - PEOPLE
      summary: Add User to 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: 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:
        - PEOPLE
      summary: Remove User from 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: 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
      deprecated: true
      tags:
        - PEOPLE
      summary: Search User Profiles
      description: >-
        Use this endpoint to retrieve a list of User Profiles matching the
        search keyword provided in the request parameter. Do not enter your
        search term wrapped in quotation marks.

        Provided keyword will be matched against the user attributes case
        insensitively - First Name, Last Name, Friendly Name, Username, Email,
        Phone, Company, Contact, Country, Status, Group Names, and Role Name.
        Entering "*" as your search term will return all users.

        The response is formatted as an area of objects, with each user account
        being returned as an object, as well as a key called 'count', which
        indicates how many accounts met the search critera. A maximum limit of
        100 accounts will be returned in the response. 

        In the case that more than 100 accounts meet the search criteria,
        pagination using the optional 'from' and 'limit' query parameters will
        be required to retrieve all accounts.


        **The user performing this action must have the 'User Management' role
        privilege.**


        **How to use pagination:**

        Pagination should be used when the amount of user accounts that match
        the entered search term exceeds the amount of users (100) returned in a
        single response. Paginating through the results will require making more
        than one call to this endpoint.

        To retrieve the first 100 users, in your query parameters, set your
        'from' value to 0, and your 'limit' value to 100. To return the next set
        of 100 users, leave your 'limit' value as 100, but set your 'from' value
        to 100. 


        Continue to repeat this process of adding 100 to your 'from' value until
        all user account results are captured.
      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: searchText
          in: path
          description: Specify searchText to search across user attributes.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: from
          in: query
          description: Specify the starting position for the next result set.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: Specify the maximum number of records to return each call.
          required: true
          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
  /template:
    post:
      operationId: getTemplates
      tags:
        - ADAPTIVE TEMPLATES
      summary: Get Templates
      description: >-
        For customers with the Adaptive Template templates feature, use this
        endpoint to return a list of all available templates in the system.
      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: 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/AdaptiveTemplateSearch'
        required: true
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adaptive-templates'
        '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
  /template/launch:
    post:
      operationId: launchTemplate
      tags:
        - ADAPTIVE TEMPLATES
      summary: Get Template URL
      description: >-
        Returns a secure URL to open the template in a web browser using
        template identifier.
      requestBody:
        description: The Request Body must be a JSON object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/launch-template'
        required: true
      responses:
        '200':
          description: The Response Body is a JSON object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/launch'
        '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
  /webhooks/endpoint:
    post:
      operationId: createSubscription
      tags:
        - WEBHOOKS
      summary: Create Endpoint
      description: >-
        Create a subscription based on the topic and event type in order to be
        notified at your target URL when events about that topic occur.
      parameters:
        - $ref: '#/components/parameters/content-type'
        - $ref: '#/components/parameters/authorization'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/webhook'
      responses:
        '200':
          description: Successful Request. Webhook Subscriptions Created Successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhooks'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /webhooks/endpoint/list:
    get:
      operationId: getEndpointSubscriptionsList
      tags:
        - WEBHOOKS
      summary: List Endpoints
      description: >-
        This endpoint returns an array (List) of all endpoints (your endpoints)
        and the event types subscribed.
      parameters:
        - $ref: '#/components/parameters/before'
        - $ref: '#/components/parameters/after'
        - $ref: '#/components/parameters/content-type'
        - $ref: '#/components/parameters/authorization'
      responses:
        '200':
          description: Successful Request. Endpoints Retrieved Successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/endpoint'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /webhooks/event-type/list:
    get:
      operationId: getEventTypeList
      tags:
        - WEBHOOKS
      summary: List Event Types
      description: This endpoint returns an array (List) of all event types.
      parameters:
        - $ref: '#/components/parameters/before'
        - $ref: '#/components/parameters/after'
        - $ref: '#/components/parameters/content-type'
        - $ref: '#/components/parameters/authorization'
      responses:
        '200':
          description: Successful Request. Event Types Retrieved Successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/eventType'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /webhooks/endpoint/{id}:
    get:
      operationId: getEndpointById
      tags:
        - WEBHOOKS
      summary: Endpoint by ID
      description: This endpoint returns a single endpoint and its configuration by ID.
      parameters:
        - $ref: '#/components/parameters/subscriptionId'
        - $ref: '#/components/parameters/content-type'
        - $ref: '#/components/parameters/authorization'
      responses:
        '200':
          description: Successful Request. Endpoint Retrieved Successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpoint'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
    patch:
      operationId: updateEndpointById
      tags:
        - WEBHOOKS
      summary: Update Endpoint
      description: This endpoint updates a single endpoint and its configuration by ID.
      parameters:
        - $ref: '#/components/parameters/subscriptionId'
        - $ref: '#/components/parameters/content-type'
        - $ref: '#/components/parameters/authorization'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/webhook'
      responses:
        '204':
          description: Successful Request. Endpoint Updated Successfully.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
    delete:
      operationId: deleteWebhook
      tags:
        - WEBHOOKS
      summary: Delete Endpoint
      description: >-
        Delete a subscription you have to a Webhook based on the ID of the
        Webhook Subscription
      parameters:
        - $ref: '#/components/parameters/subscriptionId'
        - $ref: '#/components/parameters/content-type'
        - $ref: '#/components/parameters/authorization'
      responses:
        '204':
          description: Successful Request. Webhook Subscription Deleted Successfully.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
  /webhooks/endpoint/oauth/{endpointId}:
    put:
      operationId: CreateOauth
      tags:
        - WEBHOOKS
      summary: Add OAuth
      description: Add an authorized OAuth client to an existing endpoint.
      parameters:
        - $ref: '#/components/parameters/endpointId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/webhook-oauthCreate'
      responses:
        '204':
          description: Successful Request. OAuth Added Successfully.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
    delete:
      operationId: DeleteOauth
      tags:
        - WEBHOOKS
      summary: Remove OAuth
      description: Remove an authorized OAuth client from an existing endpoint.
      parameters:
        - $ref: '#/components/parameters/endpointId'
      responses:
        '204':
          description: Successful Request. Webhook Subscription Deleted Successfully.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '503':
          $ref: '#/components/responses/503'
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:
          type: string
          description: User ID who last updated the asset
          format: uuid
          example: dfeb57c1-b149-4b15-920f-3f40ff3423ad
        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: Action
          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:
          type: string
          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/renditions'
        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
          format: uuid
        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
          minLength: 36
          maxLength: 36
          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
            minLength: 36
            maxLength: 36
            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
          minLength: 36
          maxLength: 36
          example: ea6eb24d-adef-4080-bd02-f64f567c437f
        metadataTemplateId:
          type: string
          description: ID of metadata template to apply.
          format: uuid
          minLength: 36
          maxLength: 36
          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 file. Required only for Federated files.
        skipTranscode:
          type: boolean
          description: >-
            Flag to skip content transformation. Required only for Federated
            files.
        filesize:
          type: number
          description: Size of file in bytes
      description: >-
        JSON Object included when submitting a request to create an asset. The
        **Metadata** property is required and nullable.
    AssetContent:
      type: object
      properties:
        presignedURL:
          type: string
          description: RL to download an Asset content
          format: url
          example: >-
            https://contentstore.example.com/masters/055f4b24-0218-45ce-8d8f-2d39be0b676d/aerial-shot-1612461.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAYKPOCFJYXPN3EMXM%2F20210222%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210222T222207Z&X-Amz-Expires=20&X-Amz-Signature=444a0d4fd145a6c33a51494c914a878f44555c289f5ac70ee354e98bd1dd0ac&X-Amz-SignedHeaders=host
    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://contentstore.s3.amazonaws.com/1566292944864/67f23946-24d9-455d-9029-fe3012904564/4c3e98f2-03d9-41b4-8970-63a1528bb33d-200x200.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2HGSK63JE6U37KZD%2F20210222%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210222T221841Z&X-Amz-Expires=300&X-Amz-Signature=a078326023b77caff6e3c589d5572506edcc999a81e97c09766d096493e9c515&X-Amz-SignedHeaders=host
    AssetExposeObjectResponse:
      type: object
      properties:
        renditionType:
          type: string
          example: original
        componentRef:
          type: string
          example: original
        expires:
          type: integer
          example: 3000
        url:
          type: string
          example: >-
            https://contentstore.s3.amazonaws.com/masters/67f23946-24d9-455d-9029-fe3012903454/Example%20Document%20PowerPoint%20Presentation.ppt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA2HGSK63JE6U37KZD%2F20210222%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210222T221842Z&X-Amz-Expires=300&X-Amz-Signature=abf7fffbd63215614a0f566ff1f31d36d102d5726e56ab916812bf5678f756b0&X-Amz-SignedHeaders=host
    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
          format: uuid
          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
          format: uuid
          description: ID that 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
          format: uuid
          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
          format: uuid
          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
    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:
        username:
          type: string
          description: Use in a **new token** request.  Username of the user in Tenovos.
        password:
          type: string
          description: >-
            Use in **new token** request.  Valid password for the Tenovos user
            account.
        session:
          $ref: '#/components/schemas/AuthRequest_session'
    AuthExpireResponse:
      type: object
      required:
        - endpointUrl
        - clientId
        - userPoolId
        - username
        - session
      properties:
        endpointUrl:
          type: string
          format: URL
          description: The API's base URL.
          example: https://endpoint.url/v1
        clientId:
          type: string
          description: >-
            The **clientId**. Available in the response of an Access Token
            generation request.
        userPoolId:
          type: string
          description: The **Cognito Pool ID** of your Tenovos tenant.
        username:
          type: string
          format: username
          description: Use in a **new token** request.  Username of the user in Tenovos.
        session:
          $ref: '#/components/schemas/AuthExpireResponse_session'
    AuthExpireRequest:
      type: object
      required:
        - endpointUrl
        - clientId
        - userPoolId
        - username
        - session
      properties:
        endpointUrl:
          type: string
          format: URL
          description: The API's base URL.
          example: https://endpoint.url/v1
        clientId:
          type: string
          description: >-
            The **clientId**. Available in the response of an Access Token
            generation request.
        userPoolId:
          type: string
          description: The **Cognito Pool ID** of your Tenovos tenant.
        username:
          type: string
          format: username
          description: Use in a **new token** request.  Username of the user in Tenovos.
        session:
          $ref: '#/components/schemas/AuthExpireRequest_session'
    AuthResponse:
      type: object
      properties:
        endpointUrl:
          type: string
          example: https://endpoint.url/v1
        clientId:
          type: string
          example: abcdefghijklmnop1234567890
        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: abcdefghijklmnop1234567890
        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 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'
    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
    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
    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
            color 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'
    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:
        securityGroups:
          type: array
          description: Array of security groups
          items:
            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
    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: erlich.bachman@piedpiper.com
        firstName:
          type: string
          description: User first name
          example: Erlich
        lastName:
          type: string
          description: User last name
          example: Bachman
        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
        userName:
          type: string
          nullable: true
          description: >-
            The username of the Tenovos user, created by the Administrator or
            user at the time of account creation. Can be null for federated user
            accounts.
          example: erlich.bachman
        phone:
          type: string
          format: phone
          example: 15551234565
        contact:
          type: string
          description: The person designated as the sponsor/point of contact for this user
          example: Richard Hendricks
        country:
          type: string
          description: The country in which the Tenovos user is located.
          example: USA
        company:
          type: string
          description: The company that the Tenovos user works for.
          example: Pied Piper
        friendlyName:
          type: string
          description: >-
            A "friendlier" version of the username.  Used in the UI display and
            provided by the user.
          example: Erlich Bachman
    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:
      required:
        - firstName
        - lastName
        - friendlyName
        - email
        - username
        - password
        - accountType
        - userRoleId
        - groups
      type: object
      properties:
        firstName:
          type: string
          description: First Name of the User.
          minLength: 1
          maxLength: 50
          example: John
        lastName:
          type: string
          description: Last Name of the User.
          minLength: 1
          maxLength: 50
          example: Wick
        friendlyName:
          type: string
          description: Friendly Name of the User.
          minLength: 1
          maxLength: 50
          example: john.wick
        email:
          type: string
          description: Email of the User.
          format: email
          minLength: 6
          maxLength: 75
          example: john.wick@tenovos.com
        username:
          type: string
          format: username
          minLength: 1
          maxLength: 50
          description: Username of the User.
          example: john.wick
        password:
          type: string
          format: password
          minLength: 8
          maxLength: 150
          description: Password of the User.
          example: sdhg&uuUz78u
        accountType:
          type: string
          description: >-
            Account Type of the User. Local accounts use a password; Federated
            accounts use an SSO service.
          example: local
          enum:
            - local
            - federated
        customAttributes:
          $ref: '#/components/schemas/UserCreateRequest_customAttributes'
        userRoleId:
          type: string
          format: uuid
          minLength: 36
          maxLength: 36
          description: ID of the User's role. Only one role is allowed.
          example: 1401df5e-3f13-4c88-a5a8-de64f6227a03
        groups:
          type: array
          minLength: 1
          description: >-
            List of group IDs the User belongs to. At least one group is
            required.
          items:
            type: string
            format: uuid
            minLength: 36
            maxLength: 36
            example: 7d6207c0-f423-11e9-8071-89c0c4052141
        isVerified:
          type: boolean
          description: >-
            Optional flag indicating whether the user account is verified upon
            creation. This is only supported for customers using Auth0
            authentication.
          example: true
    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
          description: The Asset Object ID or the File ID of the asset.
          example: 497f6eca-6276-4993-bfeb-53cbbbba6f08
        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
    AuthExpireRequest_session:
      type: object
      properties:
        authorization:
          type: string
          description: Authorization token generate with Access Tokens.
          example: >-
            eyJraWQiOiJqQWNzNDFBdFBEcXdKTVN6Y0dzV01SNFR0T3hETDhcL3dtOW9qQ0JOWVdqcz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJhdWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjEzNzUyODE3LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV9PU2dRdlRhVEEiLCJjb2duaXRvOnVzZXJuYW1lIjoiamVmZiIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJlbWFpbCI6ImplZmZAdGVub3Zvcy5jb20ifQ.kzu1AddXc-HIopmmsxnnXjDiKXhOLox6P2Hx5HCg0gzupbjW9hjbMWVl0NIZRgrLJIEkYjTl9zRUre_QpiJdeVdluMVPLi6OfMUy8XskeqrOAUFDr3nqrkt99uR-LSrVd_hI8NSGvRPXEcWXV6A35Nq8_xZ8tHHlWEanGhtNcEPzgWa1JU1LdQPDCtixgwQGhroevX2TByGC_yfbimn9l5JeveQGyWKNIfvUPR9zLu2g8bPgCzCUroNWU1QRh1o-p1-8lMVwyROl3mIiCfSTo_QwtLArcFTJi5MyMsWCwWHXV
        accessToken:
          type: string
          description: Session Access Token.
          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
        refreshToken:
          type: string
          description: Refresh Token generated with Access Tokens.
          example: >-
            eyJraWQiOiJITk5BbmN6bW1NajFaMUlGNXE3SXdzM3RvbE1QWnFYRjBWVFVzUGQyTnc4PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MTM3NTI4MTcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX09TZ1F2VGFUQSIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJqdGkiOiI3NWJjZWYzZi03Njg3LTQ5MjgtOTY2Zi05MzM0MmQ0MjFmYjkiLCJjbGllbnRfaWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwidXNlcm5hbWUiOiJqZWZmIn0.COepDhay_VaqCHJwNOT
      description: Session information.
    AuthExpireResponse_session:
      type: object
      properties:
        authorization:
          type: string
          description: Authorization token generate with Access Tokens.
          example: ''
        accessToken:
          type: string
          description: Session Access Token.
          example: ''
        refreshToken:
          type: string
          description: Refresh Token generated with Access Tokens.
          example: >-
            eyJraWQiOiJITk5BbmN6bW1NajFaMUlGNXE3SXdzM3RvbE1QWnFYRjBWVFVzUGQyTnc4PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MTM3NTI4MTcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX09TZ1F2VGFUQSIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJqdGkiOiI3NWJjZWYzZi03Njg3LTQ5MjgtOTY2Zi05MzM0MmQ0MjFmYjkiLCJjbGllbnRfaWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwidXNlcm5hbWUiOiJqZWZmIn0.COepDhay_VaqCHJwNOT
      description: Session information.
    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 metadata 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: ''
    AdaptiveTemplateSearch:
      type: object
      properties:
        from:
          type: integer
          description: >-
            The beginning index of the search. A value greater than 0 will
            offset the search.
          example: 0
          default: 0
          maximum: 10000
          x-nullable: false
        limit:
          type: integer
          default: 50
          maximum: 100
          minimum: 1
          example: 50
          description: The maximum number of templates to return per page.
          x-nullable: true
        searchTerm:
          type: array
          description: List of search terms with AND operation by default
          items:
            type: string
            example: '*'
          x-nullable: true
        sortBy:
          type: array
          description: The metadata attribute and order to sort by.
          items:
            $ref: '#/components/schemas/Search_sortBy'
          x-nullable: true
        operation:
          type: string
          description: >-
            Indicates whether to apply an AND conditions or an OR condition
            between search terms
          example: AND
          x-nullable: false
      required:
        - from
        - limit
        - sortBy
        - operation
    create-asset-response:
      type: object
      properties:
        status:
          type: string
          description: Response Status indicator returned by Tenovos
          example: success
        message:
          type: string
          description: Message indicated whether the asset was successfully created or not.
          example: Asset created successfully
        data:
          type: object
          properties:
            objectId:
              type: string
              format: uuid
              description: Tenovos generated unique identifier for the new created asset.
              example: 2dee909b-6b2b-4da8-96c3-af90fc1662ec
            filename:
              type: string
              description: >-
                Name of the file at the time of creation, or the placeholder
                value of a metadata-only Asset.
              example: hooli-logo.jpg
            fileId:
              type: string
              format: uuid
              description: Tenovos generated unique identifier of the content/file
              example: 0fcb5eb4-5e0e-4ffa-8780-9206a0f833f1
            originalFileId:
              type: string
              format: uuid
              description: >-
                Tenovos generated unique identifier of the original
                content/file.  Provided for versioning purposes.
              example: 0fcb5eb4-5e0e-4ffa-8780-9206a0f833f1
            uploadId:
              type: string
              description: Uniquely identifies the upload.
              example: >-
                gR5XHJZpuDv8UizdpSGuwONje0GbMHnCWXS5zTTVkyVINURV6iraWLhpM7Sy7oy65utAgPcm2FfM4fRp4oVga4ggEzD811aS1tke_F0iIIXX1kV7m6UouytsNE0oL8fzo2Zr2JCqwRyhFTXp98zjdQ
            urls:
              type: array
              items:
                type: object
                properties:
                  partNumber:
                    type: number
                    description: >-
                      If the file size is greater than 100MB, you'll upload your
                      file in multiple parts.  Each part has a corresponding
                      url.
                    example: 1
                  url:
                    type: string
                    format: url
                    description: >-
                      If the file size is greater than 100MB, you'll upload your
                      file in multiple parts.  Each part has a corresponding
                      url.  AWS S3 presigned secure url to upload the your
                      content part to for this Asset.  Files must be streamed to
                      this URL.
    renditions:
      type: object
      properties:
        width:
          type: integer
          example: 1920
        height:
          type: integer
          example: 1080
        imageThumb:
          type: string
          format: url
          description: Rendition of the original content with a max size of 200x200
          example: >-
            https://env.content.tenovos.io/1588091945181/445c273a-235f-4d3b-8397-567f02f312e0/35c8cc9b-0aab-43aa-b220-7829f821836a-200x200.png
        imagePreview:
          type: string
          format: url
          description: Rendition of the original content with a max size of 700x700
          example: >-
            https://env.content.tenovos.io/1588091945181/445c273a-235f-4d3b-8397-567f02f312e0/35c8cc9b-0aab-43aa-b220-7829f821836a-700x700.png
        imagePreviewLarge:
          type: string
          format: url
          description: Rendition of the original content with a max size of 1000x1000
          example: >-
            https://env.content.tenovos.io/1588091945181/445c273a-235f-4d3b-8397-567f02f312e0/35c8cc9b-0aab-43aa-b220-7829f821836a-1000x1000.png
        mezzaninePreview:
          type: string
          format: url
          description: Rendition of the original content with a max size of 3000x3000
          example: >-
            https://env.content.tenovos.io/1588091945181/445c273a-235f-4d3b-8397-567f02f312e0/gilfoyle_anton-3000x3000.png
        imagePreviewExtraLarge:
          type: string
          format: url
          description: >-
            For Tenovos customers with the Creative Editor feature, Tenovos
            generates an XL preview with max size of 5000x5000.
          example: >-
            https://env.content.tenovos.io/1588091945181/445c273a-235f-4d3b-8397-567f02f312e0/35c8cc9b-0aab-43aa-b220-7829f821836a-5000x5000.png
    event-history:
      type: object
      properties:
        total:
          type: integer
          example: 798054
          description: total number of results based on query parameters provided.
        limit:
          type: number
          description: >-
            Reflects the value provided (or the default) for the total number of
            results to limit the response size per request.
          example: 100
        nextCursor:
          type: string
          description: >-
            Provides the cursor for the next page of results. If no more pages
            exist, this field can be null or omitted.
          example: eyJvZmZzZXQiOjIwMH0
        prevCursor:
          type: string
          description: >-
            Provides the cursor for the previous page of results.  If no
            previous page exists, i.e., current response is the first page, this
            field can be null or omitted.
          example: kmFvYmBzZXQiOjIwNJ0
        events:
          type: array
          minItems: 0
          maxItems: 100
          items:
            type: object
            properties:
              eventType:
                type: string
                description: Combination of the Topic and the Event
                example: asset.created
              id:
                type: string
                description: Unique identifier of the webhook event itself
                example: some-event-type-d231cf1d-86b2-436e-95de-b745c39d2ed5
              time:
                type: string
                format: date-time
                description: Date/Time that the webhook event occurred.
                example: '2024-05-09T17:55:28.462Z'
              user:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: The Tenovos User ID for the user who caused the event
                    example: 7d675ef0-f423-11e9-8071-89c0c405214e
                  firstName:
                    type: string
                    description: First Name of the User
                    example: Erlich
                  lastName:
                    type: string
                    description: Last Name of the User
                    example: Bachman
    attribute:
      type: object
      properties:
        name:
          type: string
          description: >-
            Metadata Attribute label/name provided by administrative user.  Can
            be a textbox, textarea, date or dropdown.
          example: Release Date
          minLength: 3
          maxLength: 100
        value:
          type: string
          description: >-
            The corresponding value associated to the named attribute within the
            response object.  Required if the attribute is required for the
            metadata template being used.
          example: 01/01/2024
          minLength: 0
          maxLength: 2000
    table:
      type: object
      properties:
        name:
          type: string
          description: >-
            Table label/name provided by administrative user.  Tables can
            contain one or more rows of multiple attributes and corresponding
            values.
          example: Usage Table
          minLength: 3
          maxLength: 100
        value:
          type: array
          description: Highest level array representing each row of data within the table
          items:
            type: array
            description: >-
              Array of objects expressing the attribute name and associated
              value for a given column within the table row.
            items:
              $ref: '#/components/schemas/attribute'
            minItems: 1
            maxItems: 12
    create-asset:
      type: object
      properties:
        filename:
          type: string
          description: The name of the file if creating a content based Asset.
          example: hooli-logo.jpg
        metadataTemplateId:
          type: string
          format: uuid
          description: The UUID (system id) of the Metadata Template to be used.
          example: ea6eb24d-adef-4080-bd02-f64f567c437f
        securityTemplateIds:
          type: array
          items:
            type: string
            format: uuid
            example: b84ac1dc-30ed-4741-8f8d-47ef2635950b
          minItems: 1
          maxItems: 50
        metadata:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/attribute'
              - $ref: '#/components/schemas/table'
          example:
            - name: Release Date
              value: 01/01/2024
            - name: Product
              value: HooliDocs
            - name: Usage Table
              value:
                - - name: Usage Category
                    value: E-Commerce
                  - name: Usage Length
                    value: 12 months
    create-asset-version:
      type: object
      properties:
        originalFileId:
          type: string
          description: >-
            The Unique Identifier (system id) of the original asset this 
            version will replace as the latest.
          example: 33df0bfb-2465-427b-ae8c-4476e7f6e112
        filename:
          type: string
          description: The name of the file if creating a content based Asset.
          example: hooli-logo.jpg
        metadataTemplateId:
          type: string
          format: uuid
          description: The UUID (system id) of the Metadata Template to be used.
          example: ea6eb24d-adef-4080-bd02-f64f567c437f
        securityTemplateIds:
          type: array
          items:
            type: string
            format: uuid
            example: b84ac1dc-30ed-4741-8f8d-47ef2635950b
          minItems: 1
          maxItems: 50
        metadata:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/attribute'
              - $ref: '#/components/schemas/table'
          example:
            - name: Release Date
              value: 01/01/2024
            - name: Product
              value: HooliDocs
            - name: Usage Table
              value:
                - - name: Usage Category
                    value: E-Commerce
                  - name: Usage Length
                    value: 12 months
    create-multipart-asset:
      type: object
      properties:
        filename:
          type: string
          description: The name of the file if creating a content based Asset.
          example: hooli-logo.jpg
        metadataTemplateId:
          type: string
          format: uuid
          description: The UUID (system id) of the Metadata Template to be used.
          example: ea6eb24d-adef-4080-bd02-f64f567c437f
          required:
            - metadataTemplateId
        securityTemplateIds:
          type: array
          items:
            type: string
            format: uuid
            example: b84ac1dc-30ed-4741-8f8d-47ef2635950b
          minItems: 1
          maxItems: 50
          required:
            - securityTemplateIds
        filesize:
          type: number
          format: int32
          required:
            - filesize
          description: >-
            Numeric value of the filesize for the content associated to this
            Asset.  Used to determine whether or not the file size is greater
            than 5GB, and will return multiple urls to upload each chunk to.
          example: 9019431322
        metadata:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/attribute'
              - $ref: '#/components/schemas/table'
          example:
            - name: Release Date
              value: 01/01/2024
            - name: Product
              value: HooliDocs
            - name: Usage Table
              value:
                - - name: Usage Category
                    value: E-Commerce
                  - name: Usage Length
                    value: 12 months
    get-asset-response:
      type: object
      properties:
        status:
          type: string
          description: Response Status indicator returned by Tenovos
          example: success
        message:
          type: string
          description: Message indicated whether the asset was successfully created or not.
          example: Asset created successfully
        data:
          type: object
          properties:
            createdDate:
              type: string
              format: date
              description: System date/time of when the Asset was created
              example: '2024-06-10T12:13:23.782Z'
            lastUpdatedDate:
              type: string
              format: date
              description: System date/time that the Asset was last updated.
              example: '2024-07-12T18:42:01.102Z'
            fileId:
              type: string
              format: uuid
              description: Tenovos generated unique identifier of the content/file
              example: 0fcb5eb4-5e0e-4ffa-8780-9206a0f833f1
            filename:
              type: string
              description: >-
                Name of the file at the time of creation, or the placeholder
                value of a metadata-only Asset.
              example: hooli-logo.jpg
            fileSizeInBytes:
              type: integer
              description: Provides the original file size in bytes.
              example: 209743
            originalFileId:
              type: string
              format: uuid
              description: >-
                Tenovos generated unique identifier of the original
                content/file.  Provided for versioning purposes.
              example: 0fcb5eb4-5e0e-4ffa-8780-9206a0f833f1
            createdBy:
              type: string
              format: uuid
              description: Unique Identifier of the Tenovos user who created the Asset.
              example: ffc1f0c6-3a6d-474d-8e24-3ccda6be27a2
            lastUpdatedBy:
              type: string
              format: uuid
              example: ffc1f0c6-3a6d-474d-8e24-3ccda6be27a2
            assetId:
              type: string
              format: uuid
              description: Tenovos generated unique identifier for the new created asset.
              example: 2dee909b-6b2b-4da8-96c3-af90fc1662ec
            type:
              type: string
              description: >-
                Indicates the type of object in the system.  For example, Asset
                is a type of object.
              example: Asset
            currentVersion:
              type: boolean
              description: Indicates whether or not this asset is the latest version.
              example: true
            versionNumber:
              type: number
              format: int32
              example: 1718021603782
            AITags:
              type: array
              items:
                type: string
                description: >-
                  Array of strings for each Artificial Intelligence (AI) tag
                  added to the Asset.
            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
            renditionsDocument:
              type: object
              properties:
                width:
                  type: number
                  example: 435
                height:
                  type: number
                  example: 650
                imageThumb:
                  type: string
                  format: url
                  description: >-
                    S3 url to the thumbnail generated rendition of the Asset's
                    content
                  example: >-
                    https://url.content.tenovos.io/1588091945183/c8aaed5c-0cba-4420-87d1-506741ed5ca9/fa0bd5a4-cd0f-410b-88b0-z1m9dac003f6-200x200.png
                imagePreview:
                  type: string
                  format: url
                  description: >-
                    S3 url to the preview generated rendition of the Asset's
                    content
                  example: >-
                    https://url.content.tenovos.io/1588091945183/c8aaed5c-0cba-4420-87d1-506741ed5ca9/fa0bd5a4-cd0f-410b-88b0-z1m9dac003f6-700x700.png
                mezzaninePreview:
                  type: string
                  format: url
                  description: >-
                    S3 url to the mezzanine generated rendition of the Asset's
                    content
                  example: >-
                    https://url.content.tenovos.io/1588091945183/c8aaed5c-0cba-4420-87d1-506741ed5ca9/fa0bd5a4-cd0f-410b-88b0-z1m9dac003f6-3000x3000.png
                imagePreviewLarge:
                  type: string
                  format: url
                  description: >-
                    S3 url to the large preview generated rendition of the
                    Asset's content
                  example: >-
                    https://url.content.tenovos.io/1588091945183/c8aaed5c-0cba-4420-87d1-506741ed5ca9/fa0bd5a4-cd0f-410b-88b0-z1m9dac003f6-1000x1000.png
            fileState:
              type: string
              description: Action content file state
              enum:
                - available
                - recycle bin
            securityTemplateIds:
              type: array
              items:
                type: string
                description: >-
                  Array of Unique Id's for each Security Template applied to the
                  Asset
                example: 46ea161d-9b06-417e-88eb-f5a4244aaed5
            avamTags:
              type: array
              items:
                type: string
            lockType:
              type: array
              items:
                type: string
            metadata:
              type: array
              items:
                anyOf:
                  - $ref: '#/components/schemas/attribute'
                  - $ref: '#/components/schemas/table'
              example:
                - name: Release Date
                  value: 01/01/2024
                - name: Product
                  value: HooliDocs
                - name: Usage Table
                  value:
                    - - name: Usage Category
                        value: E-Commerce
                      - name: Usage Length
                        value: 12 months
    update-asset:
      type: object
      properties:
        securityTemplateIds:
          type: array
          items:
            type: string
            format: uuid
            example: b84ac1dc-30ed-4741-8f8d-47ef2635950b
          minItems: 1
          maxItems: 50
        metadata:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/attribute'
              - $ref: '#/components/schemas/table'
          example:
            - name: Release Date
              value: 01/01/2024
            - name: Product
              value: HooliDocs
            - name: Usage Table
              value:
                - - name: Usage Category
                    value: E-Commerce
                  - name: Usage Length
                    value: 12 months
                - - name: Usage Category
                    value: Physical Retail
                  - name: Usage Length
                    value: 18 months
                - - name: Usage Category
                    value: Social Media
                  - name: Usage Length
                    value: 6 months
    update-response:
      type: object
      properties:
        status:
          type: string
          description: Response Status indicator returned by Tenovos
          example: success
        message:
          type: string
          description: Message indicated whether the asset was successfully created or not.
          example: Asset Update was successful
    update-response-error:
      type: object
      properties:
        status:
          type: string
          description: Response Status indicator returned by Tenovos
          example: error
        message:
          type: string
          description: Message indicated whether the asset was successfully created or not.
          example: Asset not found
    pull-zone:
      type: object
      properties:
        id:
          type: integer
          description: The unique ID of the Pull Zone.
          example: 192011
        name:
          type: string
          description: The name of the Pull Zone
          example: Hooli Pull Zone US
        enabled:
          type: boolean
          description: Determines if the Pull Zone is currently enabled, active and running
          example: true
        allowedReferrers:
          type: array
          description: >-
            The list of referrer hostnames that are allowed to access the pull
            zone. Requests containing the header "<Referer: hostname>" that is
            not on the list will be rejected. If empty, all referrers are
            allowed.
          items:
            type: string
            description: >-
              Url for the domain that is allowed to refer requests to the Pull
              Zone
            example:
              - https://company.com
              - https://tenovos.io
        blockedReferrers:
          type: array
          description: >-
            The list of referrer hostnames that are blocked from accessing the
            pull zone.  The CDN will block all requests for content coming from
            any of the domains listed.
          items:
            type: string
            description: >-
              Url for the domain that is blocked from making requests to the
              Pull Zone
            example:
              - https://domain.com
              - https://domain.io
        blockedIPs:
          type: array
          description: >-
            The list of IPs that are blocked from accessing the Pull Zone.
            Requests coming from the following IPs will be rejected. If empty,
            all IPs will be allowed.
          items:
            type: string
            description: >-
              Url for the domain that is blocked from making requests to the
              Pull Zone
            example:
              - 197.14.69.1
              - 248.167.10.12
        enableGeoZoneUS:
          type: boolean
          description: >-
            Determines if delivery from the North American region is enabled for
            this Pull Zone.
          required:
            - enableGeoZoneUS
          example: true
        enableGeoZoneEU:
          type: boolean
          description: >-
            Determines if delivery from the European region is enabled for this
            Pull zone.
          example: false
        enableGeoZoneAsia:
          type: boolean
          description: >-
            Determines if delivery from the Asia region is enabled for this Pull
            zone.
          example: true
        enableGeoZoneSA:
          type: boolean
          description: >-
            Determines if delivery from the South American region is enabled for
            this Pull zone.
          example: true
        enableGeoZoneAF:
          type: boolean
          description: >-
            Determines if delivery from the Africa region is enabled for this
            Pull zone.
          example: true
        zoneSecurityEnabled:
          type: boolean
          description: True if the URL secure token authentication security is enabled
          example: false
        zoneSecurityKey:
          type: string
          description: The security key used for secure URL token authentication.
          example: d9f8c7a6e5b4a3f2d1c0b9a8e7f6d5c4
        monthlyBandwidthLimit:
          type: integer
          description: >-
            The monthly limit of bandwidth in bytes that the pullzone is allowed
            to use.
          required:
            - monthlyBandwidthLimit
          example: 10737418240
        monthlyBandwidthUsed:
          type: integer
          description: >-
            The amount of bandwidth in bytes that the Pull Zone has used this
            month.
          required:
            - monthlyBandwidthLimit
          example: 7737418240
        enableAccessControlOriginHeader:
          type: boolean
          description: Determines if the CORS headers should be enabled
          example: true
        accessControlOriginHeaderExtensions:
          type: array
          description: >-
            Array of file extensions (strings) that specifies which file types
            should include CORS headers (like Access-Control-Allow-Origin) in
            the CDN response.
          items:
            type: string
            description: >-
              A file extension, with the leading dot (e.g., .json, not json). 
              When a file request matches one of these extensions, Tenovos CDN
              will add CORS headers to the response.  This is important for
              files like fonts, json, and images or videos used in webpages. 
              Only list the types of files that you intend to acccess
              cross-origin.
            example: .png
          example:
            - .jpg
            - .jpeg
            - .png
            - .webp
            - .avif
            - .mp4
            - .woff2
        blockedCountries:
          type: array
          description: >-
            The list of blocked countries listed using their two-letter Alpha2
            ISO codes
          items:
            type: string
            example: PK
          example:
            - PK
            - CN
            - BY
            - IR
            - KP
            - RU
            - SY
            - VE
            - YE
            - AF
            - MM
            - SD
        cnameDomain:
          type: string
          description: The CNAME domain of the pull zone for setting up custom hostnames
          example: https://cdn.cusotmerdomain.net
        enableOptimization:
          type: boolean
          required:
            - enableOptimization
          description: >-
            If true, the CDN will optimize content such as images, css, and
            javascript in order to serve lighter, faster assets tailored to the
            requesting device/browser.  When true, Tenovos will automatically
            convert supported image formats to webP on the fly and cache it
            seperatly to servce to clients that support webP format.
          example: true
    cdn-pullzone-stats:
      type: object
      properties:
        totalBandwidthUsed:
          type: integer
          description: The total bandwidth used in the given time range
          example: 7562312
        totalOriginTraffic:
          type: integer
          description: The total bandwidth used fetching content from Tenovos
          example: 1236652
        totalRequestsServed:
          type: integer
          description: >-
            The total number of requests served by the CDN in the given time
            range
          example: 1564892
        cacheHitRate:
          type: number
          format: double
          description: >-
            The percentage of requests served directly from the CDN cache
            instead of the origin
    metadata-attributes:
      type: array
      minItems: 0
      maxItems: 2500
      items:
        type: object
        properties:
          id:
            type: string
            format: uuid
            description: Unique ID of the attribute (same as metadataDefinitionId)
            example: 8a481dd2-24c1-4c54-a84f-0aded1e985e7
          name:
            type: string
            description: The name given to the Metadata Attribute
            example: Program Name
          searchField:
            type: string
            description: >-
              The value assigned by Tenovos and used for search indexes.  This
              value never changes, even if attribute name changes.  Use this
              value to perform attribute specific searches, or to uniquely
              identify attributes in Requests, etc.
            example: program_name
          type:
            type: string
            description: Identifies the type of Metadata Attribute used
            example: text
            enum:
              - text
              - textarea
              - date
              - dropdown
    create-request:
      type: object
      properties:
        title:
          type: string
          example: New Marketing Upload Request
          description: Title of the upload request.
        metadataTemplateId:
          type: string
          format: uuid
          example: 18bb2566-0a9c-45c7-825b-4a14d3c71e42
          description: ID of the metadata template to apply to Request.
        securityTemplateIds:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 1ef152a4-281a-4f02-8fb0-1204ae050705
          description: Array of security template IDs to apply to Request.
        assets:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 13e6991b-5c11-40b8-95ff-9e9013de44b5
        metadata:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/attribute'
              - $ref: '#/components/schemas/table'
          example:
            - name: Release Date
              value: 01/01/2024
            - name: Product
              value: HooliDocs
            - name: Usage Table
              value:
                - - name: Usage Category
                    value: E-Commerce
                  - name: Usage Length
                    value: 12 months
      required:
        - title
        - metadataTemplateId
        - securityTemplateIds
        - assets
        - metadata
    create-request-2:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Id returned after creating the Request.  This is uniquely identifies
            the request.
          example: e3beae4b-338c-4fda-8bf7-be3a8d82a230
    get-request:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the Request
          example: e3beae4b-338c-4fda-8bf7-be3a8d82a230
        assets:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: cd0caff5-2756-4d7c-a43d-a926a81fa9b8
                description: Unique identifier for the asset.
              assignedTo:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: >-
                      Tenovos User Id for the user who the request is assigned
                      to.
                    example: 986caca7-b6d4-478b-9850-acf54b25c6d5
                  firstName:
                    type: string
                    description: First Name of the user who the request is assigned to.
                    example: Galvin
                  lastName:
                    type: string
                    description: Last Name of the user who the request is assigned to.
                    example: Belson
                  email:
                    type: string
                    description: >-
                      Email address used for the user account who the request is
                      assigned to.
                    example: galvin.belson@huli.com
        assetCount:
          type: integer
          example: 2
          description: Provides a count of the number of assets belonging to the Request.
        title:
          type: string
          description: The Title of the request.
          example: Galvin's Upload Request
        type:
          type: string
          description: Identifies the type of the Request
          example: Upload
        status:
          type: string
          example: In Progress
          description: The status of the Request in it's current state.
        submittedBy:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: Tenovos User Id for the user who the request was submitted by.
              example: 556caca7-b6d4-478b-9850-bcf54b25c6b2
            firstName:
              type: string
              description: First Name of the user who the request was submitted by.
              example: Erlich
            lastName:
              type: string
              description: Last Name of the user who the request was submitted by.
              example: Bachman
            email:
              type: string
              description: >-
                Email address used for the user account who the request was
                submitted by.
              example: erlich.backman@piedpipper.com
        metadata:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/attribute'
              - $ref: '#/components/schemas/table'
          example:
            - id: a4e75e25-2baf-4204-b6c8-b8fa67b9d4ab
              name: Release Date
              searchField: release_date
              value: 01/01/2024
            - id: d9cb7f63-6b58-4531-8704-41e95c416c95
              searchField: product_name
              name: Product
              value: HooliDocs
            - id: b8d955a3-10ab-456e-91c4-b0a878786d48
              searchField: usage_table
              name: Usage Table
              value:
                - - id: b4047831-3921-4684-a434-1bb68214c111
                    searchField: usage_category
                    name: Usage Category
                    value: E-Commerce
                  - id: bcf51509-8460-4ecf-ad9d-67f09a5682f6
                    searchField: usage_length
                    name: Usage Length
                    value: 12 months
    update-request:
      type: object
      properties:
        assignedTo:
          type: string
          format: email
          example: admin@tenovos.com
          description: Email of the user to whom the assets are assigned.
        status:
          type: string
          example: In Progress
          description: Use this property to update the status of the Request.
        assets:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: cd0caff5-2756-4d7c-a43d-a926a81fa9b8
                description: Unique identifier for the asset.
              assignedTo:
                type: string
                format: email
                example: ctc-admin@tenovos.com
                description: Email of the user assigned to the asset.
              status:
                type: string
                example: Rejected
                description: Current status of the asset (e.g., Approved, Rejected).
              note:
                type: string
                example: Test Note
                description: Additional notes about the asset.
              rejectionReason:
                type: string
                example: Invalid Asset Metadata
                description: Reason for rejection, if applicable.
    list-requests:
      type: object
      properties:
        from:
          type: integer
          example: 0
          description: >-
            Starting index for each request, used in conjunction with the limit
            property to paginate results.
        limit:
          type: integer
          example: 100
          maximum: 100
          minimum: 1
          description: Number of results to return per request/page.
        type:
          type: string
          example: Upload
          description: >-
            Optional property to filter the response to only specific Request
            Types.
        status:
          type: string
          example: In Progress
          description: >-
            Optional property to filter the response to only Requests with a
            specific status.
        includes:
          type: array
          description: >-
            Optional array to provide **searchField** values for the metadata
            attributes on the Requests that you'd like returned in addition to
            the standard Request data.
          example:
            - asset_identifier
            - primary_sku_entry
            - pi_table_prim_product_info
    list-requests-2:
      type: object
      properties:
        total:
          type: integer
          example: 54
          description: total number of results based on search criteria.
        results:
          type: array
          minItems: 0
          maxItems: 100
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: Unique Identifier for the Request in Tenovos.
                example: 09a52f4f-1d6d-4f62-a263-877acac65ff9
              title:
                type: string
                description: The Title of the request.
                example: Galvin's Upload Request
              type:
                type: string
                description: Identifies the type of the Request
                example: Upload
              assetCount:
                type: integer
                example: 2
                description: >-
                  Provides a count of the number of assets belonging to the
                  Request.
              assignees:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: >-
                        Tenovos User Id for the user who the request is assigned
                        to.
                      example: 986caca7-b6d4-478b-9850-acf54b25c6d5
                    firstName:
                      type: string
                      description: First Name of the user who the request is assigned to.
                      example: Galvin
                    lastName:
                      type: string
                      description: Last Name of the user who the request is assigned to.
                      example: Belson
                    email:
                      type: string
                      description: >-
                        Email address used for the user account who the request
                        is assigned to.
                      example: galvin.belson@huli.com
              submittedBy:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: >-
                      Tenovos User Id for the user who the request was submitted
                      by.
                    example: 556caca7-b6d4-478b-9850-bcf54b25c6b2
                  firstName:
                    type: string
                    description: First Name of the user who the request was submitted by.
                    example: Erlich
                  lastName:
                    type: string
                    description: Last Name of the user who the request was submitted by.
                    example: Bachman
                  email:
                    type: string
                    description: >-
                      Email address used for the user account who the request
                      was submitted by.
                    example: erlich.backman@piedpipper.com
              status:
                type: string
                example: In Progress
                description: The status of the Request in it's current state.
              metadata:
                type: array
                items:
                  anyOf:
                    - $ref: '#/components/schemas/attribute'
                    - $ref: '#/components/schemas/table'
                example:
                  - name: Release Date
                    value: 01/01/2024
                  - name: Product
                    value: HooliDocs
                  - name: Usage Table
                    value:
                      - - name: Usage Category
                          value: E-Commerce
                        - name: Usage Length
                          value: 12 months
    role:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The Tenovos unique identifier assigned to the Role
          example: e171b93a-9f42-4a78-8845-b60f3e783c3c
        name:
          type: string
          description: The user provided label/name of the Role.
          example: Creative Producer
      required:
        - id
        - name
    roles:
      type: array
      items:
        $ref: '#/components/schemas/role'
      minItems: 1
      maxItems: 100
      uniqueItems: true
    security-privileges:
      type: object
      description: >-
        Object containing the id and name for each available security
        privilege.  Privileges are applied at the role level for each user.
      properties:
        privileges:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: The unique identifier for the role privilege.
                example: 9a265a28-14ed-472b-943b-e0f2b3f15c3d
              name:
                type: string
                description: The name of the role privilege
                example: Download
              status:
                type: string
                description: Status of the role privilege for the customer account.
                example: enabled
                enum:
                  - enabled
                  - disabled
    search:
      type: object
      properties:
        searchTerm:
          type: array
          description: Comma separated array of search term values.
          items:
            type: string
          example:
            - Gilfoyle
            - Dinesh
            - Erlich
        from:
          type: integer
          description: Search offset from which index search will start
          example: 0
        limit:
          type: integer
          description: Limits the number of results that are returned.
          maximum: 100
          example: 50
        includes:
          type: array
          description: >-
            System metadata fields, such as Metadata Template ID, 

            should be entered using camel case (ie, metadataTemplateId). Custom
            metadata fields should be entered by their attribute search term,
            prefixed by metadataDocument. For example, to retrieve an attribute
            called Published Channel, a user 

            would include "metadataDocument.published_channel" in the includes
            array. Fields included in this array will be returned in an object
            called 'metadataDocument' if those attributes exist on the asset.
          items:
            type: string
          example:
            - metadataTemplateId
            - metadataDocument.asset_description
            - metadataDocument.file_size
            - metadataDocument.compression_type
        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:
            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
        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
        relevancy:
          type: boolean
          description: >-
            If the 'relevancy' field is passed as true, this will negate the
            operation selection used 

            in legacy search and will leverage the relevancy search matching.
            When relevancy is set to true, 

            the 'metadataDefinitionSearchField' field within the sortBy object
            should be set to 'relevance', and the 'order' field should be set to
            'desc'.
          example: true
    search-result:
      type: object
      description: List of asset objects
      properties:
        createdEpoch:
          type: integer
          description: >-
            Date the asset was created in epoch format. Creation time in
            milliseconds.
          example: 1727724108027
        metadataDocument:
          type: object
          description: >-
            Metadata on the asset based on the *includes* array items that was
            requested with the search request.  Dynamic metadata properties
            based on the request.
          additionalProperties:
            type: string
        fileId:
          type: string
          description: >-
            Asset File ID that uniquely identifies the content associated to
            this asset.
          example: 445c273a-235f-4d3b-8397-567f02f312e0
        filename:
          type: string
          example: gilfoyle_anton.png
        originalFileId:
          type: string
          description: The ID of the original version of the file
          example: 2d69d72f-91be-4aeb-9d62-4fbd3759e451
        createdBy:
          type: string
          example: d6197e75-74e2-4a81-9c39-429148ab27a1
        objectId:
          type: string
          description: Asset Object ID.  Also referred to as Asset ID.
          example: c5e24f53-cb77-4882-927c-0e8dddf5f7c9
        customerId:
          type: string
          description: Customer ID of Created By User's Account
          example: 1588091945182
        metadataTemplateId:
          type: string
          description: ID of the metadata template the asset is assigned to
          example: f5a66fac-7e81-44c1-b6eb-20997c559982
        renditionsDocument:
          $ref: '#/components/schemas/renditions'
        securityTemplateIds:
          type: array
          description: List of ID(s) of Security Template(s) that are applied to the asset
          items:
            type: string
            format: uuid
            example: 2d331840-50a0-4dc1-bc65-56151bf58a39
    facets:
      type: string
      description: string containing JSON of filter facets
      example: >-
        {"Company":{"buckets":[{"key":"Pied
        Piper","doc_count":47},{"key":"Hooli","doc_count":4}]}
    search-2:
      type: object
      properties:
        total:
          type: integer
          example: 1
          description: >-
            Provides the total number of search results based on the search
            criteria provided.
        results:
          $ref: '#/components/schemas/search-result'
        facets:
          $ref: '#/components/schemas/facets'
    security-permissions:
      type: object
      description: >-
        Object containing the id and name for each available security
        permission.  Permissions are applied at the group level for each
        security template.
      properties:
        permissions:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: The unique identifier for the security permission.
                example: 9a265a28-14ed-472b-943b-e0f2b3f15c3d
              name:
                type: string
                description: The name of the security permission
                example: Download
    adaptive-templates:
      type: object
      properties:
        childProductIds:
          type: array
          items:
            type: string
            format: uuid
        renditionsDocument:
          type: object
          properties:
            fpo:
              type: string
              format: url
              example: >-
                https://tenant.tenovos.io/1623232044386/74216a5c-386d-47d6-854c-dc28535116cf/Template_Store_Asset_1-fpo.png
            aiRendition:
              type: string
              format: url
              example: >-
                https://tenant.tenovos.io/1623232044386/74216a5c-386d-47d6-854c-dc28535116cf/aiRendition.png
            imagePreviewLarge:
              type: string
              format: url
              description: >-
                Rendition of the original asset in PNG format with a size of
                1000x1000
              example: >-
                https://tenant.tenovos.io/1623232044386/74216a5c-386d-47d6-854c-dc28535116cf/09789d41-0b7b-4c13-b060-41b5e479f844-1000x1000.png
            imageThumb:
              type: string
              format: url
              description: >-
                Rendition of the original asset in PNG format with a size of
                200x200
              example: >-
                https://tenant.tenovos.io/1623232044386/74216a5c-386d-47d6-854c-dc28535116cf/09789d41-0b7b-4c13-b060-41b5e479f844-200x200.png
            imagePreview:
              type: string
              format: url
              description: >-
                Rendition of the original asset in PNG format with a size of
                700x700
              example: >-
                https://tenant.tenovos.io/1623232044386/74216a5c-386d-47d6-854c-dc28535116cf/09789d41-0b7b-4c13-b060-41b5e479f844-700x700.png
            mezzaninePreview:
              type: string
              format: url
              description: >-
                Rendition of the original asset in PNG format with a size of
                3000x3000
              example: >-
                https://tenant.tenovos.io/1623232044386/74216a5c-386d-47d6-854c-dc28535116cf/Template_Store_Asset_1-3000x3000.png
            height:
              type: integer
              format: int32
              example: 1080
            width:
              type: integer
              format: int32
              example: 1920
        avamTags:
          type: array
          items:
            type: string
        lockType:
          type: array
          items:
            type: string
        objectType:
          type: string
        digitalAssetIds:
          type: array
          items:
            type: string
        fileState:
          type: string
        technicalMetadataDocument:
          type: object
          properties:
            image_metadata:
              type: object
            tenovos_metadata:
              type: object
              properties:
                fileName:
                  type: string
                fileSize:
                  type: string
                fileSizeInBytes:
                  type: integer
                  format: int32
                MD5Checksum:
                  type: string
        customerId:
          type: string
          description: Unique Identifier for the Tenovos Cusotmer
        lastUpdatedEpoch:
          type: integer
          format: int64
        metadataTemplateId:
          type: string
        objectId:
          type: string
        metadataDocument:
          type: object
          properties:
            system_created_epoch:
              type: string
            template_title:
              type: string
            description:
              type: string
            system_content_type:
              type: string
            system_is_federated:
              type: string
            system_security_templates:
              type: array
              items:
                type: string
            title:
              type: string
            system_metadata_templates:
              type: string
            web2print_template_name:
              type: string
            system_mime_type:
              type: string
            web2print_job_name:
              type: string
            system_checksum:
              type: string
            system_last_updated_by:
              type: string
            system_skip_transcode:
              type: string
            system_created_date:
              type: integer
              format: int64
            system_created_by:
              type: string
            web2print_job_xml:
              type: string
            web2printlink:
              type: string
            system_match:
              type: string
            system_last_updated_date:
              type: integer
              format: int64
        metadataState:
          type: string
        lastUpdatedBy:
          type: string
          format: uuid
          description: Unique Identifier of the Tenovos user who last updated the template.
        originalFileId:
          type: string
          format: uuid
        securityTemplateIds:
          type: array
          items:
            type: string
            format: uuid
        currentVersion:
          type: string
          description: >-
            Indicates whether or not this template/asset is the latest version
            available
          example: 'Y'
          enum:
            - 'Y'
            - 'N'
        versionNumber:
          type: integer
          format: int64
        filename:
          type: string
        createdEpoch:
          type: integer
          format: int64
        technicalMetadataText:
          type: string
        createdBy:
          type: string
          format: uuid
          description: Unique Identifier of the Tenovos user who created the template/asset
        AITags:
          type: array
          items:
            type: string
        fileId:
          type: string
          format: uuid
        securityTemplateDenormalized:
          type: array
          description: >-
            Contains an array of objects, one for each Tenovos user group
            assigned permissions on the Security Template applied to the asset,
            identified by user goup id, and includes an array of persmission
            identifiers for each user group.
          items:
            type: object
            properties:
              groupId:
                type: string
                format: uuid
              permissions:
                type: array
                items:
                  type: string
                  format: uuid
    launch-template:
      type: object
      properties:
        templateId:
          type: string
          format: uuid
          required:
            - templateId
          x-nullable: false
    launch:
      type: object
      properties:
        url:
          type: string
          format: url
          example: >-
            https://templates.tenovos.io/launch?jobName=somejob&deleteJob=true&externalLaunch=true
    webhook:
      type: object
      properties:
        description:
          type: string
          x-nullable: false
          required:
            - description
          description: You must provide a description for the subscription.
          minLength: 5
          maxLength: 100
          example: Notify System X for All Assets Created
        eventTypes:
          type: array
          x-nullable: false
          required:
            - event
          description: >-
            One of the available [event
            types](https://api.tenovos.com/developer-portal/webhooks/event-types/)
            listed
          example:
            - asset.created
            - asset.updated
            - asset.downloaded
            - asset.deleted
        url:
          type: string
          x-nullable: false
          required:
            - url
          format: url
          description: >-
            A webhook target is usually an open and public url that listens for
            webhook notification messages.  Tenovos signs every webhook message
            to ensure the security and authenticity of all webhooks being sent. 
            In addition, Tenovos supports HTTP Basic Authentication and using an
            authentication token in headers.  Choose one of these authentication
            methods as part of your target payload.
          example: https://yourendpoint.com
        rateLimit:
          type: integer
          x-nullable: false
          example: 200
    webhooks:
      type: object
      properties:
        id:
          type: string
          format: uuid
          x-nullable: false
          description: Identifier of the event
    endpoint:
      type: object
      properties:
        id:
          type: string
          format: uuid
          x-nullable: false
          description: Identifier of the event
        description:
          type: string
          x-nullable: false
          required:
            - description
          description: You must provide a description for the subscription.
          minLength: 5
          maxLength: 100
          example: Notify System X for All Assets Created
        disabled:
          type: boolean
          example: false
          description: >-
            Indicates whether or not the endpoint subscription is disabled or
            not
        url:
          type: string
          x-nullable: false
          required:
            - url
          format: url
          description: >-
            A webhook target is usually an open and public url that listens for
            webhook notification messages.  Tenovos signs every webhook message
            to ensure the security and authenticity of all webhooks being sent. 
            In addition, Tenovos supports HTTP Basic Authentication and using an
            authentication token in headers.  Choose one of these authentication
            methods as part of your target payload.
          example: https://yourendpoint.com
        eventTypes:
          type: array
          x-nullable: false
          required:
            - event
          description: >-
            One of the available [event
            types](https://api.tenovos.com/developer-portal/webhooks/event-types/)
            listed
          example:
            - asset.created
            - asset.updated
            - asset.downloaded
            - asset.deleted
        rateLimit:
          type: integer
          x-nullable: false
          example: 200
    eventType:
      type: object
      properties:
        name:
          type: string
          description: The name of the Event Type.  Determined by Tenovos.
          example: asset.created
        description:
          type: string
          x-nullable: false
          required:
            - description
          description: You must provide a description for the event type.
          minLength: 5
          maxLength: 100
          example: Event when a new asset in Tenovos is created.
        createdDate:
          type: string
          format: date
          description: The Date and time the Event Type was created.
    webhook-oauthCreate:
      type: object
      properties:
        clientId:
          type: string
          required:
            - clientId
          description: Customer generated clientId from OAuth server/provider
          example: FbhKdCwuiItoSSRJpKXc6cjhpJFVy7JbB
        clientSecret:
          type: string
          required:
            - clientSecret
          description: Customer generated client secret from OAuth server/provider
          example: ZtjtpXP7p5SdUwNYu1JT9xfQobecM0i5UGOu_F5BU6DdAOPFLZDz7r0xObogttPG
        tokenUrl:
          type: string
          format: url
          required:
            - tokenUrl
          description: >-
            Customer provided https url for obtaining access tokens from the
            customers OAuth server/provider
          example: https://yourdomain.provider/oauth/token
        extraParams:
          type: object
          description: >-
            Optional collection of key value pair parameters which may be
            required depending on OAuth provider.
          example:
            audience: https://api.tenovos.io/v1
        scope:
          type: array
          description: >-
            Optional array of strings for included scopes if configured by the
            customer on their OAuth server/provider for the generated client
          example:
            - Assets, Users
  examples:
    impersonateUserExample:
      value:
        username: john.wick
    newTokenExample:
      value:
        username: john.wick@tenovos.com
        password: m#P52s@ap$V
    refreshTokenExample:
      value:
        session:
          accessToken: yJraWQiOiJITk5BbmN6bW1NajFaMUlGN
          refreshToken: eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2
    expireTokenExample:
      value:
        endpointUrl: https://endpoint.url/v1
        clientId: abcdefghijklmnop1234567890
        userPoolId: us-east-1_123456789
        username: john.wick
        session:
          authorization: >-
            eyJraWQiOiJqQWNzNDFBdFBEcXdKTVN6Y0dzV01SNFR0T3hETDhcL3dtOW9qQ0JOWVdqcz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJhdWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjEzNzUyODE3LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV9PU2dRdlRhVEEiLCJjb2duaXRvOnVzZXJuYW1lIjoiamVmZiIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJlbWFpbCI6ImplZmZAdGVub3Zvcy5jb20ifQ.kzu1AddXc-HIopmmsxnnXjDiKXhOLox6P2Hx5HCg0gzupbjW9hjbMWVl0NIZRgrLJIEkYjTl9zRUre_QpiJdeVdluMVPLi6OfMUy8XskeqrOAUFDr3nqrkt99uR-LSrVd_hI8NSGvRPXEcWXV6A35Nq8_xZ8tHHlWEanGhtNcEPzgWa1JU1LdQPDCtixgwQGhroevX2TByGC_yfbimn9l5JeveQGyWKNIfvUPR9zLu2g8bPgCzCUroNWU1QRh1o-p1-8lMVwyROl3mIiCfSTo_QwtLArcFTJi5MyMsWCwWHXV
          accessToken: >-
            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
          refreshToken: >-
            eyJraWQiOiJITk5BbmN6bW1NajFaMUlGNXE3SXdzM3RvbE1QWnFYRjBWVFVzUGQyTnc4PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI0ZmUwZTVhZi0yMjU1LTRiZDUtYjAwYS0yM2FkMTIxZTA2ZjIiLCJldmVudF9pZCI6IjQ1YWI3YzJjLTJjYWUtNDE2MS1hYmE4LWMyMmIxZmQ5NGViYyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MTM3NTI4MTcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX09TZ1F2VGFUQSIsImV4cCI6MTYxMzc1NjQyMCwiaWF0IjoxNjEzNzUyODIwLCJqdGkiOiI3NWJjZWYzZi03Njg3LTQ5MjgtOTY2Zi05MzM0MmQ0MjFmYjkiLCJjbGllbnRfaWQiOiI3c201amlsZG5iZnJyOGNncTNrZWRpZW83IiwidXNlcm5hbWUiOiJqZWZmIn0.COepDhay_VaqCHJwNOT
    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-3f40ff3423ad
            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
    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.amazonaws.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.amazonaws.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.amazonaws.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
    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]
  parameters:
    id:
      name: id
      in: path
      description: >-
        The id parameter can be used to filter response results based on a
        specific resource in Tenovos, such as the unique id of an Asset,
        Collection, Story Board, etc.  When used to filter event history, only
        event types and events specifically associated to the resource

        provided will be returned.  This mean event types such as
        `user.created`, `security.template.created`, etc., will be filtered out
        any time this parameter is provided.


        A 36-character UUID representing the resource.
      schema:
        type: string
        x-nullable: true
        example: b84ac1dc-30ed-4741-8f8d-47ef2635950b
    userId:
      name: userId
      in: query
      description: >-
        The userId parameter can be used to filter response results based on a
        specific User in Tenovos.  When used to filter event history, only
        events specifically associated to the User ID

        provided will be returned.


        A 36-character UUID representing the User.
      schema:
        type: string
        x-nullable: true
        example: cd0caff5-2756-4d7c-a43d-a926a81fa9b8
    eventType:
      name: eventType
      in: query
      description: >-
        The event type parameter can be used to filter response results based on
        the type of event.  For a full list of available types, please refer to
        the

        [Event Types
        page](https://api.tenovos.com/developer-portal/webhooks/event-types/)
        for an up-to-date list of available values.
      schema:
        type: string
        x-nullable: true
        example: asset.created
    startDate:
      name: startDate
      in: query
      description: >-
        The start of the date range for event history. If not specified, the
        previous 12 months of events will be returned.


        Format: Full datetime (YYYY-MM-DDTHH:mm:ssZ) for compatibility. 

        **Must be URL-encoded if using the full datetime.**
      schema:
        type: string
        x-nullable: true
        example: '2024-10-12T15:27:59Z'
    endDate:
      name: endDate
      in: query
      description: >-
        The end of the date range for event history. If not specified, the
        previous 12 months of events will be returned.


        Format: Full datetime (YYYY-MM-DDTHH:mm:ssZ) for compatibility. 

        **Must be URL-encoded if using the full datetime.**
      schema:
        type: string
        x-nullable: true
        example: '2024-11-09T08:14:56Z'
    limit:
      name: limit
      in: query
      description: >-
        The limit parameter can be used to limit the response results for each
        request.  When used for event history, the minimum recommended pageSize
        is `100`.  Based on the limiting scope of your 

        query parameters, pageSize can be increased to 1000.
      schema:
        type: number
        x-nullable: true
        example: 500
    cursor:
      name: cursor
      in: query
      description: >-
        Provides the cursor for the next result set.  Can be either the response
        value for `nextCursor` or `prevCursor` depending 

        on the desired pagination direction.
      schema:
        type: string
        x-nullable: true
        example: eyJvZmZzZXQiOjIwMH0
    pull-zone-id:
      name: pullZoneId
      in: path
      description: >-
        The pullZoneId parameter can be used to specific the Tenovos CDN Pull
        Zone that you wish to make requests for.


        Int64
      schema:
        type: integer
        x-nullable: true
        example: 70015645231
    content-type:
      name: content-type
      in: header
      schema:
        type: string
        example: application/json
    authorization:
      name: Authorization
      in: header
      schema:
        type: string
        example: Bearer <token>
    before:
      name: before
      in: query
      description: >-
        The cursor value returned by Tenovos to retrieve the previous page of
        results.  If the before parameter is used, the after parameter cannot be
        used.
      schema:
        type: string
        x-nullable: true
        maxLength: 36
        minLength: 12
        example: 196100ac-4ee
    after:
      name: after
      in: query
      description: >-
        The cursor value returned by Tenovos to retrieve the next page of
        results.  If the after parameter is used, the before parameter cannot be
        used.
      schema:
        type: string
        x-nullable: true
        maxLength: 36
        minLength: 12
        example: 16969100ac-4ef
    subscriptionId:
      name: id
      in: path
      required: true
      description: >-
        The Identifier of the subscription, active or not, that you wish to
        delete.
      schema:
        type: string
        format: uuid
        x-nullable: false
        maxLength: 36
        minLength: 36
        example: 4d4d835b-c188-4120-87f9-1208c001e170
    endpointId:
      name: endpointId
      in: path
      required: false
      description: >-
        The Id of the endpoint configured for subscription to specified events. 
        Required only for DELETE operations.
      schema:
        type: string
        x-nullable: false
        example: ep_2gEymWwsWu5H5EpwbwoOwBnRQBi
  responses:
    '400':
      description: One or more required parameters are missing or invalid.
    '401':
      description: Authentication failed (unauthorized).
    '403':
      description: >-
        Forbidden. You do not have permissions to perform this action, or your
        connection information is not correct.
    '503':
      description: The server is too busy to handle the request.
