Source code for pyatlan.model.assets.quick_sight_dashboard

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


from __future__ import annotations

from datetime import datetime
from typing import ClassVar, List, Optional, overload

from pydantic.v1 import Field, validator

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

from .quick_sight import QuickSight


[docs] class QuickSightDashboard(QuickSight): """Description""" @overload @classmethod def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, ) -> QuickSightDashboard: ... @overload @classmethod def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, quick_sight_dashboard_folders: List[str], ) -> QuickSightDashboard: ... @classmethod @init_guid def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, quick_sight_dashboard_folders: Optional[List[str]] = None, ) -> QuickSightDashboard: validate_required_fields( ["name", "connection_qualified_name", "quick_sight_id"], [name, connection_qualified_name, quick_sight_id], ) attributes = QuickSightDashboard.Attributes.creator( name=name, connection_qualified_name=connection_qualified_name, quick_sight_id=quick_sight_id, quick_sight_dashboard_folders=quick_sight_dashboard_folders, ) return cls(attributes=attributes) type_name: str = Field(default="QuickSightDashboard", allow_mutation=False) @validator("type_name") def validate_type_name(cls, v): if v != "QuickSightDashboard": raise ValueError("must be QuickSightDashboard") return v def __setattr__(self, name, value): if name in QuickSightDashboard._convenience_properties: return object.__setattr__(self, name, value) super().__setattr__(name, value) QUICK_SIGHT_DASHBOARD_PUBLISHED_VERSION_NUMBER: ClassVar[NumericField] = ( NumericField( "quickSightDashboardPublishedVersionNumber", "quickSightDashboardPublishedVersionNumber", ) ) """ Version number of the published dashboard. """ QUICK_SIGHT_DASHBOARD_LAST_PUBLISHED_TIME: ClassVar[NumericField] = NumericField( "quickSightDashboardLastPublishedTime", "quickSightDashboardLastPublishedTime" ) """ Time (epoch) at which this dashboard was last published, in milliseconds. """ QUICK_SIGHT_DASHBOARD_FOLDERS: ClassVar[RelationField] = RelationField( "quickSightDashboardFolders" ) """ TBC """ QUICK_SIGHT_DASHBOARD_VISUALS: ClassVar[RelationField] = RelationField( "quickSightDashboardVisuals" ) """ TBC """ _convenience_properties: ClassVar[List[str]] = [ "quick_sight_dashboard_published_version_number", "quick_sight_dashboard_last_published_time", "quick_sight_dashboard_folders", "quick_sight_dashboard_visuals", ] @property def quick_sight_dashboard_published_version_number(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.quick_sight_dashboard_published_version_number ) @quick_sight_dashboard_published_version_number.setter def quick_sight_dashboard_published_version_number( self, quick_sight_dashboard_published_version_number: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dashboard_published_version_number = ( quick_sight_dashboard_published_version_number ) @property def quick_sight_dashboard_last_published_time(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.quick_sight_dashboard_last_published_time ) @quick_sight_dashboard_last_published_time.setter def quick_sight_dashboard_last_published_time( self, quick_sight_dashboard_last_published_time: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dashboard_last_published_time = ( quick_sight_dashboard_last_published_time ) @property def quick_sight_dashboard_folders(self) -> Optional[List[QuickSightFolder]]: return ( None if self.attributes is None else self.attributes.quick_sight_dashboard_folders ) @quick_sight_dashboard_folders.setter def quick_sight_dashboard_folders( self, quick_sight_dashboard_folders: Optional[List[QuickSightFolder]] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dashboard_folders = quick_sight_dashboard_folders @property def quick_sight_dashboard_visuals( self, ) -> Optional[List[QuickSightDashboardVisual]]: return ( None if self.attributes is None else self.attributes.quick_sight_dashboard_visuals ) @quick_sight_dashboard_visuals.setter def quick_sight_dashboard_visuals( self, quick_sight_dashboard_visuals: Optional[List[QuickSightDashboardVisual]] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.quick_sight_dashboard_visuals = quick_sight_dashboard_visuals class Attributes(QuickSight.Attributes): quick_sight_dashboard_published_version_number: Optional[int] = Field( default=None, description="" ) quick_sight_dashboard_last_published_time: Optional[datetime] = Field( default=None, description="" ) quick_sight_dashboard_folders: Optional[List[QuickSightFolder]] = Field( default=None, description="" ) # relationship quick_sight_dashboard_visuals: Optional[List[QuickSightDashboardVisual]] = ( Field(default=None, description="") ) # relationship @classmethod @init_guid def creator( cls, *, name: str, connection_qualified_name: str, quick_sight_id: str, quick_sight_dashboard_folders: Optional[List[str]] = None, ) -> QuickSightDashboard.Attributes: validate_required_fields( ["name", "connection_qualified_name", "quick_sight_id"], [name, connection_qualified_name, quick_sight_id], ) folders = None if quick_sight_dashboard_folders: folders = [ QuickSightFolder.ref_by_qualified_name(quick_sight_folder_qn) for quick_sight_folder_qn in quick_sight_dashboard_folders ] return QuickSightDashboard.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_dashboard_folders=folders, ) attributes: QuickSightDashboard.Attributes = Field( default_factory=lambda: QuickSightDashboard.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_dashboard_visual import QuickSightDashboardVisual # noqa: E402, F401 from .quick_sight_folder import QuickSightFolder # noqa: E402, F401 QuickSightDashboard.Attributes.update_forward_refs()