Source code for pyatlan.model.assets.sisense_datamodel

# 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

from pydantic.v1 import Field, validator

from pyatlan.model.fields.atlan_fields import KeywordField, NumericField, RelationField

from .sisense import Sisense


[docs] class SisenseDatamodel(Sisense): """Description""" type_name: str = Field(default="SisenseDatamodel", allow_mutation=False) @validator("type_name") def validate_type_name(cls, v): if v != "SisenseDatamodel": raise ValueError("must be SisenseDatamodel") return v def __setattr__(self, name, value): if name in SisenseDatamodel._convenience_properties: return object.__setattr__(self, name, value) super().__setattr__(name, value) SISENSE_DATAMODEL_TABLE_COUNT: ClassVar[NumericField] = NumericField( "sisenseDatamodelTableCount", "sisenseDatamodelTableCount" ) """ Number of tables in this datamodel. """ SISENSE_DATAMODEL_SERVER: ClassVar[KeywordField] = KeywordField( "sisenseDatamodelServer", "sisenseDatamodelServer" ) """ Hostname of the server on which this datamodel was created. """ SISENSE_DATAMODEL_REVISION: ClassVar[KeywordField] = KeywordField( "sisenseDatamodelRevision", "sisenseDatamodelRevision" ) """ Revision of this datamodel. """ SISENSE_DATAMODEL_LAST_BUILD_TIME: ClassVar[NumericField] = NumericField( "sisenseDatamodelLastBuildTime", "sisenseDatamodelLastBuildTime" ) """ Time (epoch) when this datamodel was last built, in milliseconds. """ SISENSE_DATAMODEL_LAST_SUCCESSFUL_BUILD_TIME: ClassVar[NumericField] = NumericField( "sisenseDatamodelLastSuccessfulBuildTime", "sisenseDatamodelLastSuccessfulBuildTime", ) """ Time (epoch) when this datamodel was last built successfully, in milliseconds. """ SISENSE_DATAMODEL_LAST_PUBLISH_TIME: ClassVar[NumericField] = NumericField( "sisenseDatamodelLastPublishTime", "sisenseDatamodelLastPublishTime" ) """ Time (epoch) when this datamodel was last published, in milliseconds. """ SISENSE_DATAMODEL_TYPE: ClassVar[KeywordField] = KeywordField( "sisenseDatamodelType", "sisenseDatamodelType" ) """ Type of this datamodel, for example: 'extract' or 'custom'. """ SISENSE_DATAMODEL_RELATION_TYPE: ClassVar[KeywordField] = KeywordField( "sisenseDatamodelRelationType", "sisenseDatamodelRelationType" ) """ Default relation type for this datamodel. 'extract' type Datamodels have regular relations by default. 'live' type Datamodels have direct relations by default. """ # noqa: E501 SISENSE_DATAMODEL_TABLES: ClassVar[RelationField] = RelationField( "sisenseDatamodelTables" ) """ TBC """ SISENSE_DASHBOARDS: ClassVar[RelationField] = RelationField("sisenseDashboards") """ TBC """ _convenience_properties: ClassVar[List[str]] = [ "sisense_datamodel_table_count", "sisense_datamodel_server", "sisense_datamodel_revision", "sisense_datamodel_last_build_time", "sisense_datamodel_last_successful_build_time", "sisense_datamodel_last_publish_time", "sisense_datamodel_type", "sisense_datamodel_relation_type", "sisense_datamodel_tables", "sisense_dashboards", ] @property def sisense_datamodel_table_count(self) -> Optional[int]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_table_count ) @sisense_datamodel_table_count.setter def sisense_datamodel_table_count( self, sisense_datamodel_table_count: Optional[int] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_table_count = sisense_datamodel_table_count @property def sisense_datamodel_server(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_server ) @sisense_datamodel_server.setter def sisense_datamodel_server(self, sisense_datamodel_server: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_server = sisense_datamodel_server @property def sisense_datamodel_revision(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_revision ) @sisense_datamodel_revision.setter def sisense_datamodel_revision(self, sisense_datamodel_revision: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_revision = sisense_datamodel_revision @property def sisense_datamodel_last_build_time(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_last_build_time ) @sisense_datamodel_last_build_time.setter def sisense_datamodel_last_build_time( self, sisense_datamodel_last_build_time: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_last_build_time = ( sisense_datamodel_last_build_time ) @property def sisense_datamodel_last_successful_build_time(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_last_successful_build_time ) @sisense_datamodel_last_successful_build_time.setter def sisense_datamodel_last_successful_build_time( self, sisense_datamodel_last_successful_build_time: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_last_successful_build_time = ( sisense_datamodel_last_successful_build_time ) @property def sisense_datamodel_last_publish_time(self) -> Optional[datetime]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_last_publish_time ) @sisense_datamodel_last_publish_time.setter def sisense_datamodel_last_publish_time( self, sisense_datamodel_last_publish_time: Optional[datetime] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_last_publish_time = ( sisense_datamodel_last_publish_time ) @property def sisense_datamodel_type(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_type ) @sisense_datamodel_type.setter def sisense_datamodel_type(self, sisense_datamodel_type: Optional[str]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_type = sisense_datamodel_type @property def sisense_datamodel_relation_type(self) -> Optional[str]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_relation_type ) @sisense_datamodel_relation_type.setter def sisense_datamodel_relation_type( self, sisense_datamodel_relation_type: Optional[str] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_relation_type = ( sisense_datamodel_relation_type ) @property def sisense_datamodel_tables(self) -> Optional[List[SisenseDatamodelTable]]: return ( None if self.attributes is None else self.attributes.sisense_datamodel_tables ) @sisense_datamodel_tables.setter def sisense_datamodel_tables( self, sisense_datamodel_tables: Optional[List[SisenseDatamodelTable]] ): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_datamodel_tables = sisense_datamodel_tables @property def sisense_dashboards(self) -> Optional[List[SisenseDashboard]]: return None if self.attributes is None else self.attributes.sisense_dashboards @sisense_dashboards.setter def sisense_dashboards(self, sisense_dashboards: Optional[List[SisenseDashboard]]): if self.attributes is None: self.attributes = self.Attributes() self.attributes.sisense_dashboards = sisense_dashboards class Attributes(Sisense.Attributes): sisense_datamodel_table_count: Optional[int] = Field( default=None, description="" ) sisense_datamodel_server: Optional[str] = Field(default=None, description="") sisense_datamodel_revision: Optional[str] = Field(default=None, description="") sisense_datamodel_last_build_time: Optional[datetime] = Field( default=None, description="" ) sisense_datamodel_last_successful_build_time: Optional[datetime] = Field( default=None, description="" ) sisense_datamodel_last_publish_time: Optional[datetime] = Field( default=None, description="" ) sisense_datamodel_type: Optional[str] = Field(default=None, description="") sisense_datamodel_relation_type: Optional[str] = Field( default=None, description="" ) sisense_datamodel_tables: Optional[List[SisenseDatamodelTable]] = Field( default=None, description="" ) # relationship sisense_dashboards: Optional[List[SisenseDashboard]] = Field( default=None, description="" ) # relationship attributes: SisenseDatamodel.Attributes = Field( default_factory=lambda: SisenseDatamodel.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 .sisense_dashboard import SisenseDashboard # noqa: E402, F401 from .sisense_datamodel_table import SisenseDatamodelTable # noqa: E402, F401 SisenseDatamodel.Attributes.update_forward_refs()