openapi: 3.0.1 info: title: OpenMetadata APIs Agent Executions Glossaries 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: Glossaries description: A `Glossary` is collection of hierarchical `GlossaryTerms`. paths: /v1/glossaries: get: tags: - Glossaries summary: List glossaries description: Get a list of glossaries. 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: listGlossaries parameters: - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,reviewers,usageCount,termCount,domains,extension - name: limit in: query description: Limit the number glossaries 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 glossaries before this cursor schema: type: string - name: after in: query description: Returns list of glossaries 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 glossaries content: application/json: schema: $ref: '#/components/schemas/GlossaryList' put: tags: - Glossaries summary: Create or update a glossary description: Create a new glossary, if it does not exist or update an existing glossary. operationId: createOrUpdateGlossary requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateGlossary' responses: '200': description: The glossary content: application/json: schema: $ref: '#/components/schemas/Glossary' '400': description: Bad request post: tags: - Glossaries summary: Create a glossary description: Create a new glossary. operationId: createGlossary requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateGlossary' responses: '200': description: The glossary content: application/json: schema: $ref: '#/components/schemas/Glossary' '400': description: Bad request /v1/glossaries/name/{name}: get: tags: - Glossaries summary: Get a glossary by name description: Get a glossary by name. operationId: getGlossaryByFQN parameters: - name: name in: path description: Name of the glossary required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,reviewers,usageCount,termCount,domains,extension - 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: The glossary content: application/json: schema: $ref: '#/components/schemas/Glossary' '404': description: Glossary for instance {name} is not found delete: tags: - Glossaries summary: Delete a glossary by name description: Delete a glossary by `name`. operationId: deleteGlossaryByName 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 it's children. (Default `false`) schema: type: boolean default: false - name: name in: path description: Name of the glossary required: true schema: type: string responses: '200': description: OK '404': description: glossary for instance {name} is not found /v1/glossaries/{id}: get: tags: - Glossaries summary: Get a glossary by Id description: Get a glossary by `Id`. operationId: getGlossaryByID parameters: - name: id in: path description: Id of the glossary required: true schema: type: string format: uuid - name: fields in: query description: Fields requested in the returned resource schema: type: string example: owners,tags,reviewers,usageCount,termCount,domains,extension - 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 glossary content: application/json: schema: $ref: '#/components/schemas/Glossary' '404': description: Glossary for instance {id} is not found delete: tags: - Glossaries summary: Delete a glossary by Id description: Delete a glossary by `Id`. operationId: deleteGlossary parameters: - name: recursive in: query description: Recursively delete this entity and it's children. (Default `false`) schema: type: boolean default: false - name: hardDelete in: query description: Hard delete the entity. (Default = `false`) schema: type: boolean default: false - name: id in: path description: Id of the glossary required: true schema: type: string format: uuid responses: '200': description: OK '404': description: glossary for instance {id} is not found patch: tags: - Glossaries summary: Update a glossary description: Update an existing glossary using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchGlossary_1 parameters: - name: id in: path description: Id of the glossary 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/glossaries/async/{id}: delete: tags: - Glossaries summary: Asynchronously delete a glossary by Id description: Asynchronously delete a glossary by `Id`. operationId: deleteGlossaryAsync parameters: - name: recursive in: query description: Recursively delete this entity and it's children. (Default `false`) schema: type: boolean default: false - name: hardDelete in: query description: Hard delete the entity. (Default = `false`) schema: type: boolean default: false - name: id in: path description: Id of the glossary required: true schema: type: string format: uuid responses: '200': description: OK '404': description: glossary for instance {id} is not found /v1/glossaries/name/{name}/export: get: tags: - Glossaries summary: Export glossary in CSV format operationId: exportGlossary parameters: - name: name in: path description: Name of the glossary required: true schema: type: string responses: '200': description: Exported csv with glossary terms content: application/json: schema: type: string /v1/glossaries/name/{name}/exportAsync: get: tags: - Glossaries summary: Export glossary in CSV format operationId: exportGlossary_1 parameters: - name: name in: path description: Name of the glossary required: true schema: type: string responses: '200': description: Exported csv with glossary terms content: application/json: schema: $ref: '#/components/schemas/CSVExportResponse' /v1/glossaries/documentation/csv: get: tags: - Glossaries summary: Get CSV documentation operationId: getCsvDocumentation responses: default: description: default response content: application/json: schema: type: string /v1/glossaries/{id}/versions/{version}: get: tags: - Glossaries summary: Get a version of the glossaries description: Get a version of the glossary by given `Id` operationId: getSpecificGlossaryVersion parameters: - name: id in: path description: Id of the glossary required: true schema: type: string format: uuid - name: version in: path description: glossary version number in the form `major`.`minor` required: true schema: type: string example: 0.1 or 1.1 responses: '200': description: glossaries content: application/json: schema: $ref: '#/components/schemas/Glossary' '404': description: Glossary for instance {id} and version {version} is not found /v1/glossaries/name/{name}/import: put: tags: - Glossaries summary: Import glossary terms from CSV to create, and update glossary terms operationId: importGlossary parameters: - name: name in: path description: Name of the glossary required: true schema: type: string - name: dryRun in: query description: Dry-run when true is used for validating the CSV without really importing it. (default=true) schema: type: boolean default: true requestBody: content: text/plain: schema: type: string responses: '200': description: Import result content: application/json: schema: $ref: '#/components/schemas/CsvImportResult' /v1/glossaries/name/{name}/importAsync: put: tags: - Glossaries summary: Import glossary in CSV format asynchronously operationId: importGlossaryAsync parameters: - name: name in: path description: Name of the glossary required: true schema: type: string - name: dryRun in: query description: Dry run the import schema: type: boolean default: true requestBody: description: CSV data to import content: text/plain: schema: type: string required: true responses: '200': description: Import initiated successfully content: application/json: schema: $ref: '#/components/schemas/CsvImportResult' /v1/glossaries/history: get: tags: - Glossaries 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_29 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/glossaries/{id}/versions: get: tags: - Glossaries summary: List glossary versions description: Get a list of all the versions of a glossary identified by `id` operationId: listAllGlossaryVersion parameters: - name: id in: path description: Id of the glossary required: true schema: type: string format: uuid responses: '200': description: List of glossary versions content: application/json: schema: $ref: '#/components/schemas/EntityHistory' /v1/glossaries/name/{fqn}: patch: tags: - Glossaries summary: Update a glossary using name. description: Update an existing glossary using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchGlossary parameters: - name: fqn in: path description: Name of the glossary 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/glossaries/restore: put: tags: - Glossaries summary: Restore a soft deleted glossary description: Restore a soft deleted Glossary. operationId: restore_21 requestBody: content: application/json: schema: $ref: '#/components/schemas/RestoreEntity' responses: '200': description: 'Successfully restored the Glossary ' content: application/json: schema: $ref: '#/components/schemas/Glossary' /v1/glossaries/{id}/vote: put: tags: - Glossaries summary: Update Vote for a Entity description: Update vote for a Entity operationId: updateVoteForEntity_9 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/glossaryTerms/{id}/relations: post: tags: - Glossaries summary: Add a typed relation to another glossary term description: Add a typed semantic relation (e.g., broader, narrower, synonym) from this glossary term to another. operationId: addTermRelation parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/TermRelation' responses: '200': description: The updated glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '404': description: Glossary term not found /v1/glossaryTerms/{id}/assets/add: put: tags: - Glossaries summary: Bulk Add Glossary Term to Assets description: Bulk Add Glossary Term to Assets operationId: bulkAddGlossaryTermToAssets 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/AddGlossaryToAssetsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '404': description: model for instance {id} is not found /v1/glossaryTerms/{id}/assets/remove: put: tags: - Glossaries summary: Bulk Remove Glossary Term from Assets description: Bulk Remove Glossary Term from Assets operationId: bulkRemoveGlossaryTermFromAssets 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/AddGlossaryToAssetsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChangeEvent' '404': description: model for instance {id} is not found /v1/glossaryTerms: get: tags: - Glossaries summary: List glossary terms description: Get a list of glossary terms. 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: listGlossaryTerm parameters: - name: glossary in: query description: List glossary terms filtered by glossary identified by Id given in `glossary` parameter. schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - name: parent in: query description: List glossary terms filtered by children of glossary term identified by Id given in `parent` parameter. schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - name: fields in: query description: Fields requested in the returned resource schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - name: limit in: query description: Limit the number glossary terms 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 glossary terms before this cursor schema: type: string - name: after in: query description: Returns list of glossary terms 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 - name: directChildrenOf in: query description: List glossary terms filtered to retrieve the first level/immediate children of the glossary term `directChildrenOf` parameter. schema: type: string - name: entityStatus in: query description: 'Filter by entity status (comma-separated: Approved,Draft,In Review,Rejected,Deprecated,Unprocessed)' schema: type: string responses: '200': description: List of glossary terms content: application/json: schema: $ref: '#/components/schemas/GlossaryTermList' put: tags: - Glossaries summary: Create or update a glossary term description: Create a new glossary term, if it does not exist or update an existing glossary term. operationId: createOrUpdateGlossaryTerm requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateGlossaryTerm' responses: '200': description: The glossary content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '400': description: Bad request post: tags: - Glossaries summary: Create a glossary term description: Create a new glossary term. operationId: createGlossaryTerm requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateGlossaryTerm' responses: '200': description: The glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '400': description: Bad request /v1/glossaryTerms/createMany: post: tags: - Glossaries summary: Create multiple glossary terms at once description: Create multiple new glossary terms. operationId: createManyGlossaryTerm requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/CreateGlossaryTerm' responses: '200': description: The glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '400': description: Bad request /v1/glossaryTerms/name/{fqn}: get: tags: - Glossaries summary: Get a glossary term by fully qualified name description: Get a glossary term by `fullyQualifiedName`. operationId: getGlossaryTermByFQN parameters: - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - 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 glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '404': description: Glossary term for instance {fqn} is not found delete: tags: - Glossaries summary: Delete a glossary term by fully qualified name description: Delete a glossary term by `fullyQualifiedName`. operationId: deleteGlossaryTermByName 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 it's children. (Default `false`) schema: type: boolean default: false - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string responses: '200': description: OK '404': description: glossaryTerm for instance {fqn} is not found patch: tags: - Glossaries summary: Update a glossary term by name. description: Update an existing glossary term using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchGlossaryTerm parameters: - name: fqn in: path description: Name of the glossary term 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/glossaryTerms/{id}: get: tags: - Glossaries summary: Get a glossary term by Id description: Get a glossary term by `Id`. operationId: getGlossaryTermByID parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid - name: fields in: query description: Fields requested in the returned resource schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - 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 glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '404': description: Glossary term for instance {id} is not found delete: tags: - Glossaries summary: Delete a glossary term by Id description: Delete a glossary term by `Id`. operationId: delete parameters: - name: recursive in: query description: Recursively delete this entity and it's children. (Default `false`) schema: type: boolean default: false - name: hardDelete in: query description: Hard delete the entity. (Default = `false`) schema: type: boolean default: false - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid responses: '200': description: OK '404': description: glossaryTerm for instance {id} is not found patch: tags: - Glossaries summary: Update a glossary term description: Update an existing glossary term using JsonPatch. externalDocs: description: JsonPatch RFC url: https://tools.ietf.org/html/rfc6902 operationId: patchGlossaryTerm_1 parameters: - name: id in: path description: Id of the glossary term 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/glossaryTerms/async/{id}: delete: tags: - Glossaries summary: Asynchronously delete a glossary term by Id description: Asynchronously delete a glossary term by `Id`. operationId: deleteByIdAsync parameters: - name: recursive in: query description: Recursively delete this entity and it's children. (Default `false`) schema: type: boolean default: false - name: hardDelete in: query description: Hard delete the entity. (Default = `false`) schema: type: boolean default: false - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid responses: '200': description: OK '404': description: glossaryTerm for instance {id} is not found /v1/glossaryTerms/name/{fqn}/export: get: tags: - Glossaries summary: Export glossary term in CSV format description: Export glossary term and its children in CSV format. operationId: exportGlossaryTerm parameters: - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string responses: '200': description: Exported csv with glossary terms content: text/plain: {} /v1/glossaryTerms/name/{fqn}/exportAsync: get: tags: - Glossaries summary: Export glossary term in CSV format asynchronously description: Export glossary term and its children in CSV format asynchronously. operationId: exportGlossaryTermAsync parameters: - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string responses: '202': description: Export initiated successfully content: application/json: schema: $ref: '#/components/schemas/CSVExportResponse' /v1/glossaryTerms/assets/counts: get: tags: - Glossaries summary: Get all glossary terms with their asset counts description: Get a map of glossary term fully qualified names to their asset counts using search aggregation. operationId: getAllGlossaryTermsWithAssetsCount parameters: - name: parent in: query description: Filter by parent glossary or glossary term FQN. When provided, only returns asset counts for children whose FQN starts with this value. schema: type: string responses: '200': description: Map of glossary term FQN to asset count content: application/json: {} /v1/glossaryTerms/byIds: get: tags: - Glossaries summary: Get multiple glossary terms by Ids description: Get multiple glossary terms in a single request by passing a comma-separated list of UUIDs. Exists to eliminate the per-Id round-trip pattern when hydrating related-term graphs in the UI. Ids that are missing, deleted, or not visible to the caller are silently omitted from the response, so callers should compare the response size against the input. operationId: getGlossaryTermsByIds parameters: - name: ids in: query description: Comma-separated list of glossary term Ids (UUIDs). Max 100 per call. Omit or pass blank to receive an empty list. schema: type: string - name: fields in: query description: Fields requested in the returned resource schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - 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: List of glossary terms (may be shorter than the input ids list) content: application/json: schema: type: array items: $ref: '#/components/schemas/GlossaryTerm' '400': description: Invalid ids parameter /v1/glossaryTerms/relationTypes/usage: get: tags: - Glossaries summary: Get usage counts for all relation types description: Get a map of relation types to the count of glossary term relations using that type. Useful for determining if a relation type can be safely deleted. operationId: getRelationTypeUsageCounts responses: '200': description: Map of relation type to usage count content: application/json: {} /v1/glossaryTerms/{id}/relationsGraph: get: tags: - Glossaries summary: Get the relation graph for a glossary term description: Get a graph of related terms up to a specified depth, optionally filtered by relation types. operationId: getTermRelationGraph parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid - name: depth in: query description: Depth of the graph (1-5, default = 1) schema: maximum: 5 minimum: 1 type: integer format: int32 default: 1 - name: relationTypes in: query description: Comma-separated list of relation types to include schema: type: string responses: '200': description: Graph of related terms content: application/json: {} '404': description: Glossary term not found /v1/glossaryTerms/{id}/versions/{version}: get: tags: - Glossaries summary: Get a version of the glossary term description: Get a version of the glossary term by given `Id` operationId: getSpecificGlossaryTermVersion parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid - name: version in: path description: glossary term version number in the form `major`.`minor` required: true schema: type: string example: 0.1 or 1.1 responses: '200': description: The glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '404': description: Glossary term for instance {id} and version {version} is not found /v1/glossaryTerms/name/{fqn}/import: put: tags: - Glossaries summary: Import glossary terms from CSV description: Import glossary terms from CSV to create, and update glossary terms. This is a synchronous API. operationId: importGlossaryTerm parameters: - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string - name: dryRun in: query description: Dry-run when true is used for validating the CSV without really importing it. (default=true) schema: type: boolean default: true requestBody: description: CSV data to import content: text/plain: schema: type: string required: true responses: '200': description: Import result content: application/json: schema: $ref: '#/components/schemas/CsvImportResult' /v1/glossaryTerms/name/{fqn}/importAsync: put: tags: - Glossaries summary: Import glossary term from CSV asynchronously description: Import glossary term and its children from CSV format asynchronously to create or update glossary terms. operationId: importGlossaryTermAsync parameters: - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string - name: dryRun in: query description: Dry-run when true is used for validating the CSV without really importing it. (default=true) schema: type: boolean default: true requestBody: description: CSV data to import content: text/plain: schema: type: string required: true responses: '200': description: Import initiated successfully content: application/json: schema: $ref: '#/components/schemas/CSVImportResponse' /v1/glossaryTerms/history: get: tags: - Glossaries 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_30 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/glossaryTerms/{id}/assets: get: tags: - Glossaries summary: List assets tagged with this glossary term description: Get a paginated list of assets that have this glossary term applied. Use limit and offset query params for pagination. operationId: listGlossaryTermAssets parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid - name: limit in: query description: Limit the number of assets returned. (1 to 1000, default = 100) schema: maximum: 1000 minimum: 1 type: integer format: int32 default: 10 - name: offset in: query description: Offset for pagination (default = 0) schema: minimum: 0 type: integer format: int32 default: 0 responses: '200': description: List of assets content: application/json: schema: $ref: '#/components/schemas/EntityReference' '404': description: Glossary term for instance {id} is not found /v1/glossaryTerms/name/{fqn}/assets: get: tags: - Glossaries summary: List assets tagged with this glossary term by fully qualified name description: Get a paginated list of assets that have this glossary term applied. Use limit and offset query params for pagination. operationId: listGlossaryTermAssetsByName parameters: - name: fqn in: path description: Fully qualified name of the glossary term required: true schema: type: string - name: limit in: query description: Limit the number of assets returned. (1 to 1000, default = 100) schema: maximum: 1000 minimum: 1 type: integer format: int32 default: 10 - name: offset in: query description: Offset for pagination (default = 0) schema: minimum: 0 type: integer format: int32 default: 0 responses: '200': description: List of assets content: application/json: schema: $ref: '#/components/schemas/EntityReference' '404': description: Glossary term for instance {fqn} is not found /v1/glossaryTerms/{id}/versions: get: tags: - Glossaries summary: List glossary term versions description: Get a list of all the versions of a glossary terms identified by `id` operationId: listAllGlossaryTermVersion parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid responses: '200': description: List of glossary term versions content: application/json: schema: $ref: '#/components/schemas/EntityHistory' /v1/glossaryTerms/{id}/moveAsync: put: tags: - Glossaries summary: Move a glossary term to a new parent or glossary description: Move a glossary term to a new parent term or glossary. Only parent or glossary can be changed. operationId: moveGlossaryTerm parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid requestBody: description: MoveGlossaryTermRequest with new parent or glossary content: application/json: schema: $ref: '#/components/schemas/MoveGlossaryTermRequest' required: true responses: '200': description: The moved glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' /v1/glossaryTerms/{id}/relations/{toTermId}: delete: tags: - Glossaries summary: Remove a relation to another glossary term description: Remove a relation from this glossary term to another term. operationId: removeTermRelation parameters: - name: id in: path description: Id of the glossary term required: true schema: type: string format: uuid - name: toTermId in: path description: Id of the related glossary term to remove required: true schema: type: string format: uuid - name: relationType in: query description: Type of relation to remove (optional, removes all types if not specified) schema: type: string responses: '200': description: The updated glossary term content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' '404': description: Glossary term not found /v1/glossaryTerms/restore: put: tags: - Glossaries summary: Restore a soft deleted glossary term description: Restore a soft deleted glossary term. operationId: restore_22 requestBody: content: application/json: schema: $ref: '#/components/schemas/RestoreEntity' responses: '200': description: 'Successfully restored the Chart ' content: application/json: schema: $ref: '#/components/schemas/GlossaryTerm' /v1/glossaryTerms/search: get: tags: - Glossaries summary: Search glossary terms with pagination description: Search glossary terms by name, display name, or description with server-side pagination. This endpoint provides efficient search functionality for glossaries with large numbers of terms. operationId: searchGlossaryTerms parameters: - name: q in: query description: Search query for term names, display names, or descriptions schema: type: string - name: glossary in: query description: Filter by glossary ID schema: type: string format: uuid - name: glossaryFqn in: query description: Filter by glossary FQN schema: type: string - name: parent in: query description: Filter by parent term ID schema: type: string format: uuid - name: parentFqn in: query description: Filter by parent term FQN schema: type: string - name: limit in: query description: Limit the number of terms returned (1 to 1000, default = 50) schema: maximum: 1000 minimum: 1 type: integer format: int32 default: 50 - name: offset in: query description: Offset for pagination (default = 0) schema: minimum: 0 type: integer format: int32 default: 0 - name: fields in: query description: Fields requested in the returned terms schema: type: string example: children,relatedTerms,reviewers,owners,tags,usageCount,domains,extension,childrenCount - name: include in: query description: Include all, deleted, or non-deleted entities. schema: type: string default: non-deleted enum: - all - deleted - non-deleted - name: entityStatus in: query description: 'Filter by entity status (comma-separated: Approved,Draft,In Review,Rejected,Deprecated,Unprocessed)' schema: type: string responses: '200': description: List of matching glossary terms content: application/json: schema: $ref: '#/components/schemas/GlossaryTermList' /v1/glossaryTerms/{id}/vote: put: tags: - Glossaries summary: Update Vote for a Entity description: Update vote for a Entity operationId: updateVoteForEntity_10 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/glossaryTerms/{id}/tags/validate: put: tags: - Glossaries summary: Validate Tags Addition to Glossary Term description: Validate Tags Addition to Glossary Term operationId: validateGlossaryTermTagsAddition 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/ValidateGlossaryTagsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BulkOperationResult' '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' 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' ValidateGlossaryTagsRequest: type: object properties: dryRun: type: boolean glossaryTags: type: array items: $ref: '#/components/schemas/TagLabel' TermRelation: required: - term type: object properties: relationType: pattern: ^[a-zA-Z][a-zA-Z0-9]*$ type: string term: $ref: '#/components/schemas/EntityReference' 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 CreateGlossary: required: - description - name type: object properties: name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string displayName: type: string description: type: string reviewers: type: array items: $ref: '#/components/schemas/EntityReference' owners: type: array items: $ref: '#/components/schemas/EntityReference' tags: type: array items: $ref: '#/components/schemas/TagLabel' provider: type: string enum: - system - user - automation mutuallyExclusive: type: boolean domains: type: array items: type: string extension: type: object dataProducts: type: array items: type: string lifeCycle: $ref: '#/components/schemas/LifeCycle' RestoreEntity: required: - id type: object properties: id: type: string format: uuid LifeCycle: type: object properties: created: $ref: '#/components/schemas/AccessDetails' updated: $ref: '#/components/schemas/AccessDetails' accessed: $ref: '#/components/schemas/AccessDetails' MoveGlossaryTermRequest: type: object properties: parent: $ref: '#/components/schemas/EntityReference' AssetCertification: required: - appliedDate - expiryDate - tagLabel type: object properties: tagLabel: $ref: '#/components/schemas/TagLabel' appliedDate: type: integer format: int64 expiryDate: type: integer format: int64 VoteRequest: type: object properties: updatedVoteType: type: string enum: - votedUp - votedDown - unVoted EntityHistory: required: - entityType - versions type: object properties: entityType: type: string versions: type: array items: type: object GlossaryList: required: - data type: object properties: data: type: array items: $ref: '#/components/schemas/Glossary' 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' Glossary: 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 version: type: number format: double updatedAt: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string href: type: string format: uri reviewers: type: array items: $ref: '#/components/schemas/EntityReference' owners: type: array items: $ref: '#/components/schemas/EntityReference' usageCount: type: integer format: int32 tags: type: array items: $ref: '#/components/schemas/TagLabel' termCount: minimum: 0 exclusiveMinimum: false type: integer format: int32 changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' deleted: type: boolean provider: type: string enum: - system - user - automation disabled: type: boolean mutuallyExclusive: type: boolean domains: type: array items: $ref: '#/components/schemas/EntityReference' dataProducts: type: array items: $ref: '#/components/schemas/EntityReference' dataContract: $ref: '#/components/schemas/EntityReference' votes: $ref: '#/components/schemas/Votes' extension: type: object entityStatus: type: string enum: - Draft - In Review - Approved - Archived - Deprecated - Rejected - Unprocessed children: type: array items: $ref: '#/components/schemas/EntityReference' service: $ref: '#/components/schemas/EntityReference' style: $ref: '#/components/schemas/Style' followers: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: $ref: '#/components/schemas/EntityReference' usageSummary: $ref: '#/components/schemas/UsageDetails' lifeCycle: $ref: '#/components/schemas/LifeCycle' certification: $ref: '#/components/schemas/AssetCertification' BulkResponse: type: object properties: request: type: object message: type: string status: type: integer format: int32 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 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' AddGlossaryToAssetsRequest: type: object properties: dryRun: type: boolean assets: type: array items: $ref: '#/components/schemas/EntityReference' TermReference: type: object properties: name: type: string endpoint: type: string format: uri CreateGlossaryTerm: required: - description - glossary - name type: object properties: glossary: maxLength: 3072 minLength: 1 type: string parent: maxLength: 3072 minLength: 1 type: string name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string displayName: type: string description: type: string style: $ref: '#/components/schemas/Style' synonyms: type: array items: type: string relatedTerms: type: array items: type: string references: type: array items: $ref: '#/components/schemas/TermReference' conceptMappings: type: array items: $ref: '#/components/schemas/ConceptMapping' reviewers: type: array items: $ref: '#/components/schemas/EntityReference' owners: type: array items: $ref: '#/components/schemas/EntityReference' tags: type: array items: $ref: '#/components/schemas/TagLabel' provider: type: string enum: - system - user - automation mutuallyExclusive: type: boolean extension: type: object domains: type: array items: type: string dataProducts: type: array items: type: string lifeCycle: $ref: '#/components/schemas/LifeCycle' CSVExportResponse: type: object properties: jobId: type: string message: type: string 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 Style: type: object properties: color: type: string iconURL: type: string coverImage: $ref: '#/components/schemas/CoverImage' CSVImportResponse: type: object properties: jobId: type: string message: type: string 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' CsvImportResult: 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 importResultsCsv: type: string 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 GlossaryTermList: required: - data type: object properties: data: type: array items: $ref: '#/components/schemas/GlossaryTerm' 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' ConceptMapping: required: - conceptIri - mappingType type: object properties: conceptIri: type: string format: uri mappingType: type: string enum: - EXACT_MATCH - CLOSE_MATCH - BROAD_MATCH - NARROW_MATCH - RELATED_MATCH - SAME_AS schemeIri: type: string format: uri source: type: string 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 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 GlossaryTerm: required: - description - glossary - id - name type: object properties: id: type: string format: uuid name: maxLength: 256 minLength: 1 pattern: ^((?!::).)*$ type: string displayName: type: string description: type: string style: $ref: '#/components/schemas/Style' fullyQualifiedName: maxLength: 3072 minLength: 1 type: string synonyms: type: array items: type: string glossary: $ref: '#/components/schemas/EntityReference' parent: $ref: '#/components/schemas/EntityReference' children: type: array items: $ref: '#/components/schemas/EntityReference' relatedTerms: type: array items: $ref: '#/components/schemas/TermRelation' references: type: array items: $ref: '#/components/schemas/TermReference' conceptMappings: type: array items: $ref: '#/components/schemas/ConceptMapping' version: type: number format: double updatedAt: type: integer format: int64 updatedBy: type: string impersonatedBy: type: string href: type: string format: uri reviewers: type: array items: $ref: '#/components/schemas/EntityReference' owners: type: array items: $ref: '#/components/schemas/EntityReference' usageCount: type: integer format: int32 tags: type: array items: $ref: '#/components/schemas/TagLabel' changeDescription: $ref: '#/components/schemas/ChangeDescription' incrementalChangeDescription: $ref: '#/components/schemas/ChangeDescription' entityStatus: type: string enum: - Draft - In Review - Approved - Archived - Deprecated - Rejected - Unprocessed deleted: type: boolean provider: type: string enum: - system - user - automation disabled: type: boolean mutuallyExclusive: type: boolean extension: type: object domains: type: array items: $ref: '#/components/schemas/EntityReference' dataProducts: type: array items: $ref: '#/components/schemas/EntityReference' dataContract: $ref: '#/components/schemas/EntityReference' votes: $ref: '#/components/schemas/Votes' childrenCount: type: integer format: int32 service: $ref: '#/components/schemas/EntityReference' followers: type: array items: $ref: '#/components/schemas/EntityReference' experts: type: array items: $ref: '#/components/schemas/EntityReference' usageSummary: $ref: '#/components/schemas/UsageDetails' lifeCycle: $ref: '#/components/schemas/LifeCycle' certification: $ref: '#/components/schemas/AssetCertification' securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT