openapi: 3.0.1 info: title: OpenMetadata APIs Agent Executions Domains 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: Domains description: A `Data Product` or `Data as a Product` is a logical unit that contains all components to process and store domain data for analytical or data-intensive use cases made available to data consumers. paths: /v1/dataProducts/{id}/followers: put: tags: - Domains summary: Add a follower description: Add a user identified by `userId` as followed of this DataProduct operationId: addFollowerToDataProduct parameters: - name: id in: path description: Id of the DataProduct required: true schema: type: string format: uuid requestBody: description: Id of the user to be added as follower content: application/json: schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChangeEvent' '404': description: DataProduct for instance {id} is not found /v1/dataProducts/{name}/assets/add: put: tags: - Domains summary: Bulk Add Assets description: Bulk Add Assets operationId: bulkAddAssets parameters: - name: name in: path description: Name of the Data product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: model for instance {id} is not found /v1/dataProducts/{name}/inputPorts/add: put: tags: - Domains summary: Bulk Add Input Ports description: Bulk Add Input Ports to a Data Product operationId: bulkAddInputPorts parameters: - name: name in: path description: Name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {name} is not found /v1/dataProducts/name/{fqn}/inputPorts/add: put: tags: - Domains summary: Bulk Add Input Ports by Name description: Bulk Add Input Ports to a Data Product by fully qualified name operationId: bulkAddInputPortsByName parameters: - name: fqn in: path description: Fully qualified name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts/{name}/outputPorts/add: put: tags: - Domains summary: Bulk Add Output Ports description: Bulk Add Output Ports to a Data Product operationId: bulkAddOutputPorts parameters: - name: name in: path description: Name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {name} is not found /v1/dataProducts/name/{fqn}/outputPorts/add: put: tags: - Domains summary: Bulk Add Output Ports by Name description: Bulk Add Output Ports to a Data Product by fully qualified name operationId: bulkAddOutputPortsByName parameters: - name: fqn in: path description: Fully qualified name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts/{name}/assets/remove: put: tags: - Domains summary: Bulk Remove Assets description: Bulk Remove Assets operationId: bulkRemoveAssets parameters: - name: name in: path description: Name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: model for instance {id} is not found /v1/dataProducts/{name}/inputPorts/remove: put: tags: - Domains summary: Bulk Remove Input Ports description: Bulk Remove Input Ports from a Data Product operationId: bulkRemoveInputPorts parameters: - name: name in: path description: Name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {name} is not found /v1/dataProducts/name/{fqn}/inputPorts/remove: put: tags: - Domains summary: Bulk Remove Input Ports by Name description: Bulk Remove Input Ports from a Data Product by fully qualified name operationId: bulkRemoveInputPortsByName parameters: - name: fqn in: path description: Fully qualified name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts/{name}/outputPorts/remove: put: tags: - Domains summary: Bulk Remove Output Ports description: Bulk Remove Output Ports from a Data Product operationId: bulkRemoveOutputPorts parameters: - name: name in: path description: Name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {name} is not found /v1/dataProducts/name/{fqn}/outputPorts/remove: put: tags: - Domains summary: Bulk Remove Output Ports by Name description: Bulk Remove Output Ports from a Data Product by fully qualified name operationId: bulkRemoveOutputPortsByName parameters: - name: fqn in: path description: Fully qualified name of the Data Product required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '400': description: All operations failed content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts: get: tags: - Domains summary: List dataProducts description: Get a list of DataProducts. operationId: listDataProducts parameters: - name: fields in: query description: Fields requested in the returned resource schema: type: string example: domains,owners,reviewers,experts,extension,tags,followers,votes,certification - name: domain in: query description: Filter data products by domain name schema: type: string example: marketing - name: limit in: query schema: maximum: 1000000 minimum: 0 type: integer format: int32 default: 10 - name: before in: query description: Returns list of DataProduct before this cursor schema: type: string - name: after in: query description: Returns list of DataProduct after this cursor schema: type: string responses: '200': description: List of DataProducts content: application/json: schema: $ref: '#/components/schemas/DataProductList' put: tags: - Domains summary: Create or update a dataProduct description: Create a dataProduct. if it does not exist. If a dataProduct already exists, update the dataProduct. operationId: createOrUpdateDataProduct requestBody: description: CreateDataProduct request content: application/json: schema: $ref: '#/components/schemas/CreateDataProduct' responses: '200': description: The dataProduct content: application/json: schema: $ref: '#/components/schemas/DataProduct' '400': description: Bad request post: tags: - Domains summary: Create a dataProduct description: Create a new dataProduct. operationId: createDataProduct requestBody: description: CreateDataProduct request content: application/json: schema: $ref: '#/components/schemas/CreateDataProduct' responses: '200': description: 'The dataProduct ' content: application/json: schema: $ref: '#/components/schemas/DataProduct' '400': description: Bad request /v1/dataProducts/name/{name}: get: tags: - Domains summary: Get a dataProduct by name description: Get a dataProduct by `name`. operationId: getDataProductByFQN parameters: - name: name in: path description: Name of the dataProduct required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: domains,owners,reviewers,experts,extension,tags,followers,votes,certification responses: '200': description: dataProduct content: application/json: schema: $ref: '#/components/schemas/DataProduct' '404': description: DataProduct for instance {name} is not found delete: tags: - Domains summary: Delete a dataProduct by name description: Delete a dataProduct by `name`. operationId: deleteDataProductByFQN parameters: - name: name in: path description: Name of the dataProduct required: true schema: type: string responses: '200': description: OK '404': description: DataProduct for instance {name} is not found /v1/dataProducts/{id}: get: tags: - Domains summary: Get a dataProduct by Id description: Get a dataProduct by `Id`. operationId: getDataProductByID parameters: - name: fields in: query description: Fields requested in the returned resource schema: type: string example: domains,owners,reviewers,experts,extension,tags,followers,votes,certification - name: id in: path description: Id of the dataProduct required: true schema: type: string format: uuid responses: '200': description: The dataProduct content: application/json: schema: $ref: '#/components/schemas/DataProduct' '404': description: DataProduct for instance {id} is not found delete: tags: - Domains summary: Delete a dataProduct by Id description: Delete a dataProduct by `Id`. operationId: deleteDataProduct parameters: - name: id in: path description: Id of the dataProduct required: true schema: type: string format: uuid responses: '200': description: OK '404': description: DataProduct for instance {id} is not found patch: tags: - Domains summary: Update a dataProduct description: Update an existing dataProduct using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchDataProduct_1 parameters: - name: id in: path description: Id of the dataProduct 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/dataProducts/async/{id}: delete: tags: - Domains summary: Asynchronously delete a dataProduct by Id description: Asynchronously delete a dataProduct by `Id`. operationId: deleteDataProductAsync parameters: - name: id in: path description: Id of the dataProduct required: true schema: type: string format: uuid responses: '200': description: OK '404': description: DataProduct for instance {id} is not found /v1/dataProducts/{id}/followers/{userId}: delete: tags: - Domains summary: Remove a follower description: Remove the user identified `userId` as a follower of the dataProduct. operationId: deleteFollowerFromDataProduct parameters: - name: id in: path description: Id of the Entity 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 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChangeEvent' /v1/dataProducts/assets/counts: get: tags: - Domains summary: Get all data products with their asset counts description: Get a map of data product fully qualified names to their asset counts using search aggregation. operationId: getAllDataProductsWithAssetsCount responses: '200': description: Map of data product FQN to asset count content: application/json: {} /v1/dataProducts/{id}/assets: get: tags: - Domains summary: Get assets for a data product description: Get paginated list of assets belonging to a data product. operationId: getDataProductAssets parameters: - name: id in: path description: Id of the data product required: true schema: type: string format: uuid - name: limit in: query description: Limit the number of results returned. Maximum of 1000 records will be returned in a single request. schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 10 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of assets content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: DataProduct for instance {id} is not found /v1/dataProducts/name/{fqn}/assets: get: tags: - Domains summary: Get assets for a data product by name description: Get paginated list of assets belonging to a data product by data product name. operationId: getDataProductAssetsByName parameters: - name: fqn in: path description: Name of the data product required: true schema: type: string - name: limit in: query description: Limit the number of results returned. Maximum of 1000 records will be returned in a single request. schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 10 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of assets content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: DataProduct for instance {name} is not found /v1/dataProducts/{id}/dataContract: get: tags: - Domains summary: Get data contract for a data product description: Get the data contract associated with a data product. operationId: getDataProductContract parameters: - name: id in: path description: Id of the data product required: true schema: type: string format: uuid - name: fields in: query description: Fields requested in the returned resource schema: type: string responses: '200': description: The data contract content: application/json: schema: $ref: '#/components/schemas/DataContract' '404': description: Data contract not found for the data product /v1/dataProducts/{id}/inputPorts: get: tags: - Domains summary: Get input ports for a data product description: Get paginated list of input ports (data assets consumed) for a data product. operationId: getInputPorts parameters: - name: id in: path description: Id of the data product required: true schema: type: string format: uuid - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,followers,domains,votes,extension - name: limit in: query description: Limit the number of results returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of input ports content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: DataProduct for instance {id} is not found /v1/dataProducts/name/{fqn}/inputPorts: get: tags: - Domains summary: Get input ports for a data product by name description: Get paginated list of input ports (data assets consumed) for a data product by name. operationId: getInputPortsByName parameters: - name: fqn in: path description: Name of the data product required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,followers,domains,votes,extension - name: limit in: query description: Limit the number of results returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of input ports content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts/{id}/outputPorts: get: tags: - Domains summary: Get output ports for a data product description: Get paginated list of output ports (data assets produced/exposed) for a data product. operationId: getOutputPorts parameters: - name: id in: path description: Id of the data product required: true schema: type: string format: uuid - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,followers,domains,votes,extension - name: limit in: query description: Limit the number of results returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of output ports content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: DataProduct for instance {id} is not found /v1/dataProducts/name/{fqn}/outputPorts: get: tags: - Domains summary: Get output ports for a data product by name description: Get paginated list of output ports (data assets produced/exposed) for a data product by name. operationId: getOutputPortsByName parameters: - name: fqn in: path description: Name of the data product required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,followers,domains,votes,extension - name: limit in: query description: Limit the number of results returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of output ports content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts/{id}/portsView: get: tags: - Domains summary: Get combined input/output ports view for a data product description: Get a combined view of input and output ports with independent pagination, optimized for lineage-like visualization. operationId: getPortsView parameters: - name: id in: path description: Id of the data product required: true schema: type: string format: uuid - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,followers,domains,votes,extension - name: inputLimit in: query description: Limit the number of input ports returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: inputOffset in: query description: Offset for input ports pagination schema: minimum: 0 type: integer format: int64 default: 0 - name: outputLimit in: query description: Limit the number of output ports returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: outputOffset in: query description: Offset for output ports pagination schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: Combined ports view content: application/json: schema: $ref: '#/components/schemas/DataProductPortsView' '404': description: DataProduct for instance {id} is not found /v1/dataProducts/name/{fqn}/portsView: get: tags: - Domains summary: Get combined input/output ports view for a data product by name description: Get a combined view of input and output ports with independent pagination by name, optimized for lineage-like visualization. operationId: getPortsViewByName parameters: - name: fqn in: path description: Name of the data product required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,followers,domains,votes,extension - name: inputLimit in: query description: Limit the number of input ports returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: inputOffset in: query description: Offset for input ports pagination schema: minimum: 0 type: integer format: int64 default: 0 - name: outputLimit in: query description: Limit the number of output ports returned schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 50 - name: outputOffset in: query description: Offset for output ports pagination schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: Combined ports view content: application/json: schema: $ref: '#/components/schemas/DataProductPortsView' '404': description: DataProduct for instance {fqn} is not found /v1/dataProducts/{id}/versions/{version}: get: tags: - Domains summary: Get a version of the dataProduct description: Get a version of the dataProduct by given `Id` operationId: listSpecificDataProductVersion parameters: - name: id in: path description: Id of the dataProduct required: true schema: type: string format: uuid - name: version in: path description: DataProduct version number in the form `major`.`minor` required: true schema: type: string example: 0.1 or 1.1 responses: '200': description: dataProduct content: application/json: schema: $ref: '#/components/schemas/DataProduct' '404': description: DataProduct for instance {id} and version {version} is not found /v1/dataProducts/history: get: tags: - Domains 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_19 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/dataProducts/{id}/versions: get: tags: - Domains summary: List dataProduct versions description: Get a list of all the versions of a dataProduct identified by `Id` operationId: listAllDataProductVersion parameters: - name: id in: path description: Id of the dataProduct required: true schema: type: string format: uuid responses: '200': description: List of dataProduct versions content: application/json: schema: $ref: '#/components/schemas/EntityHistory' /v1/dataProducts/name/{fqn}: patch: tags: - Domains summary: Update a dataProduct by name. description: Update an existing dataProduct using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchDataProduct parameters: - name: fqn in: path description: Name of the dataProduct 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/dataProducts/{id}/vote: put: tags: - Domains summary: Update Vote for an Entity description: Update vote for an Entity operationId: updateVoteForEntity_7 parameters: - name: id in: path description: Id of the Entity 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: model for instance {id} is not found /v1/domains/{id}/followers: put: tags: - Domains summary: Add a follower description: Add a user identified by `userId` as followed of this Domain operationId: addFollowerToDomain parameters: - name: id in: path description: Id of the Domain required: true schema: type: string format: uuid requestBody: description: Id of the user to be added as follower content: application/json: schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChangeEvent' '404': description: Domain for instance {id} is not found /v1/domains/{name}/assets/add: put: tags: - Domains summary: Bulk Add Assets description: Bulk Add Assets operationId: bulkAddAssets_1 parameters: - name: name in: path description: Name of the domain required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: model for instance {id} is not found /v1/domains/{name}/assets/remove: put: tags: - Domains summary: Bulk Remove Assets description: Bulk Remove Assets operationId: bulkRemoveAssets_1 parameters: - name: name in: path description: Name of the domain required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkAssets' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChangeEvent' '404': description: model for instance {id} is not found /v1/domains: get: tags: - Domains summary: List domains description: Get a list of Domains. operationId: listDomains parameters: - name: fields in: query description: Fields requested in the returned resource schema: type: string example: tags,children,childrenCount,owners,experts,extension,followers,votes,certification - name: limit in: query schema: maximum: 1000000 minimum: 0 type: integer format: int32 default: 10 - name: before in: query description: Returns list of Domain before this cursor schema: type: string - name: after in: query description: Returns list of Domain after this cursor schema: type: string responses: '200': description: List of Domains content: application/json: schema: $ref: '#/components/schemas/DomainList' put: tags: - Domains summary: Create or update a domain description: Create a domain. if it does not exist. If a domain already exists, update the domain. operationId: createOrUpdateDomain requestBody: description: CreateDomain request content: application/json: schema: $ref: '#/components/schemas/CreateDomain' responses: '200': description: The domain content: application/json: schema: $ref: '#/components/schemas/Domain' '400': description: Bad request post: tags: - Domains summary: Create a domain description: Create a new domain. operationId: createDomain requestBody: description: CreateDomain request content: application/json: schema: $ref: '#/components/schemas/CreateDomain' responses: '200': description: 'The domain ' content: application/json: schema: $ref: '#/components/schemas/Domain' '400': description: Bad request /v1/domains/name/{name}: get: tags: - Domains summary: Get a domain by name description: Get a domain by `name`. operationId: getDomainByFQN parameters: - name: name in: path description: Name of the domain required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: tags,children,childrenCount,owners,experts,extension,followers,votes,certification responses: '200': description: domain content: application/json: schema: $ref: '#/components/schemas/Domain' '404': description: Domain for instance {name} is not found delete: tags: - Domains summary: Delete a domain by name description: Delete a domain by `name`. operationId: deleteDomainByFQN parameters: - name: name in: path description: Name of the domain required: true schema: type: string responses: '200': description: OK '404': description: Domain for instance {name} is not found /v1/domains/{id}: get: tags: - Domains summary: Get a domain by Id description: Get a domain by `Id`. operationId: getDomainByID parameters: - name: fields in: query description: Fields requested in the returned resource schema: type: string example: tags,children,childrenCount,owners,experts,extension,followers,votes,certification - name: id in: path description: Id of the domain required: true schema: type: string format: uuid responses: '200': description: The domain content: application/json: schema: $ref: '#/components/schemas/Domain' '404': description: Domain for instance {id} is not found delete: tags: - Domains summary: Delete a domain by Id description: Delete a domain by `Id`. operationId: deleteDomain parameters: - name: id in: path description: Id of the domain required: true schema: type: string format: uuid responses: '200': description: OK '404': description: Domain for instance {id} is not found patch: tags: - Domains summary: Update a domain description: Update an existing domain using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchDomain_1 parameters: - name: id in: path description: Id of the domain 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/domains/async/{id}: delete: tags: - Domains summary: Asynchronously delete a domain by Id description: Asynchronously delete a domain by `Id`. operationId: deleteDomainAsync parameters: - name: id in: path description: Id of the domain required: true schema: type: string format: uuid responses: '200': description: OK '404': description: Domain for instance {id} is not found /v1/domains/{id}/followers/{userId}: delete: tags: - Domains summary: Remove a follower description: Remove the user identified `userId` as a follower of the domain. operationId: deleteFollowerFromDomain parameters: - name: id in: path description: Id of the Entity 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 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChangeEvent' /v1/domains/assets/counts: get: tags: - Domains summary: Get all domains with their asset counts description: Get a map of domain fully qualified names to their asset counts using search aggregation. operationId: getAllDomainsWithAssetsCount responses: '200': description: Map of domain FQN to asset count content: application/json: {} /v1/domains/{id}/assets: get: tags: - Domains summary: Get assets for a domain description: Get paginated list of assets belonging to a domain. operationId: getDomainAssets parameters: - name: id in: path description: Id of the domain required: true schema: type: string format: uuid - name: limit in: query description: Limit the number of results returned. Maximum of 1000 records will be returned in a single request. schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 10 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of assets content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: Domain for instance {id} is not found /v1/domains/name/{fqn}/assets: get: tags: - Domains summary: Get assets for a domain by name description: Get paginated list of assets belonging to a domain by domain name. operationId: getDomainAssetsByName parameters: - name: fqn in: path description: Name of the domain required: true schema: type: string - name: limit in: query description: Limit the number of results returned. Maximum of 1000 records will be returned in a single request. schema: maximum: 1000 minimum: 1 type: integer format: int64 default: 10 - name: offset in: query description: Offset from which to start returning results schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of assets content: application/json: schema: $ref: '#/components/schemas/ResultList' '404': description: Domain for instance {name} is not found /v1/domains/{id}/versions/{version}: get: tags: - Domains summary: Get a version of the domain description: Get a version of the domain by given `Id` operationId: listSpecificDomainVersion parameters: - name: id in: path description: Id of the domain required: true schema: type: string format: uuid - name: version in: path description: Domain version number in the form `major`.`minor` required: true schema: type: string example: 0.1 or 1.1 responses: '200': description: domain content: application/json: schema: $ref: '#/components/schemas/Domain' '404': description: Domain for instance {id} and version {version} is not found /v1/domains/history: get: tags: - Domains 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_20 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/domains/hierarchy: get: tags: - Domains summary: List domains in hierarchical order description: Get a list of Domains in hierarchical order. operationId: listDomainsHierarchy parameters: - name: fields in: query description: Fields requested in the returned resource schema: type: string example: tags,children,childrenCount,owners,experts,extension,followers,votes,certification - name: limit in: query schema: maximum: 1000000 minimum: 0 type: integer format: int32 default: 10 - name: directChildrenOf in: query description: List domains filtered to retrieve the first level/immediate children of the domain `directChildrenOf` parameter. If not specified, returns only root domains (domains with no parent). schema: type: string - name: offset in: query description: Offset from which to start returning results (for offset-based pagination) schema: minimum: 0 type: integer format: int64 default: 0 responses: '200': description: List of Domains in hierarchical order content: application/json: schema: $ref: '#/components/schemas/EntityHierarchyList' /v1/domains/{id}/versions: get: tags: - Domains summary: List domain versions description: Get a list of all the versions of a domain identified by `Id` operationId: listAllDomainVersion parameters: - name: id in: path description: Id of the domain required: true schema: type: string format: uuid responses: '200': description: List of domain versions content: application/json: schema: $ref: '#/components/schemas/EntityHistory' /v1/domains/name/{fqn}: patch: tags: - Domains summary: Update a domain by name. description: Update an existing domain using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchDomain parameters: - name: fqn in: path description: Name of the domain 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/domains/{id}/vote: put: tags: - Domains summary: Update Vote for an Entity description: Update vote for an Entity operationId: updateVoteForEntity_8 parameters: - name: id in: path description: Id of the Entity 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: model for instance {id} is not found components: schemas: 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' ColumnProfile: required: - name - timestamp type: object properties: name: type: string timestamp: type: integer format: int64 valuesCount: type: number format: double valuesPercentage: type: number format: double validCount: type: number format: double duplicateCount: type: number format: double nullCount: type: number format: double nullProportion: type: number format: double missingPercentage: type: number format: double missingCount: type: number format: double uniqueCount: type: number format: double uniqueProportion: type: number format: double distinctCount: type: number format: double distinctProportion: type: number format: double min: type: object max: type: object minLength: type: number format: double maxLength: type: number format: double mean: type: number format: double sum: type: number format: double stddev: type: number format: double variance: type: number format: double median: type: number format: double firstQuartile: type: number format: double thirdQuartile: type: number format: double interQuartileRange: type: number format: double nonParametricSkew: type: number format: double histogram: $ref: '#/components/schemas/Histogram' customMetrics: type: array items: $ref: '#/components/schemas/CustomMetricProfile' cardinalityDistribution: $ref: '#/components/schemas/CardinalityDistribution' SlaDefinition: type: object properties: tier: type: string enum: - GOLD - SILVER - BRONZE - CUSTOM availability: type: number format: double responseTime: type: integer format: int32 dataFreshness: type: integer format: int32 dataQuality: type: number format: double BulkOperationResult: type: object properties: dryRun: type: boolean status: type: string enum: - success - failure - aborted - partialSuccess - running abortReason: type: string numberOfRowsProcessed: minimum: 0 exclusiveMinimum: false type: integer format: int32 numberOfRowsPassed: minimum: 0 exclusiveMinimum: false type: integer format: int32 numberOfRowsFailed: minimum: 0 exclusiveMinimum: false type: integer format: int32 successRequest: type: array items: $ref: '#/components/schemas/BulkResponse' failedRequest: type: array items: $ref: '#/components/schemas/BulkResponse' ODCSAuthoritativeDefinition: type: object properties: url: type: string format: uri name: type: string type: type: string TermsOfUse: type: object properties: content: type: string inherited: type: boolean ContractSLA: type: object properties: inherited: type: boolean refreshFrequency: $ref: '#/components/schemas/RefreshFrequency' maxLatency: $ref: '#/components/schemas/MaxLatency' availabilityTime: type: string timezone: type: string enum: - GMT-11:00 (Pacific/Niue) - GMT-10:00 (Pacific/Honolulu) - GMT-09:30 (Pacific/Marquesas) - GMT-09:00 (America/Anchorage) - GMT-08:00 (America/Los Angeles) - GMT-07:00 (America/Denver) - GMT-06:00 (America/Chicago) - GMT-05:00 (America/New York) - GMT-04:00 (America/Santiago) - GMT-03:00 (America/Sao Paulo) - GMT-02:30 (Atlantic/Newfoundland) - GMT-02:00 (Atlantic/South_Georgia) - GMT-01:00 (Atlantic/Azores) - GMT+00:00 (Europe/London) - GMT+01:00 (Europe/Paris) - GMT+02:00 (Europe/Athens) - GMT+03:00 (Europe/Moscow) - GMT+03:00 (Asia/Iran) - GMT+04:00 (Asia/Dubai) - GMT+04:30 (Asia/Afghanistan) - GMT+05:00 (Asia/Karachi) - GMT+05:30 (Asia/Kolkata) - GMT+05:45 (Asia/Nepal) - GMT+06:00 (Asia/Dhaka) - GMT+06:00 (Asia/Myanmar) - GMT+07:00 (Asia/Bangkok) - GMT+08:00 (Asia/Shanghai) - GMT+08:45 (Australia/Australian Central Western Standard Time) - GMT+09:00 (Asia/Tokyo) - GMT+09:00 (Australia/Adelaide) - GMT+10:00 (Australia/Sydney) - GMT+10:30 (Australia/Lord Howe) - GMT+11:00 (Pacific/Norfolk) - GMT+12:00 (Pacific/Auckland) - GMT+13:00 (Pacific/Tongatapu) - GMT+14:00 (Pacific/Kiritimati) retention: $ref: '#/components/schemas/Retention' columnName: type: string ChangeSummaryMap: type: object AccessDetails: required: - timestamp type: object properties: timestamp: type: integer format: int64 accessedBy: $ref: '#/components/schemas/EntityReference' accessedByAProcess: type: string FieldChange: type: object properties: name: type: string oldValue: type: object newValue: type: object CoverImage: type: object properties: url: type: string position: type: string Retention: required: - period - unit type: object properties: period: type: integer format: int32 unit: type: string enum: - day - week - month - year LifeCycle: type: object properties: created: $ref: '#/components/schemas/AccessDetails' updated: $ref: '#/components/schemas/AccessDetails' accessed: $ref: '#/components/schemas/AccessDetails' DataProductList: required: - data type: object properties: data: type: array items: $ref: '#/components/schemas/DataProduct' 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' EntityHistory: required: - entityType - versions type: object properties: entityType: type: string versions: type: array items: type: object AssetCertification: required: - appliedDate - expiryDate - tagLabel type: object properties: tagLabel: $ref: '#/components/schemas/TagLabel' appliedDate: type: integer format: int64 expiryDate: type: integer format: int64 CustomMetricProfile: type: object properties: name: type: string value: type: number format: double Domain: required: - description - domainType - id - name type: object properties: id: type: string format: uuid domainType: type: string enum: - Source-aligned - Consumer-aligned - Aggregate name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string fullyQualifiedName: maxLength: 3072 minLength: 1 type: string displayName: type: string description: type: string style: $ref: '#/components/schemas/Style' version: type: number format: double updatedAt: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string href: type: string format: uri parent: $ref: '#/components/schemas/EntityReference' children: type: array items: $ref: '#/components/schemas/EntityReference' childrenCount: type: integer format: int32 owners: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: $ref: '#/components/schemas/EntityReference' assets: type: array items: $ref: '#/components/schemas/EntityReference' tags: type: array items: $ref: '#/components/schemas/TagLabel' changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' extension: type: object followers: type: array items: $ref: '#/components/schemas/EntityReference' votes: $ref: '#/components/schemas/Votes' certification: $ref: '#/components/schemas/AssetCertification' entityStatus: type: string enum: - Draft - In Review - Approved - Archived - Deprecated - Rejected - Unprocessed provider: type: string enum: - system - user - automation service: $ref: '#/components/schemas/EntityReference' reviewers: type: array items: $ref: '#/components/schemas/EntityReference' domains: type: array items: $ref: '#/components/schemas/EntityReference' dataProducts: type: array items: $ref: '#/components/schemas/EntityReference' deleted: type: boolean dataContract: $ref: '#/components/schemas/EntityReference' usageSummary: $ref: '#/components/schemas/UsageDetails' lifeCycle: $ref: '#/components/schemas/LifeCycle' CardinalityDistribution: type: object properties: categories: type: array items: type: string counts: type: array items: type: integer format: int32 percentages: type: array items: type: number format: double allValuesUnique: type: boolean EntityHierarchyList: required: - data type: object properties: data: type: array items: $ref: '#/components/schemas/EntityHierarchy' 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' ResultList: required: - data type: object properties: data: type: array items: type: object 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' VoteRequest: type: object properties: updatedVoteType: type: string enum: - votedUp - votedDown - unVoted BulkResponse: type: object properties: request: type: object message: type: string status: type: integer format: int32 CreateDomain: required: - description - domainType - name type: object properties: domainType: type: string enum: - Source-aligned - Consumer-aligned - Aggregate name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string fullyQualifiedName: maxLength: 3072 minLength: 1 type: string displayName: type: string description: type: string style: $ref: '#/components/schemas/Style' parent: type: string owners: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: type: string tags: type: array items: $ref: '#/components/schemas/TagLabel' extension: type: object reviewers: type: array items: $ref: '#/components/schemas/EntityReference' domains: type: array items: type: string dataProducts: type: array items: type: string lifeCycle: $ref: '#/components/schemas/LifeCycle' Paging: required: - total type: object properties: before: type: string after: type: string offset: type: integer format: int32 limit: type: integer format: int32 total: type: integer format: int32 JsonPatch: 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 DataProductPortsView: required: - entity - inputPorts - outputPorts type: object properties: entity: $ref: '#/components/schemas/EntityReference' inputPorts: $ref: '#/components/schemas/PaginatedEntities' outputPorts: $ref: '#/components/schemas/PaginatedEntities' ChangeDescription: type: object properties: fieldsAdded: type: array items: $ref: '#/components/schemas/FieldChange' fieldsUpdated: type: array items: $ref: '#/components/schemas/FieldChange' fieldsDeleted: type: array items: $ref: '#/components/schemas/FieldChange' previousVersion: type: number format: double changeSummary: $ref: '#/components/schemas/ChangeSummaryMap' ODCSQualityRule: type: object properties: type: type: string enum: - text - library - sql - custom name: type: string description: type: string rule: type: string metric: type: string enum: - rowCount - nullValues - invalidValues - duplicateValues - missingValues - uniqueValues - distinctValues - completeness - freshness column: type: string query: type: string engine: type: string implementation: type: string dimension: type: string enum: - accuracy - completeness - conformity - consistency - coverage - timeliness - uniqueness - ac - cp - cf - cs - cv - tm - uq severity: type: string businessImpact: type: string unit: type: string mustBe: type: number format: double mustNotBe: type: number format: double mustBeGreaterThan: type: number format: double mustBeGreaterOrEqualTo: type: number format: double mustBeLessThan: type: number format: double mustBeLessOrEqualTo: type: number format: double mustBeBetween: maxItems: 2 minItems: 2 type: array items: type: number format: double mustNotBeBetween: maxItems: 2 minItems: 2 type: array items: type: number format: double validValues: type: array items: type: string scheduler: type: string schedule: type: string customProperties: $ref: '#/components/schemas/CustomProperties' authoritativeDefinitions: type: array items: $ref: '#/components/schemas/ODCSAuthoritativeDefinition' tags: type: array items: type: string PaginatedEntities: required: - data - paging type: object properties: data: type: array items: $ref: '#/components/schemas/Datum' paging: $ref: '#/components/schemas/Paging' DataProduct: required: - description - id - name 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 style: $ref: '#/components/schemas/Style' version: type: number format: double updatedAt: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string href: type: string format: uri owners: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: $ref: '#/components/schemas/EntityReference' reviewers: type: array items: $ref: '#/components/schemas/EntityReference' domains: type: array items: $ref: '#/components/schemas/EntityReference' assets: type: array items: $ref: '#/components/schemas/EntityReference' lifecycleStage: type: string enum: - IDEATION - DESIGN - DEVELOPMENT - TESTING - PRODUCTION - DEPRECATED - RETIRED sla: $ref: '#/components/schemas/SlaDefinition' consumesFrom: type: array items: $ref: '#/components/schemas/EntityReference' providesTo: type: array items: $ref: '#/components/schemas/EntityReference' tags: type: array items: $ref: '#/components/schemas/TagLabel' changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' extension: type: object followers: type: array items: $ref: '#/components/schemas/EntityReference' votes: $ref: '#/components/schemas/Votes' certification: $ref: '#/components/schemas/AssetCertification' entityStatus: type: string enum: - Draft - In Review - Approved - Archived - Deprecated - Rejected - Unprocessed provider: type: string enum: - system - user - automation children: type: array items: $ref: '#/components/schemas/EntityReference' service: $ref: '#/components/schemas/EntityReference' dataProducts: type: array items: $ref: '#/components/schemas/EntityReference' deleted: type: boolean dataContract: $ref: '#/components/schemas/EntityReference' usageSummary: $ref: '#/components/schemas/UsageDetails' lifeCycle: $ref: '#/components/schemas/LifeCycle' LatestResult: type: object properties: timestamp: type: integer format: int64 status: type: string enum: - Running - Success - Failed - PartialSuccess - Aborted - Queued message: type: string resultId: type: string format: uuid ChangeEvent: required: - entityId - entityType - eventType - id - timestamp type: object properties: id: type: string format: uuid eventType: type: string enum: - entityCreated - entityUpdated - entityFieldsChanged - entityNoChange - entitySoftDeleted - entityDeleted - entityRestored - threadCreated - threadUpdated - postCreated - postUpdated - taskResolved - taskClosed - logicalTestCaseAdded - suggestionCreated - suggestionUpdated - suggestionAccepted - suggestionRejected - suggestionDeleted - userLogin - userLogout entityType: type: string entityId: type: string format: uuid domains: type: array items: type: string format: uuid entityFullyQualifiedName: type: string previousVersion: type: number format: double currentVersion: type: number format: double userName: type: string impersonatedBy: type: string timestamp: type: integer format: int64 changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' entity: type: object UsageStats: required: - count type: object properties: count: minimum: 0 exclusiveMinimum: false type: integer format: int32 percentileRank: type: number format: double CreateDataProduct: required: - description - domains - name type: object properties: name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string fullyQualifiedName: maxLength: 3072 minLength: 1 type: string displayName: type: string description: type: string style: $ref: '#/components/schemas/Style' owners: type: array items: $ref: '#/components/schemas/EntityReference' domains: type: array items: type: string experts: type: array items: type: string reviewers: type: array items: $ref: '#/components/schemas/EntityReference' assets: type: array items: $ref: '#/components/schemas/EntityReference' tags: type: array items: $ref: '#/components/schemas/TagLabel' extension: type: object dataProducts: type: array items: type: string lifeCycle: $ref: '#/components/schemas/LifeCycle' RefreshFrequency: required: - interval - unit type: object properties: interval: type: integer format: int32 unit: type: string enum: - hour - day - week - month - year BulkAssets: type: object properties: assets: type: array items: $ref: '#/components/schemas/EntityReference' dryRun: type: boolean Style: type: object properties: color: type: string iconURL: type: string coverImage: $ref: '#/components/schemas/CoverImage' 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 Datum: type: object CustomProperties: type: object Votes: type: object properties: upVotes: type: integer format: int32 downVotes: type: integer format: int32 upVoters: type: array items: $ref: '#/components/schemas/EntityReference' downVoters: type: array items: $ref: '#/components/schemas/EntityReference' EntityHierarchy: required: - description - id - name type: object properties: id: type: string format: uuid name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string displayName: type: string description: type: string fullyQualifiedName: maxLength: 3072 minLength: 1 type: string children: type: array items: $ref: '#/components/schemas/EntityHierarchy' Histogram: type: object properties: boundaries: type: array items: type: object frequencies: type: array items: type: object TagLabel: required: - labelType - source - state - tagFQN type: object properties: tagFQN: type: string name: type: string displayName: type: string description: type: string style: $ref: '#/components/schemas/Style' source: type: string enum: - Classification - Glossary labelType: type: string enum: - Manual - Propagated - Automated - Derived - Generated state: type: string enum: - Suggested - Confirmed href: type: string format: uri reason: type: string appliedAt: type: string format: date-time appliedBy: type: string metadata: $ref: '#/components/schemas/TagLabelMetadata' PatternMatch: required: - name - score type: object properties: name: type: string regex: type: string score: type: number format: double TagLabelMetadata: type: object properties: recognizer: $ref: '#/components/schemas/TagLabelRecognizerMetadata' expiryDate: type: integer format: int64 EntityError: type: object properties: message: type: string entity: type: object ContractUpdate: required: - timestamp - updatedBy - version type: object properties: timestamp: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string changeDescription: type: string version: type: string Policy: required: - id - name - rules type: object properties: id: type: string format: uuid name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string fullyQualifiedName: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string displayName: type: string description: type: string owners: type: array items: $ref: '#/components/schemas/EntityReference' href: type: string format: uri enabled: type: boolean version: type: number format: double updatedAt: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' rules: type: array items: $ref: '#/components/schemas/Rule' teams: type: array items: $ref: '#/components/schemas/EntityReference' roles: type: array items: $ref: '#/components/schemas/EntityReference' location: $ref: '#/components/schemas/EntityReference' allowDelete: type: boolean allowEdit: type: boolean deleted: type: boolean provider: type: string enum: - system - user - automation disabled: type: boolean domains: type: array items: $ref: '#/components/schemas/EntityReference' extension: type: object children: type: array items: $ref: '#/components/schemas/EntityReference' service: $ref: '#/components/schemas/EntityReference' style: $ref: '#/components/schemas/Style' tags: type: array items: $ref: '#/components/schemas/TagLabel' followers: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: $ref: '#/components/schemas/EntityReference' reviewers: type: array items: $ref: '#/components/schemas/EntityReference' dataProducts: type: array items: $ref: '#/components/schemas/EntityReference' dataContract: $ref: '#/components/schemas/EntityReference' usageSummary: $ref: '#/components/schemas/UsageDetails' entityStatus: type: string enum: - Draft - In Review - Approved - Archived - Deprecated - Rejected - Unprocessed votes: $ref: '#/components/schemas/Votes' lifeCycle: $ref: '#/components/schemas/LifeCycle' certification: $ref: '#/components/schemas/AssetCertification' MaxLatency: required: - unit - value type: object properties: value: type: integer format: int32 unit: type: string enum: - minute - hour - day DomainList: required: - data type: object properties: data: type: array items: $ref: '#/components/schemas/Domain' 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' SemanticsRule: required: - description - enabled - name - rule type: object properties: name: type: string description: type: string rule: type: string enabled: type: boolean entityType: type: string ignoredEntities: type: array items: type: string jsonTree: type: string provider: type: string enum: - system - user - automation inherited: type: boolean EntityReference: required: - id - type type: object properties: id: type: string format: uuid type: type: string name: type: string fullyQualifiedName: type: string description: type: string displayName: type: string deleted: type: boolean inherited: type: boolean href: type: string format: uri DataContract: required: - entity - id - name type: object properties: id: type: string format: uuid name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string displayName: type: string fullyQualifiedName: maxLength: 3072 minLength: 1 type: string description: type: string version: type: number format: double updatedAt: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string createdAt: type: integer format: int64 createdBy: type: string href: type: string format: uri entityStatus: type: string enum: - Draft - In Review - Approved - Archived - Deprecated - Rejected - Unprocessed entity: $ref: '#/components/schemas/EntityReference' testSuite: $ref: '#/components/schemas/EntityReference' schema: type: array items: $ref: '#/components/schemas/Column' semantics: type: array items: $ref: '#/components/schemas/SemanticsRule' termsOfUse: $ref: '#/components/schemas/TermsOfUse' security: $ref: '#/components/schemas/ContractSecurity' sla: $ref: '#/components/schemas/ContractSLA' qualityExpectations: type: array items: $ref: '#/components/schemas/EntityReference' odcsQualityRules: type: array items: $ref: '#/components/schemas/ODCSQualityRule' contractUpdates: type: array items: $ref: '#/components/schemas/ContractUpdate' owners: type: array items: $ref: '#/components/schemas/EntityReference' reviewers: type: array items: $ref: '#/components/schemas/EntityReference' effectiveFrom: type: string format: date-time effectiveUntil: type: string format: date-time changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' deleted: type: boolean sourceUrl: type: string latestResult: $ref: '#/components/schemas/LatestResult' extension: type: object inherited: type: boolean provider: type: string enum: - system - user - automation children: type: array items: $ref: '#/components/schemas/EntityReference' service: $ref: '#/components/schemas/EntityReference' style: $ref: '#/components/schemas/Style' tags: type: array items: $ref: '#/components/schemas/TagLabel' followers: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: $ref: '#/components/schemas/EntityReference' domains: type: array items: $ref: '#/components/schemas/EntityReference' dataProducts: type: array items: $ref: '#/components/schemas/EntityReference' dataContract: $ref: '#/components/schemas/EntityReference' usageSummary: $ref: '#/components/schemas/UsageDetails' votes: $ref: '#/components/schemas/Votes' lifeCycle: $ref: '#/components/schemas/LifeCycle' certification: $ref: '#/components/schemas/AssetCertification' ContractSecurity: type: object properties: inherited: type: boolean dataClassification: type: string policies: type: array items: $ref: '#/components/schemas/Policy' 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 Rule: required: - effect - name - operations - resources type: object properties: name: type: string fullyQualifiedName: maxLength: 3072 minLength: 1 type: string description: type: string effect: type: string enum: - allow - deny operations: type: array items: type: string enum: - All - Create - BulkCreate - CreateIngestionPipelineAutomator - CreateTests - Delete - ViewAll - ViewBasic - ViewUsage - ViewTests - ViewQueries - ViewDataProfile - ViewProfilerGlobalConfiguration - ViewSampleData - ViewTestCaseFailedRowsSample - ViewCustomFields - EditAll - BulkUpdate - EditCustomFields - EditDataProfile - EditDescription - EditDisplayName - EditLineage - EditEntityRelationship - EditPolicy - EditOwners - EditQueries - EditReviewers - EditRole - EditSampleData - EditStatus - EditTags - EditGlossaryTerms - EditTeams - EditTier - EditCertification - EditTests - EditUsage - EditUsers - EditLifeCycle - EditKnowledgePanel - EditPage - EditIngestionPipelineStatus - EditUserNotificationTemplate - DeleteTestCaseFailedRowsSample - Deploy - Trigger - Kill - GenerateToken - EditScim - CreateScim - DeleteScim - ViewScim - Impersonate - AuditLogs - ViewTestDefinitionLibrary - EditTestDefinitionLibrary resources: type: array items: type: string condition: type: string securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT