Source code for pyatlan.model.assets.quick_sight_dataset

# SPDX-License-Identifier: Apache-2.0
# Copyright 2025 Atlan Pte. Ltd.


from __future__ import annotations

from typing import ClassVar, List, Optional, overload

from pydantic.v1 import Field, validator

from pyatlan.model.enums import AtlanConnectorType, QuickSightDatasetImportMode
from pyatlan.model.fields.atlan_fields import KeywordField, NumericField, RelationField
from pyatlan.utils import init_guid, validate_required_fields

from .quick_sight import QuickSight


[docs] class QuickSightDataset(QuickSight): """Description""" @overload @classmethod def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, ) -> QuickSightDataset: ... @overload @classmethod def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, quick_sight_dataset_import_mode: QuickSightDatasetImportMode, quick_sight_dataset_folders: List[str], ) -> QuickSightDataset: ... @classmethod @init_guid def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, quick_sight_dataset_import_mode: Optional[QuickSightDatasetImportMode] = None, quick_sight_dataset_folders: Optional[List[str]] = None, ) -> QuickSightDataset: validate_required_fields( ["name", "connection_qualified_name", "quick_sight_id"], [name, connection_qualified_name, quick_sight_id], ) attributes = QuickSightDataset.Attributes.creator( name=name, connection_qualified_name=connection_qualified_name, quick_sight_id=quick_sight_id, quick_sight_dataset_import_mode=quick_sight_dataset_import_mode, quick_sight_dataset_folders=quick_sight_dataset_folders, ) return cls(attributes=attributes) type_name: str = Field(default="QuickSightDataset", allow_mutation=False) @validator("type_name") def validate_type_name(cls, v): if v != "QuickSightDataset": raise ValueError("must be QuickSightDataset") return v def __setattr__(self, name, value): if name in QuickSightDataset._convenience_properties: return object.__setattr__(self, name, value) super().__setattr__(name, value) QUICK_SIGHT_DATASET_IMPORT_MODE: ClassVar[KeywordField] = KeywordField( "quickSightDatasetImportMode", "quickSightDatasetImportMode" ) """ Import mode for this dataset, for example: SPICE or DIRECT_QUERY. """ QUICK_SIGHT_DATASET_COLUMN_COUNT: ClassVar[NumericField] = NumericField( "quickSightDatasetColumnCount", "quickSightDatasetColumnCount" ) """ Number of columns present in this dataset. """ QUICK_SIGHT_DATASET_FOLDERS: ClassVar[RelationField] = RelationField( "quickSightDatasetFolders" ) """ TBC """ QUICK_SIGHT_DATASET_FIELDS: ClassVar[RelationField] = RelationField( "quickSightDatasetFields" ) """ TBC """ _convenience_properties: ClassVar[List[str]] = [ "quick_sight_dataset_import_mode", "quick_sight_dataset_column_count", "quick_sight_dataset_folders", "quick_sight_dataset_fields", ] @property def quick_sight_dataset_import_mode(self) -> Optional[QuickSightDatasetImportMode]: return ( None if self.attributes is None else self.attributes.quick_sight_dataset_import_mode ) @quick_sight_dataset_import_mode.setter def quick_sight_dataset_import_mode( self, quick_sight_dataset_import_mode: Optional[QuickSightDatasetImportMode] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dataset_import_mode = ( quick_sight_dataset_import_mode ) @property def quick_sight_dataset_column_count(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.quick_sight_dataset_column_count ) @quick_sight_dataset_column_count.setter def quick_sight_dataset_column_count( self, quick_sight_dataset_column_count: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dataset_column_count = ( quick_sight_dataset_column_count ) @property def quick_sight_dataset_folders(self) -> Optional[List[QuickSightFolder]]: return ( None if self.attributes is None else self.attributes.quick_sight_dataset_folders ) @quick_sight_dataset_folders.setter def quick_sight_dataset_folders( self, quick_sight_dataset_folders: Optional[List[QuickSightFolder]] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dataset_folders = quick_sight_dataset_folders @property def quick_sight_dataset_fields(self) -> Optional[List[QuickSightDatasetField]]: return ( None if self.attributes is None else self.attributes.quick_sight_dataset_fields ) @quick_sight_dataset_fields.setter def quick_sight_dataset_fields( self, quick_sight_dataset_fields: Optional[List[QuickSightDatasetField]] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dataset_fields = quick_sight_dataset_fields class Attributes(QuickSight.Attributes): quick_sight_dataset_import_mode: Optional[QuickSightDatasetImportMode] = Field( default=None, description="" ) quick_sight_dataset_column_count: Optional[int] = Field( default=None, description="" ) quick_sight_dataset_folders: Optional[List[QuickSightFolder]] = Field( default=None, description="" ) # relationship quick_sight_dataset_fields: Optional[List[QuickSightDatasetField]] = Field( default=None, description="" ) # relationship @classmethod @init_guid def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, quick_sight_dataset_import_mode: Optional[ QuickSightDatasetImportMode ] = None, quick_sight_dataset_folders: Optional[List[str]] = None, ) -> QuickSightDataset.Attributes: validate_required_fields( ["name", "connection_qualified_name", "quick_sight_id"], [name, connection_qualified_name, quick_sight_id], ) folders = None if quick_sight_dataset_folders: folders = [ QuickSightFolder.ref_by_qualified_name(quick_sight_folder_qn) for quick_sight_folder_qn in quick_sight_dataset_folders ] return QuickSightDataset.Attributes( name=name, quick_sight_id=quick_sight_id, qualified_name=f"{connection_qualified_name}/{quick_sight_id}", connection_qualified_name=connection_qualified_name, connector_name=AtlanConnectorType.get_connector_name( connection_qualified_name ), quick_sight_dataset_import_mode=quick_sight_dataset_import_mode, quick_sight_dataset_folders=folders, ) attributes: QuickSightDataset.Attributes = Field( default_factory=lambda: QuickSightDataset.Attributes(), description=( "Map of attributes in the instance and their values. " "The specific keys of this map will vary by type, " "so are described in the sub-types of this schema." ), )
from .quick_sight_dataset_field import QuickSightDatasetField # noqa: E402, F401 from .quick_sight_folder import QuickSightFolder # noqa: E402, F401 QuickSightDataset.Attributes.update_forward_refs()