# coding: utf-8
"""
Amorphic Data Platform
Amorphic Data Platform - API Definition documentation
The version of the OpenAPI document: 1.0
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from openapi_client.models.column_name_and_type import ColumnNameAndType
from openapi_client.models.connection_details import ConnectionDetails
from openapi_client.models.data_metrics_collection_options import DataMetricsCollectionOptions
from openapi_client.models.malware_detection_options import MalwareDetectionOptions
from openapi_client.models.registered_dataset_data_category_config import RegisteredDatasetDataCategoryConfig
from openapi_client.models.registered_dataset_dataset_report import RegisteredDatasetDatasetReport
from openapi_client.models.registered_dataset_hudi_table_options import RegisteredDatasetHudiTableOptions
from openapi_client.models.registered_dataset_iceberg_table_options import RegisteredDatasetIcebergTableOptions
from openapi_client.models.registered_dataset_schedules_inner import RegisteredDatasetSchedulesInner
from openapi_client.models.registered_dataset_sync_to_s3_options import RegisteredDatasetSyncToS3Options
from openapi_client.models.registered_dataset_view_versions_inner import RegisteredDatasetViewVersionsInner
from typing import Optional, Set
from typing_extensions import Self
[docs]
class RegisteredDataset(BaseModel):
"""
RegisteredDataset
""" # noqa: E501
dataset_id: Optional[StrictStr] = Field(default=None, alias="DatasetId")
dataset_name: Optional[StrictStr] = Field(default=None, alias="DatasetName")
display_name: Optional[StrictStr] = Field(default=None, alias="DisplayName")
dataset_description: Optional[StrictStr] = Field(default=None, alias="DatasetDescription")
data_classification: Optional[List[StrictStr]] = Field(default=None, alias="DataClassification")
domain: Optional[StrictStr] = Field(default=None, alias="Domain")
domain_display_name: Optional[StrictStr] = Field(default=None, alias="DomainDisplayName")
partitioned: Optional[StrictStr] = Field(default=None, alias="Partitioned")
file_type: Optional[StrictStr] = Field(default=None, alias="FileType")
target_location: Optional[StrictStr] = Field(default=None, alias="TargetLocation")
keywords: Optional[List[StrictStr]] = Field(default=None, alias="Keywords")
dataset_schema: Optional[List[ColumnNameAndType]] = Field(default=None, alias="DatasetSchema")
table_update: Optional[StrictStr] = Field(default=None, alias="TableUpdate")
data_metrics_collection_options: Optional[DataMetricsCollectionOptions] = Field(default=None, alias="DataMetricsCollectionOptions")
sync_to_s3_options: Optional[RegisteredDatasetSyncToS3Options] = Field(default=None, alias="SyncToS3Options")
dwh_table_name: Optional[StrictStr] = Field(default=None, alias="DWHTableName")
last_modified: Optional[StrictStr] = Field(default=None, alias="LastModified")
last_modified_by: Optional[StrictStr] = Field(default=None, alias="LastModifiedBy")
error_message: Optional[StrictStr] = Field(default=None, alias="ErrorMessage")
table_update_column: Optional[StrictStr] = Field(default=None, alias="TableUpdateColumn")
registration_status: Optional[StrictStr] = Field(default=None, alias="RegistrationStatus")
created_by: Optional[StrictStr] = Field(default=None, alias="CreatedBy")
creation_date: Optional[StrictStr] = Field(default=None, alias="CreationDate")
is_active: Optional[StrictStr] = Field(default=None, alias="IsActive")
is_data_profiling_enabled: Optional[StrictBool] = Field(default=None, alias="IsDataProfilingEnabled")
is_auto_ml_enabled: Optional[StrictBool] = Field(default=None, alias="IsAutoMLEnabled")
is_bda_extraction_enabled: Optional[StrictBool] = Field(default=None, alias="IsBDAExtractionEnabled")
access_type: Optional[StrictStr] = Field(default=None, alias="AccessType")
is_owner: Optional[StrictBool] = Field(default=None, alias="IsOwner")
file_delimiter: Optional[StrictStr] = Field(default=None, alias="FileDelimiter")
skip_file_header: Optional[StrictBool] = Field(default=None, alias="SkipFileHeader")
connection_details: Optional[ConnectionDetails] = Field(default=None, alias="ConnectionDetails")
schedules: Optional[List[RegisteredDatasetSchedulesInner]] = Field(default=None, alias="Schedules")
dataset_report: Optional[RegisteredDatasetDatasetReport] = Field(default=None, alias="DatasetReport")
datasource_type: Optional[StrictStr] = Field(default=None, alias="DatasourceType")
is_data_cleanup_enabled: Optional[StrictBool] = Field(default=None, alias="IsDataCleanupEnabled")
malware_detection_options: Optional[MalwareDetectionOptions] = Field(default=None, alias="MalwareDetectionOptions")
skip_lz_process: Optional[StrictBool] = Field(default=None, alias="SkipLZProcess")
tenant_name: Optional[StrictStr] = Field(default=None, alias="TenantName")
are_ai_services_enabled: Optional[StrictBool] = Field(default=None, alias="AreAIServicesEnabled")
dataset_s3_path: Optional[StrictStr] = Field(default=None, alias="DatasetS3Path")
dataset_status: Optional[StrictStr] = Field(default=None, alias="DatasetStatus")
s3_athena_table_name: Optional[StrictStr] = Field(default=None, alias="S3AthenaTableName")
data_stewards: Optional[List[StrictStr]] = Field(default=None, alias="DataStewards")
data_category: Optional[StrictStr] = Field(default=None, alias="DataCategory")
data_category_config: Optional[RegisteredDatasetDataCategoryConfig] = Field(default=None, alias="DataCategoryConfig")
dataset_type: Optional[StrictStr] = Field(default=None, alias="DatasetType")
raw_description: Optional[StrictStr] = Field(default=None, alias="RawDescription")
ser_de: Optional[StrictStr] = Field(default=None, alias="SerDe")
data_source_id: Optional[StrictStr] = Field(default=None, alias="DataSourceId")
datasource_name: Optional[StrictStr] = Field(default=None, alias="DatasourceName")
is_data_validation_enabled: Optional[StrictBool] = Field(default=None, alias="IsDataValidationEnabled")
is_translate_ai_results_enabled: Optional[StrictBool] = Field(default=None, alias="IsTranslateAIResultsEnabled")
assume_role: Optional[StrictStr] = Field(default=None, alias="AssumeRole")
skip_trash: Optional[StrictStr] = Field(default=None, alias="SkipTrash")
target_table_prep_mode: Optional[StrictStr] = Field(default=None, alias="TargetTablePrepMode")
dataset_key_options: Optional[StrictStr] = Field(default=None, alias="DatasetKeyOptions")
column_table_constraints: Optional[StrictStr] = Field(default=None, alias="ColumnTableConstraints")
dynamodb_table_name: Optional[StrictStr] = Field(default=None, alias="DynamodbTableName")
iceberg_table_options: Optional[RegisteredDatasetIcebergTableOptions] = Field(default=None, alias="IcebergTableOptions")
hudi_table_options: Optional[RegisteredDatasetHudiTableOptions] = Field(default=None, alias="HudiTableOptions")
database_host: Optional[StrictStr] = Field(default=None, alias="DatabaseHost")
database_port: Optional[StrictStr] = Field(default=None, alias="DatabasePort")
database_name: Optional[StrictStr] = Field(default=None, alias="DatabaseName")
database_table_name: Optional[StrictStr] = Field(default=None, alias="DatabaseTableName")
jdbc_connection_string: Optional[StrictStr] = Field(default=None, alias="JdbcConnectionString")
odbc_connection_string: Optional[StrictStr] = Field(default=None, alias="OdbcConnectionString")
database_view_name: Optional[StrictStr] = Field(default=None, alias="DatabaseViewName")
current_version: Optional[StrictStr] = Field(default=None, alias="CurrentVersion")
sql_statement: Optional[StrictStr] = Field(default=None, alias="SqlStatement")
view_type: Optional[StrictStr] = Field(default=None, alias="ViewType")
view_versions: Optional[List[RegisteredDatasetViewVersionsInner]] = Field(default=None, alias="ViewVersions")
__properties: ClassVar[List[str]] = ["DatasetId", "DatasetName", "DisplayName", "DatasetDescription", "DataClassification", "Domain", "DomainDisplayName", "Partitioned", "FileType", "TargetLocation", "Keywords", "DatasetSchema", "TableUpdate", "DataMetricsCollectionOptions", "SyncToS3Options", "DWHTableName", "LastModified", "LastModifiedBy", "ErrorMessage", "TableUpdateColumn", "RegistrationStatus", "CreatedBy", "CreationDate", "IsActive", "IsDataProfilingEnabled", "IsAutoMLEnabled", "IsBDAExtractionEnabled", "AccessType", "IsOwner", "FileDelimiter", "SkipFileHeader", "ConnectionDetails", "Schedules", "DatasetReport", "DatasourceType", "IsDataCleanupEnabled", "MalwareDetectionOptions", "SkipLZProcess", "TenantName", "AreAIServicesEnabled", "DatasetS3Path", "DatasetStatus", "S3AthenaTableName", "DataStewards", "DataCategory", "DataCategoryConfig", "DatasetType", "RawDescription", "SerDe", "DataSourceId", "DatasourceName", "IsDataValidationEnabled", "IsTranslateAIResultsEnabled", "AssumeRole", "SkipTrash", "TargetTablePrepMode", "DatasetKeyOptions", "ColumnTableConstraints", "DynamodbTableName", "IcebergTableOptions", "HudiTableOptions", "DatabaseHost", "DatabasePort", "DatabaseName", "DatabaseTableName", "JdbcConnectionString", "OdbcConnectionString", "DatabaseViewName", "CurrentVersion", "SqlStatement", "ViewType", "ViewVersions"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
[docs]
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
[docs]
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
[docs]
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of RegisteredDataset from a JSON string"""
return cls.from_dict(json.loads(json_str))
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in dataset_schema (list)
_items = []
if self.dataset_schema:
for _item_dataset_schema in self.dataset_schema:
if _item_dataset_schema:
_items.append(_item_dataset_schema.to_dict())
_dict['DatasetSchema'] = _items
# override the default output from pydantic by calling `to_dict()` of data_metrics_collection_options
if self.data_metrics_collection_options:
_dict['DataMetricsCollectionOptions'] = self.data_metrics_collection_options.to_dict()
# override the default output from pydantic by calling `to_dict()` of sync_to_s3_options
if self.sync_to_s3_options:
_dict['SyncToS3Options'] = self.sync_to_s3_options.to_dict()
# override the default output from pydantic by calling `to_dict()` of connection_details
if self.connection_details:
_dict['ConnectionDetails'] = self.connection_details.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in schedules (list)
_items = []
if self.schedules:
for _item_schedules in self.schedules:
if _item_schedules:
_items.append(_item_schedules.to_dict())
_dict['Schedules'] = _items
# override the default output from pydantic by calling `to_dict()` of dataset_report
if self.dataset_report:
_dict['DatasetReport'] = self.dataset_report.to_dict()
# override the default output from pydantic by calling `to_dict()` of malware_detection_options
if self.malware_detection_options:
_dict['MalwareDetectionOptions'] = self.malware_detection_options.to_dict()
# override the default output from pydantic by calling `to_dict()` of data_category_config
if self.data_category_config:
_dict['DataCategoryConfig'] = self.data_category_config.to_dict()
# override the default output from pydantic by calling `to_dict()` of iceberg_table_options
if self.iceberg_table_options:
_dict['IcebergTableOptions'] = self.iceberg_table_options.to_dict()
# override the default output from pydantic by calling `to_dict()` of hudi_table_options
if self.hudi_table_options:
_dict['HudiTableOptions'] = self.hudi_table_options.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in view_versions (list)
_items = []
if self.view_versions:
for _item_view_versions in self.view_versions:
if _item_view_versions:
_items.append(_item_view_versions.to_dict())
_dict['ViewVersions'] = _items
return _dict
[docs]
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of RegisteredDataset from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"DatasetId": obj.get("DatasetId"),
"DatasetName": obj.get("DatasetName"),
"DisplayName": obj.get("DisplayName"),
"DatasetDescription": obj.get("DatasetDescription"),
"DataClassification": obj.get("DataClassification"),
"Domain": obj.get("Domain"),
"DomainDisplayName": obj.get("DomainDisplayName"),
"Partitioned": obj.get("Partitioned"),
"FileType": obj.get("FileType"),
"TargetLocation": obj.get("TargetLocation"),
"Keywords": obj.get("Keywords"),
"DatasetSchema": [ColumnNameAndType.from_dict(_item) for _item in obj["DatasetSchema"]] if obj.get("DatasetSchema") is not None else None,
"TableUpdate": obj.get("TableUpdate"),
"DataMetricsCollectionOptions": DataMetricsCollectionOptions.from_dict(obj["DataMetricsCollectionOptions"]) if obj.get("DataMetricsCollectionOptions") is not None else None,
"SyncToS3Options": RegisteredDatasetSyncToS3Options.from_dict(obj["SyncToS3Options"]) if obj.get("SyncToS3Options") is not None else None,
"DWHTableName": obj.get("DWHTableName"),
"LastModified": obj.get("LastModified"),
"LastModifiedBy": obj.get("LastModifiedBy"),
"ErrorMessage": obj.get("ErrorMessage"),
"TableUpdateColumn": obj.get("TableUpdateColumn"),
"RegistrationStatus": obj.get("RegistrationStatus"),
"CreatedBy": obj.get("CreatedBy"),
"CreationDate": obj.get("CreationDate"),
"IsActive": obj.get("IsActive"),
"IsDataProfilingEnabled": obj.get("IsDataProfilingEnabled"),
"IsAutoMLEnabled": obj.get("IsAutoMLEnabled"),
"IsBDAExtractionEnabled": obj.get("IsBDAExtractionEnabled"),
"AccessType": obj.get("AccessType"),
"IsOwner": obj.get("IsOwner"),
"FileDelimiter": obj.get("FileDelimiter"),
"SkipFileHeader": obj.get("SkipFileHeader"),
"ConnectionDetails": ConnectionDetails.from_dict(obj["ConnectionDetails"]) if obj.get("ConnectionDetails") is not None else None,
"Schedules": [RegisteredDatasetSchedulesInner.from_dict(_item) for _item in obj["Schedules"]] if obj.get("Schedules") is not None else None,
"DatasetReport": RegisteredDatasetDatasetReport.from_dict(obj["DatasetReport"]) if obj.get("DatasetReport") is not None else None,
"DatasourceType": obj.get("DatasourceType"),
"IsDataCleanupEnabled": obj.get("IsDataCleanupEnabled"),
"MalwareDetectionOptions": MalwareDetectionOptions.from_dict(obj["MalwareDetectionOptions"]) if obj.get("MalwareDetectionOptions") is not None else None,
"SkipLZProcess": obj.get("SkipLZProcess"),
"TenantName": obj.get("TenantName"),
"AreAIServicesEnabled": obj.get("AreAIServicesEnabled"),
"DatasetS3Path": obj.get("DatasetS3Path"),
"DatasetStatus": obj.get("DatasetStatus"),
"S3AthenaTableName": obj.get("S3AthenaTableName"),
"DataStewards": obj.get("DataStewards"),
"DataCategory": obj.get("DataCategory"),
"DataCategoryConfig": RegisteredDatasetDataCategoryConfig.from_dict(obj["DataCategoryConfig"]) if obj.get("DataCategoryConfig") is not None else None,
"DatasetType": obj.get("DatasetType"),
"RawDescription": obj.get("RawDescription"),
"SerDe": obj.get("SerDe"),
"DataSourceId": obj.get("DataSourceId"),
"DatasourceName": obj.get("DatasourceName"),
"IsDataValidationEnabled": obj.get("IsDataValidationEnabled"),
"IsTranslateAIResultsEnabled": obj.get("IsTranslateAIResultsEnabled"),
"AssumeRole": obj.get("AssumeRole"),
"SkipTrash": obj.get("SkipTrash"),
"TargetTablePrepMode": obj.get("TargetTablePrepMode"),
"DatasetKeyOptions": obj.get("DatasetKeyOptions"),
"ColumnTableConstraints": obj.get("ColumnTableConstraints"),
"DynamodbTableName": obj.get("DynamodbTableName"),
"IcebergTableOptions": RegisteredDatasetIcebergTableOptions.from_dict(obj["IcebergTableOptions"]) if obj.get("IcebergTableOptions") is not None else None,
"HudiTableOptions": RegisteredDatasetHudiTableOptions.from_dict(obj["HudiTableOptions"]) if obj.get("HudiTableOptions") is not None else None,
"DatabaseHost": obj.get("DatabaseHost"),
"DatabasePort": obj.get("DatabasePort"),
"DatabaseName": obj.get("DatabaseName"),
"DatabaseTableName": obj.get("DatabaseTableName"),
"JdbcConnectionString": obj.get("JdbcConnectionString"),
"OdbcConnectionString": obj.get("OdbcConnectionString"),
"DatabaseViewName": obj.get("DatabaseViewName"),
"CurrentVersion": obj.get("CurrentVersion"),
"SqlStatement": obj.get("SqlStatement"),
"ViewType": obj.get("ViewType"),
"ViewVersions": [RegisteredDatasetViewVersionsInner.from_dict(_item) for _item in obj["ViewVersions"]] if obj.get("ViewVersions") is not None else None
})
return _obj