Source code for openapi_client.models.registered_dataset

# 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