10 KiB
title | slug |
---|---|
Ometa API | /sdk/python/api-reference/ometa-api |
module ometa_api
OpenMetadata is the high level Python API that serves as a wrapper for the metadata-server API. It is based on the generated pydantic models from the JSON schemas and provides a typed approach to working with OpenMetadata entities.
Global Variables
- ROUTES
class MissingEntityTypeException
We are receiving an Entity Type[T] not covered in our suffix generation list
class InvalidEntityException
We receive an entity not supported in an operation
class EmptyPayloadException
Raise when receiving no data, even if no exception during the API call is received
class OpenMetadata
Generic interface to the OpenMetadata API
It is a polymorphism on all our different Entities.
Specific functionalities to be inherited from Mixins
method __init__
__init__(config: OpenMetadataConnection, raw_data: bool = False)
method close
close()
Closing connection
Returns None
method compute_percentile
compute_percentile(entity: Union[Type[~T], str], date: str) → None
Compute an entity usage percentile
method create_or_update
create_or_update(data: ~C) → ~T
We allow CreateEntity for PUT, so we expect a type C.
We PUT to the endpoint and return the Entity generated result
method delete
delete(
entity: Type[~T],
entity_id: Union[str, Uuid],
recursive: bool = False,
hard_delete: bool = False
) → None
API call to delete an entity from entity ID
Args entity (T): entity Type entity_id (basic.Uuid): entity ID Returns None
method get_by_id
get_by_id(
entity: Type[~T],
entity_id: Union[str, Uuid],
fields: Optional[List[str]] = None,
nullable: bool = True
) → Optional[~T]
Return entity by ID or None
method get_by_name
get_by_name(
entity: Type[~T],
fqn: Union[str, FullyQualifiedEntityName],
fields: Optional[List[str]] = None,
nullable: bool = True
) → Optional[~T]
Return entity by name or None
method get_create_entity_type
get_create_entity_type(entity: Type[~T]) → Type[~C]
imports and returns the Create Type from an Entity Type T. We are following the expected path structure to import on-the-fly the necessary class and pass it to the consumer
method get_entity_from_create
get_entity_from_create(create: Type[~C]) → Type[~T]
Inversely, import the Entity type based on the create Entity class
method get_entity_reference
get_entity_reference(entity: Type[~T], fqn: str) → Optional[EntityReference]
Helper method to obtain an EntityReference from a FQN and the Entity class. :param entity: Entity Class :param fqn: Entity instance FQN :return: EntityReference or None
method get_module_path
get_module_path(entity: Type[~T]) → str
Based on the entity, return the module path it is found inside generated
method get_suffix
get_suffix(entity: Type[~T]) → str
Given an entity Type from the generated sources, return the endpoint to run requests.
method health_check
health_check() → bool
Run version api call. Return true
if response is not None
method list_all_entities
list_all_entities(
entity: Type[~T],
fields: Optional[List[str]] = None,
limit: int = 1000,
params: Optional[Dict[str, str]] = None,
skip_on_failure: bool = False
) → Iterable[~T]
Utility method that paginates over all EntityLists to return a generator to fetch entities :param entity: Entity Type, such as Table :param fields: Extra fields to return :param limit: Number of entities in each pagination :param params: Extra parameters, e.g., {"service": "serviceName"} to filter :return: Generator that will be yielding all Entities
method list_entities
list_entities(
entity: Type[~T],
fields: Optional[List[str]] = None,
after: Optional[str] = None,
limit: int = 100,
params: Optional[Dict[str, str]] = None,
skip_on_failure: bool = False
) → EntityList[~T]
Helps us paginate over the collection
method list_services
list_services(entity: Type[~T]) → List[EntityList[~T]]
Service listing does not implement paging
method list_versions
list_versions(
entity_id: Union[str, Uuid],
entity: Type[~T]
) → EntityVersionHistory
Version history of an entity
method update_file_name
update_file_name(create: Type[~C], file_name: str) → str
Update the filename for services and schemas