# Path: clouddq/classes/dataplex_entity_schema.py
# class DataplexEntitySchema:
#     """ """
# 
#     fields: list[DataplexEntitySchemaField]
#     partitionFields: list[DataplexEntityPartitionSchemaField]
#     partitionStyle: str
# 
#     @classmethod
#     def from_dict(
#         cls: DataplexEntitySchema, entity_id: str, kwargs: dict
#     ) -> DataplexEntitySchema:
# 
#         fields: list[dict] = []
#         fields_list = kwargs.get("fields")
#         if fields_list:
#             for obj in fields_list:
#                 field = DataplexEntitySchemaField.from_dict(
#                     entity_id=entity_id, kwargs=obj
#                 )
#                 assert_not_none_or_empty(
#                     value=field,
#                     error_msg=f"Entity {entity_id}: must define non-empty value: 'fields'.",
#                 )
#                 fields.append(field.to_dict())
#         else:
#             fields = None
#         partition_fields: list[dict] = []
#         if kwargs.get("partitionFields"):
#             partition_fields_list = kwargs.get("partitionFields")
#             for obj in partition_fields_list:
#                 partition_field = DataplexEntityPartitionSchemaField.from_dict(
#                     entity_id=entity_id, kwargs=obj
#                 )
#                 assert_not_none_or_empty(
#                     value=partition_field,
#                     error_msg=f"Entity {entity_id}: must define non-empty value: "
#                     f"'partitionFields'.",
#                 )
#                 partition_fields.append(partition_field.to_dict())
#                 fields.append(partition_field.to_fields_dict())
#         else:
#             partition_fields = None
# 
#         if kwargs.get("partitionStyle"):
#             partition_style = kwargs.get("partitionStyle", None)
#             assert_not_none_or_empty(
#                 value=partition_style,
#                 error_msg=f"Entity {entity_id}: must define non-empty value: 'partition_style'.",
#             )
#         else:
#             partition_style = None
# 
#         return DataplexEntitySchema(
#             fields=fields,
#             partitionFields=partition_fields,
#             partitionStyle=partition_style,
#         )
# 
#     def to_dict(self: DataplexEntitySchema) -> dict:
#         """
#         Args:
#           self: DataplexEntitySchema:
# 
#         Returns:
# 
#         """
# 
#         output = {
#             "fields": self.fields,
#             "partitionFields": self.partitionFields,
#             "partitionStyle": self.partitionStyle,
#         }
# 
#         return dict(output)
# 
# Path: clouddq/utils.py
# def assert_not_none_or_empty(value: typing.Any, error_msg: str) -> None:
#     """
# 
#     Args:
#       value: typing.Any:
#       error_msg: str:
# 
#     Returns:
# 
#     """
#     if not value:
#         raise ValueError(error_msg)


from dataclasses import dataclass
from clouddq.classes.dataplex_entity_schema import DataplexEntitySchema
from clouddq.utils import assert_not_none_or_empty
            assert_not_none_or_empty(
                value=entity_name,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'name'.",
            )

            create_time = kwargs.get("createTime", None)
            assert_not_none_or_empty(
                value=create_time,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'create_time'.",
            )

            update_time = kwargs.get("updateTime", None)
            assert_not_none_or_empty(
                value=update_time,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'update_time'.",
            )

            entity_id = kwargs.get("id", None)
            assert_not_none_or_empty(
                value=entity_id,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'id'.",
            )

            entity_type = kwargs.get("type", None)
            assert_not_none_or_empty(
                value=entity_type,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'entity_type'.",
            )

            asset = kwargs.get("asset", None)

# Path: clouddq/classes/dataplex_entity_schema.py
# class DataplexEntitySchema:
#     """ """
# 
#     fields: list[DataplexEntitySchemaField]
#     partitionFields: list[DataplexEntityPartitionSchemaField]
#     partitionStyle: str
# 
#     @classmethod
#     def from_dict(
#         cls: DataplexEntitySchema, entity_id: str, kwargs: dict
#     ) -> DataplexEntitySchema:
# 
#         fields: list[dict] = []
#         fields_list = kwargs.get("fields")
#         if fields_list:
#             for obj in fields_list:
#                 field = DataplexEntitySchemaField.from_dict(
#                     entity_id=entity_id, kwargs=obj
#                 )
#                 assert_not_none_or_empty(
#                     value=field,
#                     error_msg=f"Entity {entity_id}: must define non-empty value: 'fields'.",
#                 )
#                 fields.append(field.to_dict())
#         else:
#             fields = None
#         partition_fields: list[dict] = []
#         if kwargs.get("partitionFields"):
#             partition_fields_list = kwargs.get("partitionFields")
#             for obj in partition_fields_list:
#                 partition_field = DataplexEntityPartitionSchemaField.from_dict(
#                     entity_id=entity_id, kwargs=obj
#                 )
#                 assert_not_none_or_empty(
#                     value=partition_field,
#                     error_msg=f"Entity {entity_id}: must define non-empty value: "
#                     f"'partitionFields'.",
#                 )
#                 partition_fields.append(partition_field.to_dict())
#                 fields.append(partition_field.to_fields_dict())
#         else:
#             partition_fields = None
# 
#         if kwargs.get("partitionStyle"):
#             partition_style = kwargs.get("partitionStyle", None)
#             assert_not_none_or_empty(
#                 value=partition_style,
#                 error_msg=f"Entity {entity_id}: must define non-empty value: 'partition_style'.",
#             )
#         else:
#             partition_style = None
# 
#         return DataplexEntitySchema(
#             fields=fields,
#             partitionFields=partition_fields,
#             partitionStyle=partition_style,
#         )
# 
#     def to_dict(self: DataplexEntitySchema) -> dict:
#         """
#         Args:
#           self: DataplexEntitySchema:
# 
#         Returns:
# 
#         """
# 
#         output = {
#             "fields": self.fields,
#             "partitionFields": self.partitionFields,
#             "partitionStyle": self.partitionStyle,
#         }
# 
#         return dict(output)
# 
# Path: clouddq/utils.py
# def assert_not_none_or_empty(value: typing.Any, error_msg: str) -> None:
#     """
# 
#     Args:
#       value: typing.Any:
#       error_msg: str:
# 
#     Returns:
# 
#     """
#     if not value:
#         raise ValueError(error_msg)


# Path: clouddq/classes/dataplex_entity.py
from dataclasses import dataclass
from clouddq.classes.dataplex_entity_schema import DataplexEntitySchema
from clouddq.utils import assert_not_none_or_empty

            assert_not_none_or_empty(
                value=entity_name,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'name'.",
            )

            create_time = kwargs.get("createTime", None)
            assert_not_none_or_empty(
                value=create_time,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'create_time'.",
            )

            update_time = kwargs.get("updateTime", None)
            assert_not_none_or_empty(
                value=update_time,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'update_time'.",
            )

            entity_id = kwargs.get("id", None)
            assert_not_none_or_empty(
                value=entity_id,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'id'.",
            )

            entity_type = kwargs.get("type", None)
            assert_not_none_or_empty(
                value=entity_type,
                error_msg=f"Entity {entity_id} must define non-empty value for field: 'entity_type'.",
            )

            asset = kwargs.get("asset", None)

            assert_not_none_or_empty(