OpenMetadata Files API

A `File` is a document or resource stored in a Drive Service.

Operations 22

PUT /v1/drives/files/{id}/followers Add a follower #
GET /v1/drives/files/{id}/sampleData Get sample data #
PUT /v1/drives/files/{id}/sampleData Add sample data #
DELETE /v1/drives/files/{id}/sampleData Delete sample data #
PUT /v1/drives/files/bulk Bulk create or update files #
GET /v1/drives/files List files #
PUT /v1/drives/files Create or update a file #
POST /v1/drives/files Create a file #
GET /v1/drives/files/name/{fqn} Get a file by fully qualified name #
DELETE /v1/drives/files/name/{fqn} Delete a file by fully qualified name #
PATCH /v1/drives/files/name/{fqn} Update a file by name. #
GET /v1/drives/files/{id} Get a file by Id #
DELETE /v1/drives/files/{id} Delete a file by Id #
PATCH /v1/drives/files/{id} Update a file #
DELETE /v1/drives/files/async/{id} Asynchronously delete a file by Id #
DELETE /v1/drives/files/{id}/followers/{userId} Remove a follower #
GET /v1/drives/files/{id}/versions/{version} Get a specific version of the file #
GET /v1/drives/files/history List all entity versions within a time range #
GET /v1/drives/files/{id}/versions List file versions #
PUT /v1/drives/files/restore Restore a soft deleted file by id #
PUT /v1/drives/files/{id}/restore Restore a soft deleted file #
PUT /v1/drives/files/{id}/vote Update Vote for a file #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openmetadata-files-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openmetadata-files-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenMetadata APIs Agent Executions Files API
  description: Common types and API definition for OpenMetadata
  contact:
    name: OpenMetadata
    url: https://open-metadata.org
    email: openmetadata-dev@googlegroups.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.13'
servers:
- url: /api
  description: Current Host
- url: http://localhost:8585/api
  description: Endpoint URL
security:
- BearerAuth: []
tags:
- name: Files
  description: A `File` is a document or resource stored in a Drive Service.
paths:
  /v1/drives/files/{id}/followers:
    put:
      tags:
      - Files
      summary: Add a follower
      description: Add a user identified by `userId` as follower of this file
      operationId: addFollowerToFile
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: Id of the user to be added as follower
        content:
          application/json:
            schema:
              type: string
              format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeEvent'
        '404':
          description: File for instance {id} is not found
  /v1/drives/files/{id}/sampleData:
    get:
      tags:
      - Files
      summary: Get sample data
      description: Get sample data from the file.
      operationId: getSampleData_1
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The file with sample data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
    put:
      tags:
      - Files
      summary: Add sample data
      description: Add sample data to the file.
      operationId: addSampleData_1
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableData'
      responses:
        '200':
          description: The file with sample data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
    delete:
      tags:
      - Files
      summary: Delete sample data
      description: Delete sample data from the file.
      operationId: deleteSampleData_1
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: The file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
  /v1/drives/files/bulk:
    put:
      tags:
      - Files
      summary: Bulk create or update files
      description: Create or update multiple files in a single operation.
      operationId: bulkCreateOrUpdateFiles
      parameters:
      - name: async
        in: query
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CreateFile'
      responses:
        '200':
          description: Bulk operation results
        '202':
          description: Bulk operation accepted for async processing
        '400':
          description: Bad request
  /v1/drives/files:
    get:
      tags:
      - Files
      summary: List files
      description: Get a list of files, optionally filtered by `service` or `directory` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.
      operationId: listFiles
      parameters:
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,directory,usageSummary,tags,fileExtension,extension,domains,sourceHash,lifeCycle,votes,followers,columns,sampleData
      - name: service
        in: query
        description: Filter files by service name
        schema:
          type: string
          example: googleDrive
      - name: directory
        in: query
        description: Filter files by directory fully qualified name
        schema:
          type: string
      - name: fileType
        in: query
        description: Filter files by file type
        schema:
          type: string
      - name: root
        in: query
        description: List files at the root level (without parent) when `true`
        schema:
          type: boolean
          default: false
      - name: limit
        in: query
        description: Limit the number files returned. (1 to 1000000, default = 10)
        schema:
          maximum: 1000000
          minimum: 0
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of files before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of files after this cursor
        schema:
          type: string
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      responses:
        '200':
          description: List of files
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileList'
    put:
      tags:
      - Files
      summary: Create or update a file
      description: Create a new file, if it does not exist or update an existing file.
      operationId: createOrUpdateFile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFile'
      responses:
        '200':
          description: The file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '400':
          description: Bad request
    post:
      tags:
      - Files
      summary: Create a file
      description: Create a new file under an existing `directory`.
      operationId: createFile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFile'
      responses:
        '200':
          description: The file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '400':
          description: Bad request
  /v1/drives/files/name/{fqn}:
    get:
      tags:
      - Files
      summary: Get a file by fully qualified name
      description: Get a file by fully qualified name.
      operationId: getFileByFQN
      parameters:
      - name: fqn
        in: path
        description: Fully qualified name of the file
        required: true
        schema:
          type: string
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,directory,usageSummary,tags,fileExtension,extension,domains,sourceHash,lifeCycle,votes,followers,columns,sampleData
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: includeRelations
        in: query
        description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
        schema:
          type: string
          example: owners:non-deleted,followers:all
      responses:
        '200':
          description: The file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '404':
          description: File for instance {fqn} is not found
    delete:
      tags:
      - Files
      summary: Delete a file by fully qualified name
      description: Delete a file by `fullyQualifiedName`.
      operationId: deleteFileByFQN
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: fqn
        in: path
        description: Fully qualified name of the file
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: File for instance {fqn} is not found
    patch:
      tags:
      - Files
      summary: Update a file by name.
      description: Update an existing file using JsonPatch.
      externalDocs:
        description: JsonPatch RFC
        url: https://tools.ietf.org/html/rfc6902
      operationId: patchFile
      parameters:
      - name: fqn
        in: path
        description: Name of the file
        required: true
        schema:
          type: string
      requestBody:
        description: JsonPatch with array of operations
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatch'
            example: '[{op:remove, path:/a},{op:add, path: /b, value: val}]'
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v1/drives/files/{id}:
    get:
      tags:
      - Files
      summary: Get a file by Id
      description: Get a file by `Id`.
      operationId: getFileByID
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,directory,usageSummary,tags,fileExtension,extension,domains,sourceHash,lifeCycle,votes,followers,columns,sampleData
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: includeRelations
        in: query
        description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
        schema:
          type: string
          example: owners:non-deleted,followers:all
      responses:
        '200':
          description: The file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '404':
          description: File for instance {id} is not found
    delete:
      tags:
      - Files
      summary: Delete a file by Id
      description: Delete a file by `Id`.
      operationId: deleteFile
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: File for instance {id} is not found
    patch:
      tags:
      - Files
      summary: Update a file
      description: Update an existing file using JsonPatch.
      externalDocs:
        description: JsonPatch RFC
        url: https://tools.ietf.org/html/rfc6902
      operationId: patchFile_1
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: JsonPatch with array of operations
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatch'
            example: '[{op:remove, path:/a},{op:add, path: /b, value: val}]'
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v1/drives/files/async/{id}:
    delete:
      tags:
      - Files
      summary: Asynchronously delete a file by Id
      description: Asynchronously delete a file by `Id`.
      operationId: deleteFileAsync
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: recursive
        in: query
        description: Recursively delete this entity and its children. (Default `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: File for instance {id} is not found
  /v1/drives/files/{id}/followers/{userId}:
    delete:
      tags:
      - Files
      summary: Remove a follower
      description: Remove the user identified `userId` as a follower of the file.
      operationId: removeFollowerFromFile
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      - name: userId
        in: path
        description: Id of the user being removed as follower
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeEvent'
  /v1/drives/files/{id}/versions/{version}:
    get:
      tags:
      - Files
      summary: Get a specific version of the file
      description: Get a specific version of the file identified by `Id`
      operationId: getSpecificFileVersion
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      - name: version
        in: path
        description: File version number in the form `major`.`minor`
        required: true
        schema:
          type: string
          example: 0.1 or 1.1
      responses:
        '200':
          description: File
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '404':
          description: File for instance {id} and version {version} is not found
  /v1/drives/files/history:
    get:
      tags:
      - Files
      summary: List all entity versions within a time range
      description: 'Get a paginated list of all entity versions within a given time range specified by `startTs` and `endTs` in milliseconds since epoch. '
      operationId: listAllEntityVersionsByTimestamp_25
      parameters:
      - name: startTs
        in: query
        description: Start timestamp in milliseconds since epoch
        required: true
        schema:
          type: integer
          format: int64
      - name: endTs
        in: query
        description: End timestamp in milliseconds since epoch
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: Limit the number of entity returned (1 to 1000000, default = 10)
        schema:
          maximum: 500
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of entity versions before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of entity versions after this cursor
        schema:
          type: string
      responses:
        '200':
          description: List of all versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultList'
  /v1/drives/files/{id}/versions:
    get:
      tags:
      - Files
      summary: List file versions
      description: Get a list of all the versions of a file identified by `Id`
      operationId: listAllFileVersion
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of file versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityHistory'
  /v1/drives/files/restore:
    put:
      tags:
      - Files
      summary: Restore a soft deleted file by id
      description: Restore a soft deleted file by id.
      operationId: restoreFileById
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestoreEntity'
      responses:
        '200':
          description: Successfully restored the file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
  /v1/drives/files/{id}/restore:
    put:
      tags:
      - Files
      summary: Restore a soft deleted file
      description: Restore a soft deleted file.
      operationId: restoreFile
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: 'Successfully restored the file '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
  /v1/drives/files/{id}/vote:
    put:
      tags:
      - Files
      summary: Update Vote for a file
      description: Update vote for a file
      operationId: updateVoteForFile
      parameters:
      - name: id
        in: path
        description: Id of the file
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoteRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeEvent'
        '404':
          description: File for instance {id} is not found
components:
  schemas:
    EntityHistory:
      required:
      - entityType
      - versions
      type: object
      properties:
        entityType:
          type: string
        versions:
          type: array
          items:
            type: object
    AccessDetails:
      required:
      - timestamp
      type: object
      properties:
        timestamp:
          type: integer
          format: int64
        accessedBy:
          $ref: '#/components/schemas/EntityReference'
        accessedByAProcess:
          type: string
    FileList:
      required:
      - data
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/File'
        paging:
          $ref: '#/components/schemas/Paging'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/EntityError'
        warningsCount:
          type: integer
          format: int32
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/EntityError'
    JsonPatch:
      type: object
    UsageDetails:
      required:
      - dailyStats
      - date
      type: object
      properties:
        dailyStats:
          $ref: '#/components/schemas/UsageStats'
        weeklyStats:
          $ref: '#/components/schemas/UsageStats'
        monthlyStats:
          $ref: '#/components/schemas/UsageStats'
        date:
          type: string
    AssetCertification:
      required:
      - appliedDate
      - expiryDate
      - tagLabel
      type: object
      properties:
        tagLabel:
          $ref: '#/components/schemas/TagLabel'
        appliedDate:
          type: integer
          format: int64
        expiryDate:
          type: integer
          format: int64
    TableData:
      type: object
      properties:
        columns:
          type: array
          items:
            type: string
        rows:
          type: array
          items:
            type: array
            items:
              type: object
    Column:
      required:
      - dataType
      - name
      type: object
      properties:
        name:
          maxLength: 2147483647
          minLength: 1
          pattern: ^((?!::).)*$
          type: string
        displayName:
          type: string
        dataType:
          type: string
          enum:
          - NUMBER
          - TINYINT
          - SMALLINT
          - INT
          - BIGINT
          - BYTEINT
          - BYTES
          - FLOAT
          - DOUBLE
          - DECIMAL
          - NUMERIC
          - TIMESTAMP
          - TIMESTAMPZ
          - TIME
          - DATE
          - DATETIME
          - INTERVAL
          - STRING
          - MEDIUMTEXT
          - TEXT
          - CHAR
          - LONG
          - VARCHAR
          - BOOLEAN
          - BINARY
          - VARBINARY
          - ARRAY
          - BLOB
          - LONGBLOB
          - MEDIUMBLOB
          - MAP
          - STRUCT
          - UNION
          - SET
          - GEOGRAPHY
          - ENUM
          - JSON
          - UUID
          - VARIANT
          - GEOMETRY
          - BYTEA
          - AGGREGATEFUNCTION
          - ERROR
          - FIXED
          - RECORD
          - 'NULL'
          - SUPER
          - HLLSKETCH
          - PG_LSN
          - PG_SNAPSHOT
          - TSQUERY
          - TXID_SNAPSHOT
          - XML
          - MACADDR
          - TSVECTOR
          - UNKNOWN
          - CIDR
          - INET
          - CLOB
          - ROWID
          - LOWCARDINALITY
          - YEAR
          - POINT
          - POLYGON
          - TUPLE
          - SPATIAL
          - TABLE
          - NTEXT
          - IMAGE
          - IPV4
          - IPV6
          - DATETIMERANGE
          - HLL
          - LARGEINT
          - QUANTILE_STATE
          - AGG_STATE
          - BITMAP
          - UINT
          - BIT
          - MONEY
          - MEASURE HIDDEN
          - MEASURE VISIBLE
          - MEASURE
          - KPI
          - HEIRARCHY
          - HIERARCHYID
        arrayDataType:
          type: string
          enum:
          - NUMBER
          - TINYINT
          - SMALLINT
          - INT
          - BIGINT
          - BYTEINT
          - BYTES
          - FLOAT
          - DOUBLE
          - DECIMAL
          - NUMERIC
          - TIMESTAMP
          - TIMESTAMPZ
          - TIME
          - DATE
          - DATETIME
          - INTERVAL
          - STRING
          - MEDIUMTEXT
          - TEXT
          - CHAR
          - LONG
          - VARCHAR
          - BOOLEAN
          - BINARY
          - VARBINARY
          - ARRAY
          - BLOB
          - LONGBLOB
          - MEDIUMBLOB
          - MAP
          - STRUCT
          - UNION
          - SET
          - GEOGRAPHY
          - ENUM
          - JSON
          - UUID
          - VARIANT
          - GEOMETRY
          - BYTEA
          - AGGREGATEFUNCTION
          - ERROR
          - FIXED
          - RECORD
          - 'NULL'
          - SUPER
          - HLLSKETCH
          - PG_LSN
          - PG_SNAPSHOT
          - TSQUERY
          - TXID_SNAPSHOT
          - XML
          - MACADDR
          - TSVECTOR
          - UNKNOWN
          - CIDR
          - INET
          - CLOB
          - ROWID
          - LOWCARDINALITY
          - YEAR
          - POINT
          - POLYGON
          - TUPLE
          - SPATIAL
          - TABLE
          - NTEXT
          - IMAGE
          - IPV4
          - IPV6
          - DATETIMERANGE
          - HLL
          - LARGEINT
          - QUANTILE_STATE
          - AGG_STATE
          - BITMAP
          - UINT
          - BIT
          - MONEY
          - MEASURE HIDDEN
          - MEASURE VISIBLE
          - MEASURE
          - KPI
          - HEIRARCHY
          - HIERARCHYID
        dataLength:
          type: integer
          format: int32
        precision:
          type: integer
          format: int32
        scale:
          type: integer
          format: int32
        dataTypeDisplay:
          type: string
        description:
          type: string
        fullyQualifiedName:
          maxLength: 3072
          minLength: 1
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TagLabel'
        constraint:
          type: string
          enum:
          - 'NULL'
          - NOT_NULL
          - UNIQUE
          - PRIMARY_KEY
        ordinalPosition:
          type: integer
          format: int32
        jsonSchema:
          type: string
        children:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        profile:
          $ref: '#/components/schemas/ColumnProfile'
        customMetrics:
          type: array
          items:
            $ref: '#/components/schemas/CustomMetric'
        extension:
          type: object
    CustomMetric:
      required:
      - expression
      - name
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          maxLength: 256
          minLength: 1
          pattern: ^((?!::).)*$
          type: string
        description:
          type: string
        columnName:
          type: string
        expression:
          type: string
        owners:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        updatedAt:
          type: integer
          format: int64
        updatedBy:
          type: string
    PatternMatch:
      required:
      - name
      - score
      type: object
      properties:
        name:
          type: string
        regex:
          type: string
        score:
          type: number
          format: double
    TagLabelRecognizerMetadata:
      required:
      - recognizerId
      - recognizerName
      - score
      type: object
      properties:
        recognizerId:
          type: string
          format: uuid
        recognizerName:
          type: string
        score:
          type: number
          format: double
        target:
          type: string
          enum:
          - content
          - column_name
        patterns:
          type: array
          items:
            $ref: '#/components/schemas/PatternMatch'
    UsageStats:
      required:
      - count
      type: object
      properties:
        count:
          minimum: 0
          type: integer
          format: int32
        percentileRank:
          type: number
          format: double
    CustomMetricProfile:
      type: object
      properties:
        name:
          type: string
        value:
          type: number
          format: double
    CreateFile:
      required:
      - name
      - service
      type: object
      properties:
        name:
          maxLength: 256
          minLength: 1
          pattern: ^((?!::).)*$
          type: string
        displayName:
          type: string
        description:
          type: string
        service:
          maxLength: 3072
          minLength: 1
          type: string
        directory:
          maxLength: 3072
          minLength: 1
          type: string
        fileType:
          type: string
          enum:
          - Document
          - Spreadsheet
          - Presentation
          - Image
          - Video
          - Audio
          - PDF
          - Archive
          - Code
          - Data
          - CSV
          - Text
          - Other
        mimeType:
          type: string
        fileExtension:
          type: string
        path:
          type: string
        size:
          type: integer
          format: int32
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        checksum:
          type: string
        webViewLink:
          type: string
          format: uri
        downloadLink:
          type: string
          format: uri
        isShared:
          type: boolean
        fileVersion:
          type: string
        sourceUrl:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TagLabel'
        owners:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        dataProducts:
          type: array
          items:
            type: string
        domains:
          type: array
          items:
            type: string
        lifeCycle:
          $ref: '#/components/schemas/LifeCycle'
        sourceHash:
          maxLength: 32
          minLength: 1
          type: string
        extension:
          type: object
        reviewers:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
    Style:
      type: object
      properties:
        color:
          type: string
        iconURL:
          type: string
        coverImage:
          $ref: '#/components/schemas/CoverImage'
    File:
      required:
      - id
      - name
      - service
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          maxLength: 256
          minLength: 1
          pattern: ^((?!::).)*$
          type: string
        fullyQualifiedName:
          maxLength: 3072
          minLength: 1
          type: string
        displayName:
          type: string
        description:
          type: string
        service:
          $ref: '#/components/schemas/EntityReference'
        serviceType:
          type: string
          enum:
          - GoogleDrive
          - SharePoint
          - Sftp
          - CustomDrive
        directory:
          $ref: '#/components/schemas/EntityReference'
        fileType:
          type: string
          enum:
          - Document
          - Spreadsheet
          - Presentation
          - Image
          - Video
          - Audio
          - PDF
          - Archive
          - Code
          - Data
          - CSV
          - Text
          - Other
        mimeType:
          type: string
        fileExtension:
          type: string
        path:
          type: string
        size:
          type: integer
          format: int32
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        sampleData:
          $ref: '#/components/schemas/TableData'
        checksum:
          type: string
        webViewLink:
          type: string
          format: uri
        downloadLink:
          type: string
          format: uri
        isShared:
          type: boolean
        fileVersion:
          type: string
        createdTime:
          type: integer
          format: int64
        modifiedTime:
          type: integer
          format: int64
        lastModifiedBy:
          $ref: '#/components/schemas/EntityReference'
        sourceUrl:
          type: string
        href:
    

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-files-api-openapi.yml