diff --git a/pyatlan/__init__.py b/pyatlan/__init__.py index 9c5d9422d..8e1d2b89f 100644 --- a/pyatlan/__init__.py +++ b/pyatlan/__init__.py @@ -10,7 +10,9 @@ _install_pydantic_v1_perf() -from pyatlan.utils import REQUEST_ID_FILTER # noqa: E402 (perf patch must install first) +from pyatlan.utils import ( + REQUEST_ID_FILTER, # noqa: E402 (perf patch must install first) +) # Version information try: diff --git a/pyatlan/client/aio/app.py b/pyatlan/client/aio/app.py index abbb189b3..26751e6b9 100644 --- a/pyatlan/client/aio/app.py +++ b/pyatlan/client/aio/app.py @@ -43,9 +43,6 @@ is_duplicate_name_conflict, ) from pyatlan.errors import AtlanError, ErrorCode -from pyatlan.model.apps import AppInput -from pyatlan.model.assets import AppWorkflowRun -from pyatlan.model.fluent_search import CompoundQuery, FluentSearch from pyatlan.model.app import ( AppDeleteResponse, AppInfo, @@ -61,7 +58,9 @@ CreateApp, UpdateApp, ) - +from pyatlan.model.apps import AppInput +from pyatlan.model.assets import AppWorkflowRun +from pyatlan.model.fluent_search import CompoundQuery, FluentSearch LOGGER = logging.getLogger(__name__) diff --git a/pyatlan/client/aio/approval_workflow.py b/pyatlan/client/aio/approval_workflow.py index 80203f3d1..196379ec6 100644 --- a/pyatlan/client/aio/approval_workflow.py +++ b/pyatlan/client/aio/approval_workflow.py @@ -13,11 +13,11 @@ AsyncApiCaller, ) from pyatlan.errors import ErrorCode, InvalidRequestError -from pyatlan.model.enums import ApprovalWorkflowRequestType from pyatlan.model.approval_workflow import ( ApprovalWorkflowBulkActionResponse, ApprovalWorkflowRequest, ) +from pyatlan.model.enums import ApprovalWorkflowRequestType def _raise_if_recipient_scoped(err: InvalidRequestError, group_key: str): diff --git a/pyatlan/client/aio/client.py b/pyatlan/client/aio/client.py index 2a9385a85..080064b02 100644 --- a/pyatlan/client/aio/client.py +++ b/pyatlan/client/aio/client.py @@ -34,6 +34,8 @@ AsyncUserCache, ) from pyatlan.client.aio.admin import AsyncAdminClient +from pyatlan.client.aio.app import AsyncAppClient +from pyatlan.client.aio.approval_workflow import AsyncApprovalWorkflowClient from pyatlan.client.aio.asset import AsyncAssetClient from pyatlan.client.aio.audit import AsyncAuditClient from pyatlan.client.aio.contract import AsyncContractClient @@ -45,15 +47,13 @@ from pyatlan.client.aio.oauth_client import AsyncOAuthClient from pyatlan.client.aio.open_lineage import AsyncOpenLineageClient from pyatlan.client.aio.query import AsyncQueryClient +from pyatlan.client.aio.requests import AsyncRequestsClient from pyatlan.client.aio.role import AsyncRoleClient from pyatlan.client.aio.search_log import AsyncSearchLogClient from pyatlan.client.aio.sso import AsyncSSOClient from pyatlan.client.aio.task import AsyncTaskClient -from pyatlan.client.aio.approval_workflow import AsyncApprovalWorkflowClient -from pyatlan.client.aio.requests import AsyncRequestsClient from pyatlan.client.aio.token import AsyncTokenClient from pyatlan.client.aio.typedef import AsyncTypeDefClient -from pyatlan.client.aio.app import AsyncAppClient from pyatlan.client.aio.user import AsyncUserClient from pyatlan.client.atlan import ( CONNECTION_RETRY, diff --git a/pyatlan/client/app.py b/pyatlan/client/app.py index 772b9f56b..629abb9c5 100644 --- a/pyatlan/client/app.py +++ b/pyatlan/client/app.py @@ -37,10 +37,6 @@ is_duplicate_name_conflict, ) from pyatlan.errors import AtlanError, ErrorCode -from pyatlan.model.apps import AppInput -from pyatlan.model.assets import AppWorkflowRun -from pyatlan.model.enums import AppWorkflowRunStatus -from pyatlan.model.fluent_search import CompoundQuery, FluentSearch from pyatlan.model.app import ( AppDeleteResponse, AppInfo, @@ -56,7 +52,10 @@ CreateApp, UpdateApp, ) - +from pyatlan.model.apps import AppInput +from pyatlan.model.assets import AppWorkflowRun +from pyatlan.model.enums import AppWorkflowRunStatus +from pyatlan.model.fluent_search import CompoundQuery, FluentSearch LOGGER = logging.getLogger(__name__) diff --git a/pyatlan/client/approval_workflow.py b/pyatlan/client/approval_workflow.py index c7894cc6f..a3209a72b 100644 --- a/pyatlan/client/approval_workflow.py +++ b/pyatlan/client/approval_workflow.py @@ -13,11 +13,11 @@ ApprovalWorkflowGetRequest, ) from pyatlan.errors import ErrorCode, InvalidRequestError -from pyatlan.model.enums import ApprovalWorkflowRequestType from pyatlan.model.approval_workflow import ( ApprovalWorkflowBulkActionResponse, ApprovalWorkflowRequest, ) +from pyatlan.model.enums import ApprovalWorkflowRequestType def _raise_if_recipient_scoped(err: InvalidRequestError, group_key: str): diff --git a/pyatlan/client/atlan.py b/pyatlan/client/atlan.py index cfd8bf60f..0afcb43fb 100644 --- a/pyatlan/client/atlan.py +++ b/pyatlan/client/atlan.py @@ -39,6 +39,8 @@ from pyatlan.cache.source_tag_cache import SourceTagCache from pyatlan.cache.user_cache import UserCache from pyatlan.client.admin import AdminClient +from pyatlan.client.app import AppClient +from pyatlan.client.approval_workflow import ApprovalWorkflowClient from pyatlan.client.asset import A, AssetClient, IndexSearchResults, LineageListResults from pyatlan.client.audit import AuditClient from pyatlan.client.common import CONNECTION_RETRY, ImpersonateUser @@ -52,7 +54,6 @@ from pyatlan.client.oauth_client import OAuthClient from pyatlan.client.open_lineage import OpenLineageClient from pyatlan.client.query import QueryClient -from pyatlan.client.approval_workflow import ApprovalWorkflowClient from pyatlan.client.requests import RequestsClient from pyatlan.client.role import RoleClient from pyatlan.client.search_log import SearchLogClient @@ -61,7 +62,6 @@ from pyatlan.client.token import TokenClient from pyatlan.client.transport import PyatlanSyncTransport # type: ignore from pyatlan.client.typedef import TypeDefClient -from pyatlan.client.app import AppClient from pyatlan.client.user import UserClient from pyatlan.errors import ERROR_CODE_FOR_HTTP_STATUS, AtlanError, ErrorCode from pyatlan.model.api_tokens import ApiToken, ApiTokenResponse diff --git a/pyatlan/client/common/__init__.py b/pyatlan/client/common/__init__.py index dc36777d2..a9169a794 100644 --- a/pyatlan/client/common/__init__.py +++ b/pyatlan/client/common/__init__.py @@ -24,6 +24,12 @@ # Admin shared logic classes from .admin import AdminGetAdminEvents, AdminGetKeycloakEvents +# Role shared logic classes +from .approval_workflow import ( + ApprovalWorkflowBulkActionRequests, + ApprovalWorkflowGetRequest, +) + # Asset shared logic classes from .asset import ( DeleteByGuid, @@ -116,12 +122,6 @@ # Query shared logic classes from .query import QueryStream - -# Role shared logic classes -from .approval_workflow import ( - ApprovalWorkflowBulkActionRequests, - ApprovalWorkflowGetRequest, -) from .requests import ( RequestsAction, RequestsCreate, diff --git a/pyatlan/client/common/app.py b/pyatlan/client/common/app.py index df5102f79..0a76fa203 100644 --- a/pyatlan/client/common/app.py +++ b/pyatlan/client/common/app.py @@ -13,10 +13,9 @@ import json from typing import Any, Dict, Optional, Tuple -from pyatlan.errors import AtlanError - from pyatlan.client.constants import ( ADD_APP_SCHEDULE, + API, CANCEL_APP_RUN, CREATE_APP_WORKFLOW, DELETE_APP_WORKFLOW, @@ -29,7 +28,7 @@ SUBMIT_APP_WORKFLOW, UPDATE_APP_WORKFLOW, ) -from pyatlan.client.constants import API +from pyatlan.errors import AtlanError from pyatlan.model.app import ( AppDeleteResponse, AppInfo, diff --git a/pyatlan/model/assets/__init__.pyi b/pyatlan/model/assets/__init__.pyi index b4e6d21c5..5c77f0df9 100644 --- a/pyatlan/model/assets/__init__.pyi +++ b/pyatlan/model/assets/__init__.pyi @@ -498,996 +498,502 @@ __all__ = [ "IndistinctAsset", ] -from .core.referenceable import Referenceable - -from .core.asset import Asset - -from .task import Task - -from .form import Form - -from .data_set import DataSet - -from .core.process import Process - -from .core.atlas_glossary_category import AtlasGlossaryCategory - -from .badge import Badge - -from .core.access_control import AccessControl - -from .process_execution import ProcessExecution - -from .core.auth_policy import AuthPolicy - +from .a_d_l_s import ADLS +from .a_d_l_s_account import ADLSAccount +from .a_d_l_s_container import ADLSContainer +from .a_d_l_s_object import ADLSObject +from .a_p_i import API +from .a_p_i_field import APIField +from .a_p_i_object import APIObject +from .a_p_i_path import APIPath +from .a_p_i_query import APIQuery +from .a_p_i_spec import APISpec +from .a_w_s import AWS +from .anaplan import Anaplan +from .anaplan_app import AnaplanApp +from .anaplan_dimension import AnaplanDimension +from .anaplan_line_item import AnaplanLineItem +from .anaplan_list import AnaplanList +from .anaplan_model import AnaplanModel +from .anaplan_module import AnaplanModule +from .anaplan_page import AnaplanPage +from .anaplan_system_dimension import AnaplanSystemDimension +from .anaplan_view import AnaplanView +from .anaplan_workspace import AnaplanWorkspace +from .asset_grouping import AssetGrouping +from .asset_grouping_collection import AssetGroupingCollection +from .asset_grouping_strategy import AssetGroupingStrategy +from .atlan_app_deployment import AtlanAppDeployment +from .atlan_app_installed import AtlanAppInstalled from .auth_service import AuthService - -from .infrastructure import Infrastructure - +from .azure import Azure +from .azure_event_hub import AzureEventHub +from .azure_event_hub_consumer_group import AzureEventHubConsumerGroup +from .azure_service_bus import AzureServiceBus +from .azure_service_bus_namespace import AzureServiceBusNamespace +from .azure_service_bus_schema import AzureServiceBusSchema +from .azure_service_bus_topic import AzureServiceBusTopic +from .badge import Badge +from .bigquery_tag import BigqueryTag +from .business_policy import BusinessPolicy from .business_policy_exception import BusinessPolicyException - -from .tag_attachment import TagAttachment - -from .connection import Connection - -from .workflow import Workflow - +from .business_policy_incident import BusinessPolicyIncident from .business_policy_log import BusinessPolicyLog - -from .core.stakeholder_title import StakeholderTitle - -from .business_policy import BusinessPolicy - -from .core.catalog import Catalog - -from .core.namespace import Namespace - -from .workflow_run import WorkflowRun - -from .core.flow import Flow - -from .core.atlas_glossary import AtlasGlossary - -from .response import Response - +from .cassandra import Cassandra +from .cassandra_column import CassandraColumn +from .cassandra_index import CassandraIndex +from .cassandra_keyspace import CassandraKeyspace +from .cassandra_table import CassandraTable +from .cassandra_view import CassandraView +from .cognite import Cognite +from .cognite3_d_model import Cognite3DModel +from .cognite_asset import CogniteAsset +from .cognite_event import CogniteEvent +from .cognite_file import CogniteFile +from .cognite_sequence import CogniteSequence +from .cognite_time_series import CogniteTimeSeries +from .cognos import Cognos +from .cognos_column import CognosColumn +from .cognos_dashboard import CognosDashboard +from .cognos_dataset import CognosDataset +from .cognos_datasource import CognosDatasource +from .cognos_exploration import CognosExploration +from .cognos_file import CognosFile +from .cognos_folder import CognosFolder +from .cognos_module import CognosModule +from .cognos_package import CognosPackage +from .cognos_report import CognosReport +from .collection import Collection +from .connection import Connection from .connection_process import ConnectionProcess - -from .core.atlas_glossary_term import AtlasGlossaryTerm - -from .core.cloud import Cloud - -from .incident import Incident - -from .core.flow_dataset_operation import FlowDatasetOperation - -from .core.b_i_process import BIProcess - -from .core.dbt_process import DbtProcess - -from .s_a_p_process import SAPProcess - -from .core.column_process import ColumnProcess - -from .core.persona import Persona - -from .purpose import Purpose - -from .core.app import App - -from .core.airflow import Airflow - -from .unstructured import Unstructured - from .core.a_d_f import ADF - -from .core.s_a_p import SAP - -from .core.agentic import Agentic - -from .core.b_i import BI - -from .core.semantic import Semantic - -from .core.flow_dataset import FlowDataset - -from .event_store import EventStore - -from .core.no_s_q_l import NoSQL - -from .core.partial import Partial - -from .core.app_workflow_run import AppWorkflowRun - -from .core.dbt import Dbt - -from .insight import Insight - -from .core.fivetran import Fivetran - -from .core.data_contract import DataContract - -from .asset_grouping import AssetGrouping - -from .object_store import ObjectStore - -from .notebook import Notebook - -from .core.data_quality import DataQuality - -from .saa_s import SaaS - from .core.a_i import AI - -from .core.resource import Resource - -from .core.flow_field import FlowField - -from .multi_dimensional_dataset import MultiDimensionalDataset - -from .custom import Custom - -from .core.data_mesh import DataMesh - -from .core.s_q_l import SQL - -from .core.sql_insight import SqlInsight - -from .core.matillion import Matillion - -from .core.model import Model - -from .a_p_i import API - -from .core.spark import Spark - -from .core.tag import Tag - -from .core.schema_registry import SchemaRegistry - -from .collection import Collection - -from .core.folder import Folder - -from .core.flow_reusable_unit import FlowReusableUnit - -from .flow_folder import FlowFolder - -from .core.flow_field_operation import FlowFieldOperation - -from .core.flow_control_operation import FlowControlOperation - -from .flow_project import FlowProject - -from .core.google import Google - -from .azure import Azure - -from .a_w_s import AWS - -from .business_policy_incident import BusinessPolicyIncident - -from .s_a_p_column_process import SAPColumnProcess - -from .core.dbt_column_process import DbtColumnProcess - -from .core.stakeholder import Stakeholder - -from .core.application_field import ApplicationField - -from .core.application import Application - -from .core.atlan_app import AtlanApp - -from .core.airflow_dag import AirflowDag - -from .core.airflow_task import AirflowTask - -from .unstructured_folder import UnstructuredFolder - -from .unstructured_object import UnstructuredObject - -from .unstructured_container import UnstructuredContainer - +from .core.a_i_application import AIApplication +from .core.a_i_model import AIModel +from .core.a_i_model_version import AIModelVersion +from .core.access_control import AccessControl +from .core.adf_activity import AdfActivity from .core.adf_dataflow import AdfDataflow - from .core.adf_dataset import AdfDataset - +from .core.adf_linkedservice import AdfLinkedservice from .core.adf_pipeline import AdfPipeline - -from .core.adf_linkedservice import AdfLinkedservice - -from .core.adf_activity import AdfActivity - -from .sap_erp_table import SapErpTable - -from .sap_erp_column import SapErpColumn - -from .sap_erp_abap_program import SapErpAbapProgram - -from .sap_erp_transaction_code import SapErpTransactionCode - -from .sap_erp_component import SapErpComponent - -from .s_a_p_b_w import SAPBW - -from .sap_erp_view import SapErpView - -from .sap_erp_fiori_app import SapErpFioriApp - -from .sap_erp_cds_view import SapErpCdsView - -from .sap_erp_function_module import SapErpFunctionModule - -from .core.sap_datasphere_replication_flow import SapDatasphereReplicationFlow - -from .core.context import Context - from .core.agent import Agent - -from .core.skill import Skill - -from .core.knowledge import Knowledge - +from .core.agentic import Agentic +from .core.airflow import Airflow +from .core.airflow_dag import AirflowDag +from .core.airflow_task import AirflowTask +from .core.anomalo import Anomalo +from .core.anomalo_check import AnomaloCheck +from .core.app import App +from .core.app_workflow_run import AppWorkflowRun +from .core.application import Application +from .core.application_field import ApplicationField from .core.artifact import Artifact - -from .preset import Preset - -from .s_s_r_s import SSRS - -from .mode import Mode - -from .sigma import Sigma - -from .anaplan import Anaplan - -from .tableau import Tableau - -from .looker import Looker - -from .domo import Domo - -from .redash import Redash - -from .sisense import Sisense - -from .core.data_studio import DataStudio - -from .metabase import Metabase - -from .quick_sight import QuickSight - -from .databricks_dashboard import DatabricksDashboard - -from .thoughtspot import Thoughtspot - -from .core.power_b_i import PowerBI - -from .micro_strategy import MicroStrategy - -from .cognos import Cognos - -from .superset import Superset - -from .qlik import Qlik - -from .core.fabric import Fabric - -from .core.semantic_dimension import SemanticDimension - -from .core.semantic_entity import SemanticEntity - -from .core.semantic_model import SemanticModel - -from .semantic_field import SemanticField - -from .core.semantic_measure import SemanticMeasure - -from .kafka import Kafka - -from .azure_service_bus import AzureServiceBus - +from .core.asset import Asset +from .core.atlan_app import AtlanApp +from .core.atlan_app_tool import AtlanAppTool +from .core.atlan_app_workflow import AtlanAppWorkflow +from .core.atlas_glossary import AtlasGlossary +from .core.atlas_glossary_category import AtlasGlossaryCategory +from .core.atlas_glossary_term import AtlasGlossaryTerm +from .core.auth_policy import AuthPolicy +from .core.b_i import BI +from .core.b_i_process import BIProcess +from .core.bigquery_routine import BigqueryRoutine +from .core.calculation_view import CalculationView +from .core.catalog import Catalog +from .core.cloud import Cloud +from .core.column import Column +from .core.column_process import ColumnProcess +from .core.context import Context +from .core.context_artifact import ContextArtifact +from .core.context_repository import ContextRepository from .core.cosmos_mongo_d_b import CosmosMongoDB - -from .core.document_d_b import DocumentDB - -from .cassandra import Cassandra - -from .dynamo_d_b import DynamoDB - -from .mongo_d_b import MongoDB - -from .core.partial_field import PartialField - -from .core.partial_object import PartialObject - -from .core.dbt_model_column import DbtModelColumn - -from .dbt_tag import DbtTag - -from .dbt_dimension import DbtDimension - -from .core.dbt_test import DbtTest - +from .core.cosmos_mongo_d_b_account import CosmosMongoDBAccount +from .core.cosmos_mongo_d_b_collection import CosmosMongoDBCollection +from .core.cosmos_mongo_d_b_database import CosmosMongoDBDatabase +from .core.data_contract import DataContract +from .core.data_domain import DataDomain +from .core.data_mesh import DataMesh +from .core.data_mesh_dataset import DataMeshDataset +from .core.data_product import DataProduct +from .core.data_quality import DataQuality +from .core.data_quality_rule import DataQualityRule +from .core.data_quality_rule_template import DataQualityRuleTemplate +from .core.data_studio import DataStudio +from .core.database import Database +from .core.databricks import Databricks +from .core.databricks_a_i_model_context import DatabricksAIModelContext +from .core.databricks_a_i_model_version import DatabricksAIModelVersion +from .core.databricks_genie_agent import DatabricksGenieAgent +from .core.databricks_metric_view import DatabricksMetricView +from .core.databricks_unity_catalog_tag import DatabricksUnityCatalogTag +from .core.databricks_volume import DatabricksVolume +from .core.databricks_volume_path import DatabricksVolumePath +from .core.dbt import Dbt +from .core.dbt_column_process import DbtColumnProcess +from .core.dbt_metric import DbtMetric from .core.dbt_model import DbtModel - +from .core.dbt_model_column import DbtModelColumn +from .core.dbt_process import DbtProcess from .core.dbt_seed import DbtSeed - -from .dbt_measure import DbtMeasure - -from .dbt_semantic_model import DbtSemanticModel - -from .dbt_entity import DbtEntity - -from .core.dbt_metric import DbtMetric - from .core.dbt_source import DbtSource - -from .core.fivetran_connector import FivetranConnector - -from .asset_grouping_strategy import AssetGroupingStrategy - -from .asset_grouping_collection import AssetGroupingCollection - -from .s3 import S3 - -from .a_d_l_s import ADLS - -from .core.g_c_s import GCS - -from .databricks_notebook import DatabricksNotebook - -from .core.anomalo import Anomalo - -from .core.monte_carlo import MonteCarlo - -from .core.data_quality_rule_template import DataQualityRuleTemplate - -from .core.metric import Metric - -from .core.data_quality_rule import DataQualityRule - -from .core.soda import Soda - -from .sage_maker_unified_studio import SageMakerUnifiedStudio - -from .dataverse import Dataverse - -from .cognite import Cognite - -from .salesforce import Salesforce - -from .sage_maker import SageMaker - -from .core.a_i_application import AIApplication - -from .core.a_i_model_version import AIModelVersion - -from .core.a_i_model import AIModel - -from .readme_template import ReadmeTemplate - -from .core.readme import Readme - -from .core.file import File - -from .core.link import Link - -from .cube import Cube - -from .cube_hierarchy import CubeHierarchy - -from .cube_dimension import CubeDimension - -from .cube_field import CubeField - -from .custom_entity import CustomEntity - -from .core.data_domain import DataDomain - -from .core.data_product import DataProduct - -from .core.data_mesh_dataset import DataMeshDataset - +from .core.dbt_test import DbtTest +from .core.document_d_b import DocumentDB +from .core.document_d_b_collection import DocumentDBCollection +from .core.document_d_b_database import DocumentDBDatabase from .core.dremio import Dremio - -from .core.query import Query - -from .bigquery_tag import BigqueryTag - -from .core.schema import Schema - -from .snowflake_listing import SnowflakeListing - -from .core.materialised_view import MaterialisedView - -from .core.function import Function - -from .core.table_partition import TablePartition - -from .core.column import Column - -from .core.snowflake import Snowflake - -from .snowflake_share import SnowflakeShare - -from .core.databricks_unity_catalog_tag import DatabricksUnityCatalogTag - -from .core.snowflake_stream import SnowflakeStream - -from .core.calculation_view import CalculationView - -from .core.database import Database - -from .core.procedure import Procedure - -from .core.table import Table - -from .core.snowflake_pipe import SnowflakePipe - -from .core.view import View - -from .core.snowflake_stage import SnowflakeStage - -from .starburst import Starburst - -from .iceberg import Iceberg - -from .core.databricks import Databricks - -from .core.snowflake_tag import SnowflakeTag - -from .core.sql_insight_filter import SqlInsightFilter - -from .core.sql_insight_business_question import SqlInsightBusinessQuestion - -from .core.sql_insight_join import SqlInsightJoin - -from .core.matillion_group import MatillionGroup - -from .core.matillion_job import MatillionJob - -from .core.matillion_project import MatillionProject - -from .core.matillion_component import MatillionComponent - -from .core.model_attribute import ModelAttribute - -from .core.model_entity import ModelEntity - -from .core.model_version import ModelVersion - -from .core.model_entity_association import ModelEntityAssociation - -from .core.model_attribute_association import ModelAttributeAssociation - -from .core.model_data_model import ModelDataModel - -from .a_p_i_spec import APISpec - -from .a_p_i_query import APIQuery - -from .a_p_i_object import APIObject - -from .a_p_i_path import APIPath - -from .a_p_i_field import APIField - -from .core.spark_job import SparkJob - -from .source_tag import SourceTag - -from .core.schema_registry_subject import SchemaRegistrySubject - -from .core.schema_registry_version import SchemaRegistryVersion - -from .data_studio_asset import DataStudioAsset - -from .core.g_c_p_dataplex import GCPDataplex - -from .core.atlan_app_workflow import AtlanAppWorkflow - -from .atlan_app_deployment import AtlanAppDeployment - -from .atlan_app_installed import AtlanAppInstalled - -from .core.atlan_app_tool import AtlanAppTool - -from .s_a_p_b_w_a_d_s_o import SAPBWADSO - -from .s_a_p_b_w_info_source import SAPBWInfoSource - -from .s_a_p_b_w_a_d_s_o_field import SAPBWADSOField - -from .s_a_p_b_w_data_source import SAPBWDataSource - -from .s_a_p_b_w_d_t_p import SAPBWDTP - -from .s_a_p_b_w_composite_provider_field import SAPBWCompositeProviderField - -from .s_a_p_b_w_info_object import SAPBWInfoObject - -from .s_a_p_b_w_query_element import SAPBWQueryElement - -from .s_a_p_b_w_transformation import SAPBWTransformation - -from .s_a_p_b_w_data_source_field import SAPBWDataSourceField - -from .s_a_p_b_w_info_area import SAPBWInfoArea - -from .s_a_p_b_w_info_source_field import SAPBWInfoSourceField - -from .s_a_p_b_w_query import SAPBWQuery - -from .s_a_p_b_w_composite_provider import SAPBWCompositeProvider - -from .core.context_repository import ContextRepository - -from .core.context_artifact import ContextArtifact - -from .core.databricks_genie_agent import DatabricksGenieAgent - -from .core.knowledge_folder import KnowledgeFolder - -from .core.knowledge_file import KnowledgeFile - -from .core.skill_artifact import SkillArtifact - -from .preset_chart import PresetChart - -from .preset_dataset import PresetDataset - -from .preset_dashboard import PresetDashboard - -from .preset_workspace import PresetWorkspace - -from .s_s_r_s_report import SSRSReport - -from .s_s_r_s_field import SSRSField - -from .s_s_r_s_data_set import SSRSDataSet - -from .s_s_r_s_folder import SSRSFolder - -from .mode_report import ModeReport - -from .mode_query import ModeQuery - -from .mode_chart import ModeChart - -from .mode_workspace import ModeWorkspace - -from .mode_collection import ModeCollection - -from .sigma_dataset_column import SigmaDatasetColumn - -from .sigma_dataset import SigmaDataset - -from .sigma_data_model import SigmaDataModel - -from .sigma_workbook import SigmaWorkbook - -from .sigma_page import SigmaPage - -from .sigma_data_model_column import SigmaDataModelColumn - -from .sigma_data_element_field import SigmaDataElementField - -from .sigma_data_element import SigmaDataElement - -from .anaplan_page import AnaplanPage - -from .anaplan_list import AnaplanList - -from .anaplan_line_item import AnaplanLineItem - -from .anaplan_workspace import AnaplanWorkspace - -from .anaplan_module import AnaplanModule - -from .anaplan_model import AnaplanModel - -from .anaplan_app import AnaplanApp - -from .anaplan_system_dimension import AnaplanSystemDimension - -from .anaplan_dimension import AnaplanDimension - -from .anaplan_view import AnaplanView - -from .tableau_workbook import TableauWorkbook - -from .tableau_worksheet_field import TableauWorksheetField - -from .tableau_datasource_field import TableauDatasourceField - -from .tableau_calculated_field import TableauCalculatedField - -from .tableau_project import TableauProject - -from .tableau_dashboard_field import TableauDashboardField - -from .tableau_metric import TableauMetric - -from .tableau_site import TableauSite - -from .tableau_datasource import TableauDatasource - -from .tableau_dashboard import TableauDashboard - -from .tableau_flow import TableauFlow - -from .tableau_worksheet import TableauWorksheet - -from .looker_look import LookerLook - -from .looker_dashboard import LookerDashboard - -from .looker_folder import LookerFolder - -from .looker_tile import LookerTile - -from .looker_model import LookerModel - -from .looker_explore import LookerExplore - -from .looker_project import LookerProject - -from .looker_query import LookerQuery - -from .looker_field import LookerField - -from .looker_view import LookerView - -from .domo_dataset import DomoDataset - -from .domo_card import DomoCard - -from .domo_dataset_column import DomoDatasetColumn - -from .domo_dashboard import DomoDashboard - -from .redash_dashboard import RedashDashboard - -from .redash_query import RedashQuery - -from .redash_visualization import RedashVisualization - -from .sisense_folder import SisenseFolder - -from .sisense_widget import SisenseWidget - -from .sisense_datamodel import SisenseDatamodel - -from .sisense_datamodel_table import SisenseDatamodelTable - -from .sisense_dashboard import SisenseDashboard - -from .metabase_question import MetabaseQuestion - -from .metabase_collection import MetabaseCollection - -from .metabase_dashboard import MetabaseDashboard - -from .quick_sight_folder import QuickSightFolder - -from .quick_sight_dashboard_visual import QuickSightDashboardVisual - -from .quick_sight_dataset_field import QuickSightDatasetField - -from .quick_sight_analysis_visual import QuickSightAnalysisVisual - -from .quick_sight_analysis import QuickSightAnalysis - -from .quick_sight_dashboard import QuickSightDashboard - -from .quick_sight_dataset import QuickSightDataset - -from .thoughtspot_worksheet import ThoughtspotWorksheet - -from .thoughtspot_liveboard import ThoughtspotLiveboard - -from .thoughtspot_table import ThoughtspotTable - -from .thoughtspot_view import ThoughtspotView - -from .thoughtspot_column import ThoughtspotColumn - -from .thoughtspot_dashlet import ThoughtspotDashlet - -from .thoughtspot_answer import ThoughtspotAnswer - -from .core.power_b_i_report import PowerBIReport - -from .core.power_b_i_datasource import PowerBIDatasource - -from .core.power_b_i_workspace import PowerBIWorkspace - -from .core.power_b_i_dashboard import PowerBIDashboard - -from .core.power_b_i_dataflow import PowerBIDataflow - -from .core.power_b_i_dataflow_entity_column import PowerBIDataflowEntityColumn - -from .core.power_b_i_measure import PowerBIMeasure - -from .core.power_b_i_column import PowerBIColumn - -from .core.power_b_i_table import PowerBITable - -from .core.power_b_i_tile import PowerBITile - -from .core.power_b_i_dataset import PowerBIDataset - -from .core.power_b_i_app import PowerBIApp - -from .core.power_b_i_page import PowerBIPage - -from .micro_strategy_report import MicroStrategyReport - -from .micro_strategy_project import MicroStrategyProject - -from .micro_strategy_metric import MicroStrategyMetric - -from .micro_strategy_dossier import MicroStrategyDossier - -from .micro_strategy_fact import MicroStrategyFact - -from .micro_strategy_cube import MicroStrategyCube - -from .micro_strategy_column import MicroStrategyColumn - -from .micro_strategy_document import MicroStrategyDocument - -from .micro_strategy_attribute import MicroStrategyAttribute - -from .micro_strategy_visualization import MicroStrategyVisualization - -from .cognos_column import CognosColumn - -from .cognos_exploration import CognosExploration - -from .cognos_dataset import CognosDataset - -from .cognos_dashboard import CognosDashboard - -from .cognos_report import CognosReport - -from .cognos_module import CognosModule - -from .cognos_file import CognosFile - -from .cognos_folder import CognosFolder - -from .cognos_package import CognosPackage - -from .cognos_datasource import CognosDatasource - -from .superset_dataset import SupersetDataset - -from .superset_chart import SupersetChart - -from .superset_dashboard import SupersetDashboard - -from .qlik_column import QlikColumn - -from .qlik_space import QlikSpace - -from .qlik_app import QlikApp - -from .qlik_chart import QlikChart - -from .qlik_dataset import QlikDataset - -from .qlik_sheet import QlikSheet - -from .core.fabric_visual import FabricVisual - -from .core.fabric_dashboard import FabricDashboard - -from .core.fabric_dataflow import FabricDataflow - +from .core.dremio_column import DremioColumn +from .core.dremio_folder import DremioFolder +from .core.dremio_physical_dataset import DremioPhysicalDataset +from .core.dremio_source import DremioSource +from .core.dremio_space import DremioSpace +from .core.dremio_virtual_dataset import DremioVirtualDataset +from .core.dynamo_d_b_secondary_index import DynamoDBSecondaryIndex +from .core.fabric import Fabric from .core.fabric_activity import FabricActivity - -from .core.fabric_page import FabricPage - -from .core.fabric_workspace import FabricWorkspace - +from .core.fabric_dashboard import FabricDashboard from .core.fabric_data_pipeline import FabricDataPipeline - -from .core.fabric_semantic_model_table import FabricSemanticModelTable - -from .core.fabric_semantic_model_table_column import FabricSemanticModelTableColumn - +from .core.fabric_dataflow import FabricDataflow from .core.fabric_dataflow_entity_column import FabricDataflowEntityColumn - +from .core.fabric_page import FabricPage from .core.fabric_report import FabricReport - from .core.fabric_semantic_model import FabricSemanticModel - +from .core.fabric_semantic_model_table import FabricSemanticModelTable +from .core.fabric_semantic_model_table_column import FabricSemanticModelTableColumn +from .core.fabric_visual import FabricVisual +from .core.fabric_workspace import FabricWorkspace +from .core.file import File +from .core.fivetran import Fivetran +from .core.fivetran_connector import FivetranConnector +from .core.flow import Flow +from .core.flow_control_operation import FlowControlOperation +from .core.flow_dataset import FlowDataset +from .core.flow_dataset_operation import FlowDatasetOperation +from .core.flow_field import FlowField +from .core.flow_field_operation import FlowFieldOperation +from .core.flow_reusable_unit import FlowReusableUnit +from .core.folder import Folder +from .core.function import Function +from .core.g_c_p_dataplex import GCPDataplex +from .core.g_c_p_dataplex_aspect_type import GCPDataplexAspectType +from .core.g_c_s import GCS +from .core.google import Google +from .core.indistinct_asset import IndistinctAsset +from .core.knowledge import Knowledge +from .core.knowledge_file import KnowledgeFile +from .core.knowledge_folder import KnowledgeFolder +from .core.link import Link +from .core.m_c_incident import MCIncident +from .core.m_c_monitor import MCMonitor +from .core.materialised_view import MaterialisedView +from .core.matillion import Matillion +from .core.matillion_component import MatillionComponent +from .core.matillion_group import MatillionGroup +from .core.matillion_job import MatillionJob +from .core.matillion_project import MatillionProject +from .core.metric import Metric +from .core.model import Model +from .core.model_attribute import ModelAttribute +from .core.model_attribute_association import ModelAttributeAssociation +from .core.model_data_model import ModelDataModel +from .core.model_entity import ModelEntity +from .core.model_entity_association import ModelEntityAssociation +from .core.model_version import ModelVersion +from .core.mongo_d_b_collection import MongoDBCollection +from .core.mongo_d_b_database import MongoDBDatabase +from .core.monte_carlo import MonteCarlo +from .core.namespace import Namespace +from .core.no_s_q_l import NoSQL +from .core.partial import Partial +from .core.partial_field import PartialField +from .core.partial_object import PartialObject +from .core.persona import Persona +from .core.power_b_i import PowerBI +from .core.power_b_i_app import PowerBIApp +from .core.power_b_i_column import PowerBIColumn +from .core.power_b_i_dashboard import PowerBIDashboard +from .core.power_b_i_dataflow import PowerBIDataflow +from .core.power_b_i_dataflow_entity_column import PowerBIDataflowEntityColumn +from .core.power_b_i_dataset import PowerBIDataset +from .core.power_b_i_datasource import PowerBIDatasource +from .core.power_b_i_measure import PowerBIMeasure +from .core.power_b_i_page import PowerBIPage +from .core.power_b_i_report import PowerBIReport +from .core.power_b_i_table import PowerBITable +from .core.power_b_i_tile import PowerBITile +from .core.power_b_i_workspace import PowerBIWorkspace +from .core.procedure import Procedure +from .core.process import Process +from .core.query import Query +from .core.readme import Readme +from .core.referenceable import Referenceable +from .core.resource import Resource +from .core.s_a_p import SAP +from .core.s_q_l import SQL +from .core.sap_datasphere_replication_flow import SapDatasphereReplicationFlow +from .core.schema import Schema +from .core.schema_registry import SchemaRegistry +from .core.schema_registry_subject import SchemaRegistrySubject +from .core.schema_registry_version import SchemaRegistryVersion +from .core.semantic import Semantic +from .core.semantic_dimension import SemanticDimension +from .core.semantic_entity import SemanticEntity +from .core.semantic_measure import SemanticMeasure +from .core.semantic_model import SemanticModel +from .core.skill import Skill +from .core.skill_artifact import SkillArtifact +from .core.snowflake import Snowflake +from .core.snowflake_a_i_model_context import SnowflakeAIModelContext +from .core.snowflake_a_i_model_version import SnowflakeAIModelVersion +from .core.snowflake_dynamic_table import SnowflakeDynamicTable +from .core.snowflake_pipe import SnowflakePipe from .core.snowflake_semantic_dimension import SnowflakeSemanticDimension - +from .core.snowflake_semantic_fact import SnowflakeSemanticFact from .core.snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable - +from .core.snowflake_semantic_metric import SnowflakeSemanticMetric from .core.snowflake_semantic_view import SnowflakeSemanticView - -from .core.snowflake_semantic_fact import SnowflakeSemanticFact - +from .core.snowflake_stage import SnowflakeStage +from .core.snowflake_stream import SnowflakeStream +from .core.snowflake_tag import SnowflakeTag +from .core.soda import Soda +from .core.soda_check import SodaCheck +from .core.spark import Spark +from .core.spark_job import SparkJob +from .core.sql_insight import SqlInsight +from .core.sql_insight_business_question import SqlInsightBusinessQuestion +from .core.sql_insight_filter import SqlInsightFilter +from .core.sql_insight_join import SqlInsightJoin +from .core.stakeholder import Stakeholder +from .core.stakeholder_title import StakeholderTitle +from .core.starburst_dataset import StarburstDataset +from .core.starburst_dataset_column import StarburstDatasetColumn +from .core.table import Table +from .core.table_partition import TablePartition +from .core.tag import Tag +from .core.view import View +from .cube import Cube +from .cube_dimension import CubeDimension +from .cube_field import CubeField +from .cube_hierarchy import CubeHierarchy +from .custom import Custom +from .custom_entity import CustomEntity +from .data_set import DataSet +from .data_studio_asset import DataStudioAsset +from .databricks_dashboard import DatabricksDashboard +from .databricks_external_location import DatabricksExternalLocation +from .databricks_external_location_path import DatabricksExternalLocationPath +from .databricks_notebook import DatabricksNotebook +from .dataverse import Dataverse +from .dataverse_attribute import DataverseAttribute +from .dataverse_entity import DataverseEntity +from .dbt_dimension import DbtDimension +from .dbt_entity import DbtEntity +from .dbt_measure import DbtMeasure +from .dbt_semantic_model import DbtSemanticModel +from .dbt_tag import DbtTag +from .domo import Domo +from .domo_card import DomoCard +from .domo_dashboard import DomoDashboard +from .domo_dataset import DomoDataset +from .domo_dataset_column import DomoDatasetColumn +from .dynamo_d_b import DynamoDB +from .dynamo_d_b_attribute import DynamoDBAttribute +from .dynamo_d_b_global_secondary_index import DynamoDBGlobalSecondaryIndex +from .dynamo_d_b_local_secondary_index import DynamoDBLocalSecondaryIndex +from .dynamo_dbtable import DynamoDBTable +from .event_store import EventStore +from .flow_folder import FlowFolder +from .flow_project import FlowProject +from .form import Form +from .g_c_s_bucket import GCSBucket +from .g_c_s_object import GCSObject +from .iceberg import Iceberg +from .iceberg_catalog import IcebergCatalog +from .iceberg_column import IcebergColumn +from .iceberg_namespace import IcebergNamespace +from .iceberg_table import IcebergTable +from .incident import Incident +from .infrastructure import Infrastructure +from .insight import Insight +from .kafka import Kafka from .kafka_cluster import KafkaCluster - +from .kafka_consumer_group import KafkaConsumerGroup from .kafka_field import KafkaField - from .kafka_topic import KafkaTopic - -from .kafka_consumer_group import KafkaConsumerGroup - -from .azure_service_bus_namespace import AzureServiceBusNamespace - -from .azure_service_bus_schema import AzureServiceBusSchema - -from .azure_service_bus_topic import AzureServiceBusTopic - -from .core.cosmos_mongo_d_b_collection import CosmosMongoDBCollection - -from .core.cosmos_mongo_d_b_account import CosmosMongoDBAccount - -from .core.cosmos_mongo_d_b_database import CosmosMongoDBDatabase - -from .core.document_d_b_collection import DocumentDBCollection - -from .core.document_d_b_database import DocumentDBDatabase - -from .cassandra_table import CassandraTable - -from .cassandra_view import CassandraView - -from .cassandra_column import CassandraColumn - -from .cassandra_index import CassandraIndex - -from .cassandra_keyspace import CassandraKeyspace - -from .core.dynamo_d_b_secondary_index import DynamoDBSecondaryIndex - -from .dynamo_d_b_attribute import DynamoDBAttribute - -from .dynamo_dbtable import DynamoDBTable - -from .core.mongo_d_b_collection import MongoDBCollection - -from .core.mongo_d_b_database import MongoDBDatabase - +from .looker import Looker +from .looker_dashboard import LookerDashboard +from .looker_explore import LookerExplore +from .looker_field import LookerField +from .looker_folder import LookerFolder +from .looker_look import LookerLook +from .looker_model import LookerModel +from .looker_project import LookerProject +from .looker_query import LookerQuery +from .looker_tile import LookerTile +from .looker_view import LookerView +from .metabase import Metabase +from .metabase_collection import MetabaseCollection +from .metabase_dashboard import MetabaseDashboard +from .metabase_question import MetabaseQuestion +from .micro_strategy import MicroStrategy +from .micro_strategy_attribute import MicroStrategyAttribute +from .micro_strategy_column import MicroStrategyColumn +from .micro_strategy_cube import MicroStrategyCube +from .micro_strategy_document import MicroStrategyDocument +from .micro_strategy_dossier import MicroStrategyDossier +from .micro_strategy_fact import MicroStrategyFact +from .micro_strategy_metric import MicroStrategyMetric +from .micro_strategy_project import MicroStrategyProject +from .micro_strategy_report import MicroStrategyReport +from .micro_strategy_visualization import MicroStrategyVisualization +from .mode import Mode +from .mode_chart import ModeChart +from .mode_collection import ModeCollection +from .mode_query import ModeQuery +from .mode_report import ModeReport +from .mode_workspace import ModeWorkspace +from .mongo_d_b import MongoDB +from .multi_dimensional_dataset import MultiDimensionalDataset +from .notebook import Notebook +from .object_store import ObjectStore +from .preset import Preset +from .preset_chart import PresetChart +from .preset_dashboard import PresetDashboard +from .preset_dataset import PresetDataset +from .preset_workspace import PresetWorkspace +from .process_execution import ProcessExecution +from .purpose import Purpose +from .qlik import Qlik +from .qlik_app import QlikApp +from .qlik_chart import QlikChart +from .qlik_column import QlikColumn +from .qlik_dataset import QlikDataset +from .qlik_sheet import QlikSheet +from .qlik_space import QlikSpace +from .qlik_stream import QlikStream +from .quick_sight import QuickSight +from .quick_sight_analysis import QuickSightAnalysis +from .quick_sight_analysis_visual import QuickSightAnalysisVisual +from .quick_sight_dashboard import QuickSightDashboard +from .quick_sight_dashboard_visual import QuickSightDashboardVisual +from .quick_sight_dataset import QuickSightDataset +from .quick_sight_dataset_field import QuickSightDatasetField +from .quick_sight_folder import QuickSightFolder +from .readme_template import ReadmeTemplate +from .redash import Redash +from .redash_dashboard import RedashDashboard +from .redash_query import RedashQuery +from .redash_visualization import RedashVisualization +from .response import Response +from .s3 import S3 from .s3_bucket import S3Bucket - -from .s3_prefix import S3Prefix - from .s3_object import S3Object - -from .a_d_l_s_account import ADLSAccount - -from .a_d_l_s_container import ADLSContainer - -from .a_d_l_s_object import ADLSObject - -from .g_c_s_object import GCSObject - -from .g_c_s_bucket import GCSBucket - -from .core.anomalo_check import AnomaloCheck - -from .core.m_c_incident import MCIncident - -from .core.m_c_monitor import MCMonitor - -from .core.snowflake_semantic_metric import SnowflakeSemanticMetric - -from .core.soda_check import SodaCheck - -from .sage_maker_unified_studio_project import SageMakerUnifiedStudioProject - +from .s3_prefix import S3Prefix +from .s_a_p_b_w import SAPBW +from .s_a_p_b_w_a_d_s_o import SAPBWADSO +from .s_a_p_b_w_a_d_s_o_field import SAPBWADSOField +from .s_a_p_b_w_composite_provider import SAPBWCompositeProvider +from .s_a_p_b_w_composite_provider_field import SAPBWCompositeProviderField +from .s_a_p_b_w_d_t_p import SAPBWDTP +from .s_a_p_b_w_data_source import SAPBWDataSource +from .s_a_p_b_w_data_source_field import SAPBWDataSourceField +from .s_a_p_b_w_info_area import SAPBWInfoArea +from .s_a_p_b_w_info_object import SAPBWInfoObject +from .s_a_p_b_w_info_source import SAPBWInfoSource +from .s_a_p_b_w_info_source_field import SAPBWInfoSourceField +from .s_a_p_b_w_query import SAPBWQuery +from .s_a_p_b_w_query_element import SAPBWQueryElement +from .s_a_p_b_w_transformation import SAPBWTransformation +from .s_a_p_column_process import SAPColumnProcess +from .s_a_p_process import SAPProcess +from .s_s_r_s import SSRS +from .s_s_r_s_data_set import SSRSDataSet +from .s_s_r_s_field import SSRSField +from .s_s_r_s_folder import SSRSFolder +from .s_s_r_s_report import SSRSReport +from .saa_s import SaaS +from .sage_maker import SageMaker +from .sage_maker_feature import SageMakerFeature +from .sage_maker_feature_group import SageMakerFeatureGroup +from .sage_maker_model import SageMakerModel +from .sage_maker_model_deployment import SageMakerModelDeployment +from .sage_maker_model_group import SageMakerModelGroup +from .sage_maker_unified_studio import SageMakerUnifiedStudio from .sage_maker_unified_studio_asset import SageMakerUnifiedStudioAsset - -from .sage_maker_unified_studio_subscribed_asset import ( - SageMakerUnifiedStudioSubscribedAsset, -) - +from .sage_maker_unified_studio_asset_schema import SageMakerUnifiedStudioAssetSchema +from .sage_maker_unified_studio_project import SageMakerUnifiedStudioProject from .sage_maker_unified_studio_published_asset import ( SageMakerUnifiedStudioPublishedAsset, ) - -from .sage_maker_unified_studio_asset_schema import SageMakerUnifiedStudioAssetSchema - -from .dataverse_attribute import DataverseAttribute - -from .dataverse_entity import DataverseEntity - -from .cognite_event import CogniteEvent - -from .cognite_asset import CogniteAsset - -from .cognite3_d_model import Cognite3DModel - -from .cognite_sequence import CogniteSequence - -from .cognite_time_series import CogniteTimeSeries - -from .cognite_file import CogniteFile - -from .salesforce_object import SalesforceObject - +from .sage_maker_unified_studio_subscribed_asset import ( + SageMakerUnifiedStudioSubscribedAsset, +) +from .salesforce import Salesforce +from .salesforce_dashboard import SalesforceDashboard from .salesforce_field import SalesforceField - +from .salesforce_object import SalesforceObject from .salesforce_organization import SalesforceOrganization - -from .salesforce_dashboard import SalesforceDashboard - from .salesforce_report import SalesforceReport - -from .sage_maker_model import SageMakerModel - -from .sage_maker_model_group import SageMakerModelGroup - -from .sage_maker_feature import SageMakerFeature - -from .sage_maker_feature_group import SageMakerFeatureGroup - -from .sage_maker_model_deployment import SageMakerModelDeployment - -from .core.databricks_a_i_model_version import DatabricksAIModelVersion - -from .core.snowflake_a_i_model_version import SnowflakeAIModelVersion - -from .core.snowflake_a_i_model_context import SnowflakeAIModelContext - -from .core.databricks_a_i_model_context import DatabricksAIModelContext - -from .core.dremio_virtual_dataset import DremioVirtualDataset - -from .core.dremio_column import DremioColumn - -from .core.dremio_space import DremioSpace - -from .core.dremio_physical_dataset import DremioPhysicalDataset - -from .core.dremio_folder import DremioFolder - -from .core.dremio_source import DremioSource - -from .iceberg_namespace import IcebergNamespace - -from .core.starburst_dataset_column import StarburstDatasetColumn - -from .iceberg_column import IcebergColumn - -from .iceberg_catalog import IcebergCatalog - -from .core.bigquery_routine import BigqueryRoutine - -from .core.snowflake_dynamic_table import SnowflakeDynamicTable - -from .core.starburst_dataset import StarburstDataset - -from .iceberg_table import IcebergTable - -from .core.databricks_metric_view import DatabricksMetricView - -from .core.databricks_volume import DatabricksVolume - -from .databricks_external_location import DatabricksExternalLocation - -from .databricks_external_location_path import DatabricksExternalLocationPath - -from .core.databricks_volume_path import DatabricksVolumePath - -from .core.g_c_p_dataplex_aspect_type import GCPDataplexAspectType - -from .qlik_stream import QlikStream - -from .azure_event_hub import AzureEventHub - -from .azure_event_hub_consumer_group import AzureEventHubConsumerGroup - -from .dynamo_d_b_local_secondary_index import DynamoDBLocalSecondaryIndex - -from .dynamo_d_b_global_secondary_index import DynamoDBGlobalSecondaryIndex - -from .core.indistinct_asset import IndistinctAsset +from .sap_erp_abap_program import SapErpAbapProgram +from .sap_erp_cds_view import SapErpCdsView +from .sap_erp_column import SapErpColumn +from .sap_erp_component import SapErpComponent +from .sap_erp_fiori_app import SapErpFioriApp +from .sap_erp_function_module import SapErpFunctionModule +from .sap_erp_table import SapErpTable +from .sap_erp_transaction_code import SapErpTransactionCode +from .sap_erp_view import SapErpView +from .semantic_field import SemanticField +from .sigma import Sigma +from .sigma_data_element import SigmaDataElement +from .sigma_data_element_field import SigmaDataElementField +from .sigma_data_model import SigmaDataModel +from .sigma_data_model_column import SigmaDataModelColumn +from .sigma_dataset import SigmaDataset +from .sigma_dataset_column import SigmaDatasetColumn +from .sigma_page import SigmaPage +from .sigma_workbook import SigmaWorkbook +from .sisense import Sisense +from .sisense_dashboard import SisenseDashboard +from .sisense_datamodel import SisenseDatamodel +from .sisense_datamodel_table import SisenseDatamodelTable +from .sisense_folder import SisenseFolder +from .sisense_widget import SisenseWidget +from .snowflake_listing import SnowflakeListing +from .snowflake_share import SnowflakeShare +from .source_tag import SourceTag +from .starburst import Starburst +from .superset import Superset +from .superset_chart import SupersetChart +from .superset_dashboard import SupersetDashboard +from .superset_dataset import SupersetDataset +from .tableau import Tableau +from .tableau_calculated_field import TableauCalculatedField +from .tableau_dashboard import TableauDashboard +from .tableau_dashboard_field import TableauDashboardField +from .tableau_datasource import TableauDatasource +from .tableau_datasource_field import TableauDatasourceField +from .tableau_flow import TableauFlow +from .tableau_metric import TableauMetric +from .tableau_project import TableauProject +from .tableau_site import TableauSite +from .tableau_workbook import TableauWorkbook +from .tableau_worksheet import TableauWorksheet +from .tableau_worksheet_field import TableauWorksheetField +from .tag_attachment import TagAttachment +from .task import Task +from .thoughtspot import Thoughtspot +from .thoughtspot_answer import ThoughtspotAnswer +from .thoughtspot_column import ThoughtspotColumn +from .thoughtspot_dashlet import ThoughtspotDashlet +from .thoughtspot_liveboard import ThoughtspotLiveboard +from .thoughtspot_table import ThoughtspotTable +from .thoughtspot_view import ThoughtspotView +from .thoughtspot_worksheet import ThoughtspotWorksheet +from .unstructured import Unstructured +from .unstructured_container import UnstructuredContainer +from .unstructured_folder import UnstructuredFolder +from .unstructured_object import UnstructuredObject +from .workflow import Workflow +from .workflow_run import WorkflowRun diff --git a/pyatlan/model/assets/azure_event_hub.py b/pyatlan/model/assets/azure_event_hub.py index bcff4c992..03e02923b 100644 --- a/pyatlan/model/assets/azure_event_hub.py +++ b/pyatlan/model/assets/azure_event_hub.py @@ -46,7 +46,7 @@ def __setattr__(self, name, value): "azureEventHubStatus", "azureEventHubStatus" ) """ - + """ _convenience_properties: ClassVar[List[str]] = [ diff --git a/pyatlan/model/assets/bigquery_tag.py b/pyatlan/model/assets/bigquery_tag.py index 4a40b93bc..9bfc9acb1 100644 --- a/pyatlan/model/assets/bigquery_tag.py +++ b/pyatlan/model/assets/bigquery_tag.py @@ -1156,8 +1156,12 @@ class Attributes(Tag.Attributes): from .core.dbt_seed import DbtSeed # noqa: E402, F401 from .core.dbt_source import DbtSource # noqa: E402, F401 from .core.dbt_test import DbtTest # noqa: E402, F401 -from .core.snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .core.sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .core.snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .core.sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .core.sql_insight_join import SqlInsightJoin # noqa: E402, F401 BigqueryTag.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/connection.py b/pyatlan/model/assets/connection.py index 0372a12ac..4711da53d 100644 --- a/pyatlan/model/assets/connection.py +++ b/pyatlan/model/assets/connection.py @@ -376,7 +376,7 @@ def __setattr__(self, name, value): "connectionDbtEnvironments", "connectionDbtEnvironments" ) """ - + """ CONNECTION_SSO_CREDENTIAL_GUID: ClassVar[KeywordField] = KeywordField( "connectionSSOCredentialGuid", "connectionSSOCredentialGuid" @@ -406,13 +406,13 @@ def __setattr__(self, name, value): "vectorEmbeddingsEnabled", "vectorEmbeddingsEnabled" ) """ - + """ VECTOR_EMBEDDINGS_UPDATED_AT: ClassVar[NumericField] = NumericField( "vectorEmbeddingsUpdatedAt", "vectorEmbeddingsUpdatedAt" ) """ - + """ CONNECTION_SOURCE_ACCOUNT_IDENTIFIER: ClassVar[KeywordField] = KeywordField( "connectionSourceAccountIdentifier", "connectionSourceAccountIdentifier" diff --git a/pyatlan/model/assets/core/asset.py b/pyatlan/model/assets/core/asset.py index 7e561c0da..ee7d122fd 100644 --- a/pyatlan/model/assets/core/asset.py +++ b/pyatlan/model/assets/core/asset.py @@ -1063,13 +1063,13 @@ def __setattr__(self, name, value): "assetSodaLastSyncRunAt", "assetSodaLastSyncRunAt" ) """ - + """ ASSET_SODA_LAST_SCAN_AT: ClassVar[NumericField] = NumericField( "assetSodaLastScanAt", "assetSodaLastScanAt" ) """ - + """ ASSET_SODA_CHECK_STATUSES: ClassVar[TextField] = TextField( "assetSodaCheckStatuses", "assetSodaCheckStatuses" @@ -1081,7 +1081,7 @@ def __setattr__(self, name, value): "assetSodaSourceURL", "assetSodaSourceURL" ) """ - + """ ASSET_ICON: ClassVar[TextField] = TextField("assetIcon", "assetIcon") """ @@ -1147,7 +1147,7 @@ def __setattr__(self, name, value): "isAIGenerated", "isAIGenerated" ) """ - + """ ASSET_COVER_IMAGE: ClassVar[TextField] = TextField( "assetCoverImage", "assetCoverImage" diff --git a/pyatlan/model/assets/core/atlas_glossary.py b/pyatlan/model/assets/core/atlas_glossary.py index fee4135ad..1a216dd1b 100644 --- a/pyatlan/model/assets/core/atlas_glossary.py +++ b/pyatlan/model/assets/core/atlas_glossary.py @@ -100,7 +100,7 @@ def __setattr__(self, name, value): """ GLOSSARY_TYPE: ClassVar[KeywordField] = KeywordField("glossaryType", "glossaryType") """ - + """ TERMS: ClassVar[RelationField] = RelationField("terms") diff --git a/pyatlan/model/assets/core/atlas_glossary_category.py b/pyatlan/model/assets/core/atlas_glossary_category.py index 33a13b5b1..b914fd855 100644 --- a/pyatlan/model/assets/core/atlas_glossary_category.py +++ b/pyatlan/model/assets/core/atlas_glossary_category.py @@ -178,7 +178,7 @@ def __setattr__(self, name, value): """ CATEGORY_TYPE: ClassVar[KeywordField] = KeywordField("categoryType", "categoryType") """ - + """ TERMS: ClassVar[RelationField] = RelationField("terms") diff --git a/pyatlan/model/assets/core/atlas_glossary_term.py b/pyatlan/model/assets/core/atlas_glossary_term.py index 667d9f110..c12a1c8d2 100644 --- a/pyatlan/model/assets/core/atlas_glossary_term.py +++ b/pyatlan/model/assets/core/atlas_glossary_term.py @@ -187,7 +187,7 @@ def __setattr__(self, name, value): """ TERM_TYPE: ClassVar[KeywordField] = KeywordField("termType", "termType") """ - + """ VALID_VALUES_FOR: ClassVar[RelationField] = RelationField("validValuesFor") diff --git a/pyatlan/model/assets/core/cosmos_mongo_d_b_collection.py b/pyatlan/model/assets/core/cosmos_mongo_d_b_collection.py index dba642085..69dcc987b 100644 --- a/pyatlan/model/assets/core/cosmos_mongo_d_b_collection.py +++ b/pyatlan/model/assets/core/cosmos_mongo_d_b_collection.py @@ -2138,8 +2138,12 @@ class Attributes(CosmosMongoDB.Attributes): from .procedure import Procedure # noqa: E402, F401 from .query import Query # noqa: E402, F401 from .schema import Schema # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 from .table import Table # noqa: E402, F401 from .table_partition import TablePartition # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/cosmos_mongo_d_b_database.py b/pyatlan/model/assets/core/cosmos_mongo_d_b_database.py index 26976394f..8adc0d05c 100644 --- a/pyatlan/model/assets/core/cosmos_mongo_d_b_database.py +++ b/pyatlan/model/assets/core/cosmos_mongo_d_b_database.py @@ -1289,6 +1289,10 @@ class Attributes(CosmosMongoDB.Attributes): from .fabric_workspace import FabricWorkspace # noqa: E402, F401 from .mongo_d_b_collection import MongoDBCollection # noqa: E402, F401 from .schema import Schema # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/databricks_a_i_model_context.py b/pyatlan/model/assets/core/databricks_a_i_model_context.py index 1f7693ba6..41f866a8e 100644 --- a/pyatlan/model/assets/core/databricks_a_i_model_context.py +++ b/pyatlan/model/assets/core/databricks_a_i_model_context.py @@ -1370,6 +1370,10 @@ class Attributes(AIModel.Attributes): from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 from .schema import Schema # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/databricks_a_i_model_version.py b/pyatlan/model/assets/core/databricks_a_i_model_version.py index a40eb4f5c..27424b615 100644 --- a/pyatlan/model/assets/core/databricks_a_i_model_version.py +++ b/pyatlan/model/assets/core/databricks_a_i_model_version.py @@ -1670,6 +1670,10 @@ class Attributes(AIModelVersion.Attributes): from .dbt_seed import DbtSeed # noqa: E402, F401 from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/databricks_genie_agent.py b/pyatlan/model/assets/core/databricks_genie_agent.py index 5e8424ae5..c8873f518 100644 --- a/pyatlan/model/assets/core/databricks_genie_agent.py +++ b/pyatlan/model/assets/core/databricks_genie_agent.py @@ -1319,6 +1319,10 @@ class Attributes(Agent.Attributes): from .dbt_seed import DbtSeed # noqa: E402, F401 from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/databricks_unity_catalog_tag.py b/pyatlan/model/assets/core/databricks_unity_catalog_tag.py index a1b20e6b0..f785a5224 100644 --- a/pyatlan/model/assets/core/databricks_unity_catalog_tag.py +++ b/pyatlan/model/assets/core/databricks_unity_catalog_tag.py @@ -1086,6 +1086,10 @@ class Attributes(Tag.Attributes): from .dbt_seed import DbtSeed # noqa: E402, F401 from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/dbt_column_process.py b/pyatlan/model/assets/core/dbt_column_process.py index d477fbccd..55a06372c 100644 --- a/pyatlan/model/assets/core/dbt_column_process.py +++ b/pyatlan/model/assets/core/dbt_column_process.py @@ -177,7 +177,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ diff --git a/pyatlan/model/assets/core/dbt_process.py b/pyatlan/model/assets/core/dbt_process.py index 64372181a..1e0acc51a 100644 --- a/pyatlan/model/assets/core/dbt_process.py +++ b/pyatlan/model/assets/core/dbt_process.py @@ -183,7 +183,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ diff --git a/pyatlan/model/assets/core/document_d_b_database.py b/pyatlan/model/assets/core/document_d_b_database.py index b8dacecc0..3ccf3d624 100644 --- a/pyatlan/model/assets/core/document_d_b_database.py +++ b/pyatlan/model/assets/core/document_d_b_database.py @@ -1239,6 +1239,10 @@ def creator( from .document_d_b_collection import DocumentDBCollection # noqa: E402, F401 from .fabric_workspace import FabricWorkspace # noqa: E402, F401 from .schema import Schema # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/fabric_dataflow.py b/pyatlan/model/assets/core/fabric_dataflow.py index f2875b088..61366bf35 100644 --- a/pyatlan/model/assets/core/fabric_dataflow.py +++ b/pyatlan/model/assets/core/fabric_dataflow.py @@ -91,5 +91,7 @@ class Attributes(Fabric.Attributes): ) -from .fabric_dataflow_entity_column import FabricDataflowEntityColumn # noqa: E402, F401 +from .fabric_dataflow_entity_column import ( + FabricDataflowEntityColumn, # noqa: E402, F401 +) from .fabric_workspace import FabricWorkspace # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/fabric_semantic_model_table.py b/pyatlan/model/assets/core/fabric_semantic_model_table.py index 07ed8235c..502c73357 100644 --- a/pyatlan/model/assets/core/fabric_semantic_model_table.py +++ b/pyatlan/model/assets/core/fabric_semantic_model_table.py @@ -132,4 +132,6 @@ class Attributes(Fabric.Attributes): from .fabric_semantic_model import FabricSemanticModel # noqa: E402, F401 -from .fabric_semantic_model_table_column import FabricSemanticModelTableColumn # noqa: E402, F401 +from .fabric_semantic_model_table_column import ( + FabricSemanticModelTableColumn, # noqa: E402, F401 +) diff --git a/pyatlan/model/assets/core/flow_dataset_operation.py b/pyatlan/model/assets/core/flow_dataset_operation.py index d5f6a3d21..3dc58d4c1 100644 --- a/pyatlan/model/assets/core/flow_dataset_operation.py +++ b/pyatlan/model/assets/core/flow_dataset_operation.py @@ -50,7 +50,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ diff --git a/pyatlan/model/assets/core/flow_field_operation.py b/pyatlan/model/assets/core/flow_field_operation.py index 8edb11c0a..59f00832e 100644 --- a/pyatlan/model/assets/core/flow_field_operation.py +++ b/pyatlan/model/assets/core/flow_field_operation.py @@ -49,7 +49,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ diff --git a/pyatlan/model/assets/core/power_b_i_dataflow.py b/pyatlan/model/assets/core/power_b_i_dataflow.py index 060d743b3..38d2bfc0d 100644 --- a/pyatlan/model/assets/core/power_b_i_dataflow.py +++ b/pyatlan/model/assets/core/power_b_i_dataflow.py @@ -354,7 +354,9 @@ class Attributes(PowerBI.Attributes): ) -from .power_b_i_dataflow_entity_column import PowerBIDataflowEntityColumn # noqa: E402, F401 +from .power_b_i_dataflow_entity_column import ( + PowerBIDataflowEntityColumn, # noqa: E402, F401 +) from .power_b_i_dataset import PowerBIDataset # noqa: E402, F401 from .power_b_i_datasource import PowerBIDatasource # noqa: E402, F401 from .power_b_i_table import PowerBITable # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/process.py b/pyatlan/model/assets/core/process.py index 5ba2863fc..66314c441 100644 --- a/pyatlan/model/assets/core/process.py +++ b/pyatlan/model/assets/core/process.py @@ -113,7 +113,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ diff --git a/pyatlan/model/assets/core/query.py b/pyatlan/model/assets/core/query.py index e7a26b791..04037aab5 100644 --- a/pyatlan/model/assets/core/query.py +++ b/pyatlan/model/assets/core/query.py @@ -138,7 +138,7 @@ def __setattr__(self, name, value): """ RAW_QUERY_TEXT: ClassVar[RelationField] = RelationField("rawQueryText") """ - + """ DEFAULT_SCHEMA_QUALIFIED_NAME: ClassVar[KeywordTextField] = KeywordTextField( "defaultSchemaQualifiedName", diff --git a/pyatlan/model/assets/core/s_q_l.py b/pyatlan/model/assets/core/s_q_l.py index f50999d5c..bbe691c32 100644 --- a/pyatlan/model/assets/core/s_q_l.py +++ b/pyatlan/model/assets/core/s_q_l.py @@ -995,6 +995,10 @@ class Attributes(Catalog.Attributes): from .dbt_model import DbtModel # noqa: E402, F401 from .dbt_seed import DbtSeed # noqa: E402, F401 from .dbt_source import DbtSource # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/schema.py b/pyatlan/model/assets/core/schema.py index 544f1379d..75db31ce4 100644 --- a/pyatlan/model/assets/core/schema.py +++ b/pyatlan/model/assets/core/schema.py @@ -621,7 +621,9 @@ def create( from .function import Function # noqa: E402, F401 from .materialised_view import MaterialisedView # noqa: E402, F401 from .procedure import Procedure # noqa: E402, F401 -from .sap_datasphere_replication_flow import SapDatasphereReplicationFlow # noqa: E402, F401 +from .sap_datasphere_replication_flow import ( + SapDatasphereReplicationFlow, # noqa: E402, F401 +) from .snowflake_a_i_model_context import SnowflakeAIModelContext # noqa: E402, F401 from .snowflake_pipe import SnowflakePipe # noqa: E402, F401 from .snowflake_semantic_view import SnowflakeSemanticView # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/snowflake_a_i_model_context.py b/pyatlan/model/assets/core/snowflake_a_i_model_context.py index dd39c9079..ae1242f75 100644 --- a/pyatlan/model/assets/core/snowflake_a_i_model_context.py +++ b/pyatlan/model/assets/core/snowflake_a_i_model_context.py @@ -1340,6 +1340,10 @@ class Attributes(AIModel.Attributes): from .dbt_test import DbtTest # noqa: E402, F401 from .schema import Schema # noqa: E402, F401 from .snowflake_a_i_model_version import SnowflakeAIModelVersion # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/snowflake_a_i_model_version.py b/pyatlan/model/assets/core/snowflake_a_i_model_version.py index 2df16f7da..7769b5bed 100644 --- a/pyatlan/model/assets/core/snowflake_a_i_model_version.py +++ b/pyatlan/model/assets/core/snowflake_a_i_model_version.py @@ -1468,6 +1468,10 @@ class Attributes(AIModelVersion.Attributes): from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 from .snowflake_a_i_model_context import SnowflakeAIModelContext # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/snowflake_semantic_dimension.py b/pyatlan/model/assets/core/snowflake_semantic_dimension.py index 09ae786ef..31cc1f68f 100644 --- a/pyatlan/model/assets/core/snowflake_semantic_dimension.py +++ b/pyatlan/model/assets/core/snowflake_semantic_dimension.py @@ -1278,6 +1278,10 @@ class Attributes(SemanticDimension.Attributes): from .dbt_seed import DbtSeed # noqa: E402, F401 from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/snowflake_semantic_fact.py b/pyatlan/model/assets/core/snowflake_semantic_fact.py index 07692fedc..87b07735d 100644 --- a/pyatlan/model/assets/core/snowflake_semantic_fact.py +++ b/pyatlan/model/assets/core/snowflake_semantic_fact.py @@ -1072,4 +1072,6 @@ class Attributes(Snowflake.Attributes): from .semantic_model import SemanticModel # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) diff --git a/pyatlan/model/assets/core/snowflake_semantic_logical_table.py b/pyatlan/model/assets/core/snowflake_semantic_logical_table.py index 56e8e1041..b62b3fcdb 100644 --- a/pyatlan/model/assets/core/snowflake_semantic_logical_table.py +++ b/pyatlan/model/assets/core/snowflake_semantic_logical_table.py @@ -1407,5 +1407,7 @@ class Attributes(SemanticEntity.Attributes): from .snowflake_semantic_fact import SnowflakeSemanticFact # noqa: E402, F401 from .snowflake_semantic_metric import SnowflakeSemanticMetric # noqa: E402, F401 from .snowflake_semantic_view import SnowflakeSemanticView # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/snowflake_semantic_metric.py b/pyatlan/model/assets/core/snowflake_semantic_metric.py index 1b31a67f0..13d1a0c73 100644 --- a/pyatlan/model/assets/core/snowflake_semantic_metric.py +++ b/pyatlan/model/assets/core/snowflake_semantic_metric.py @@ -1161,4 +1161,6 @@ class Attributes(Snowflake.Attributes): from .asset import Asset # noqa: E402, F401 from .column import Column # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) diff --git a/pyatlan/model/assets/core/snowflake_tag.py b/pyatlan/model/assets/core/snowflake_tag.py index 09a7a4527..4d6276fd5 100644 --- a/pyatlan/model/assets/core/snowflake_tag.py +++ b/pyatlan/model/assets/core/snowflake_tag.py @@ -1105,6 +1105,10 @@ class Attributes(Tag.Attributes): from .dbt_source import DbtSource # noqa: E402, F401 from .dbt_test import DbtTest # noqa: E402, F401 from .schema import Schema # noqa: E402, F401 -from .snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .sql_insight_join import SqlInsightJoin # noqa: E402, F401 diff --git a/pyatlan/model/assets/core/soda_check.py b/pyatlan/model/assets/core/soda_check.py index a59f8aa60..6e53d9348 100644 --- a/pyatlan/model/assets/core/soda_check.py +++ b/pyatlan/model/assets/core/soda_check.py @@ -55,13 +55,13 @@ def __setattr__(self, name, value): "sodaCheckLastScanAt", "sodaCheckLastScanAt" ) """ - + """ SODA_CHECK_INCIDENT_COUNT: ClassVar[NumericField] = NumericField( "sodaCheckIncidentCount", "sodaCheckIncidentCount" ) """ - + """ SODA_CHECK_LINKED_ASSET_QUALIFIED_NAME: ClassVar[KeywordField] = KeywordField( "sodaCheckLinkedAssetQualifiedName", "sodaCheckLinkedAssetQualifiedName" diff --git a/pyatlan/model/assets/core/stakeholder.py b/pyatlan/model/assets/core/stakeholder.py index 8ca2aebfa..4bfd09ecc 100644 --- a/pyatlan/model/assets/core/stakeholder.py +++ b/pyatlan/model/assets/core/stakeholder.py @@ -33,13 +33,13 @@ def __setattr__(self, name, value): "stakeholderDomainQualifiedName", "stakeholderDomainQualifiedName" ) """ - + """ STAKEHOLDER_TITLE_GUID: ClassVar[KeywordField] = KeywordField( "stakeholderTitleGuid", "stakeholderTitleGuid" ) """ - + """ STAKEHOLDER_TITLE: ClassVar[RelationField] = RelationField("stakeholderTitle") diff --git a/pyatlan/model/assets/databricks_dashboard.py b/pyatlan/model/assets/databricks_dashboard.py index 951be448c..bbe329ae1 100644 --- a/pyatlan/model/assets/databricks_dashboard.py +++ b/pyatlan/model/assets/databricks_dashboard.py @@ -1174,8 +1174,12 @@ class Attributes(BI.Attributes): from .core.dbt_seed import DbtSeed # noqa: E402, F401 from .core.dbt_source import DbtSource # noqa: E402, F401 from .core.dbt_test import DbtTest # noqa: E402, F401 -from .core.snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .core.sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .core.snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .core.sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .core.sql_insight_join import SqlInsightJoin # noqa: E402, F401 DatabricksDashboard.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/databricks_external_location.py b/pyatlan/model/assets/databricks_external_location.py index 2dcb9ebe2..d581d3cd6 100644 --- a/pyatlan/model/assets/databricks_external_location.py +++ b/pyatlan/model/assets/databricks_external_location.py @@ -115,6 +115,8 @@ class Attributes(Databricks.Attributes): ) -from .databricks_external_location_path import DatabricksExternalLocationPath # noqa: E402, F401 +from .databricks_external_location_path import ( + DatabricksExternalLocationPath, # noqa: E402, F401 +) DatabricksExternalLocation.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/databricks_notebook.py b/pyatlan/model/assets/databricks_notebook.py index 4b9aa7310..0fd5df117 100644 --- a/pyatlan/model/assets/databricks_notebook.py +++ b/pyatlan/model/assets/databricks_notebook.py @@ -1061,8 +1061,12 @@ class Attributes(Notebook.Attributes): from .core.dbt_seed import DbtSeed # noqa: E402, F401 from .core.dbt_source import DbtSource # noqa: E402, F401 from .core.dbt_test import DbtTest # noqa: E402, F401 -from .core.snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .core.sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 +from .core.snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .core.sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) from .core.sql_insight_join import SqlInsightJoin # noqa: E402, F401 DatabricksNotebook.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/dynamo_dbtable.py b/pyatlan/model/assets/dynamo_dbtable.py index a1bb1d424..b7396b1b9 100644 --- a/pyatlan/model/assets/dynamo_dbtable.py +++ b/pyatlan/model/assets/dynamo_dbtable.py @@ -1570,7 +1570,11 @@ class Attributes(Table.Attributes): from .dynamo_d_b_attribute import DynamoDBAttribute # noqa: E402, F401 -from .dynamo_d_b_global_secondary_index import DynamoDBGlobalSecondaryIndex # noqa: E402, F401 -from .dynamo_d_b_local_secondary_index import DynamoDBLocalSecondaryIndex # noqa: E402, F401 +from .dynamo_d_b_global_secondary_index import ( + DynamoDBGlobalSecondaryIndex, # noqa: E402, F401 +) +from .dynamo_d_b_local_secondary_index import ( + DynamoDBLocalSecondaryIndex, # noqa: E402, F401 +) DynamoDBTable.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/iceberg_namespace.py b/pyatlan/model/assets/iceberg_namespace.py index e77955f58..1a9073421 100644 --- a/pyatlan/model/assets/iceberg_namespace.py +++ b/pyatlan/model/assets/iceberg_namespace.py @@ -1358,13 +1358,19 @@ class Attributes(Iceberg.Attributes): from .core.bigquery_routine import BigqueryRoutine # noqa: E402, F401 from .core.calculation_view import CalculationView # noqa: E402, F401 from .core.database import Database # noqa: E402, F401 -from .core.databricks_a_i_model_context import DatabricksAIModelContext # noqa: E402, F401 +from .core.databricks_a_i_model_context import ( + DatabricksAIModelContext, # noqa: E402, F401 +) from .core.databricks_volume import DatabricksVolume # noqa: E402, F401 from .core.function import Function # noqa: E402, F401 from .core.materialised_view import MaterialisedView # noqa: E402, F401 from .core.procedure import Procedure # noqa: E402, F401 -from .core.sap_datasphere_replication_flow import SapDatasphereReplicationFlow # noqa: E402, F401 -from .core.snowflake_a_i_model_context import SnowflakeAIModelContext # noqa: E402, F401 +from .core.sap_datasphere_replication_flow import ( + SapDatasphereReplicationFlow, # noqa: E402, F401 +) +from .core.snowflake_a_i_model_context import ( + SnowflakeAIModelContext, # noqa: E402, F401 +) from .core.snowflake_dynamic_table import SnowflakeDynamicTable # noqa: E402, F401 from .core.snowflake_pipe import SnowflakePipe # noqa: E402, F401 from .core.snowflake_semantic_view import SnowflakeSemanticView # noqa: E402, F401 diff --git a/pyatlan/model/assets/metabase_collection.py b/pyatlan/model/assets/metabase_collection.py index d6b8caa2f..2c7e021ac 100644 --- a/pyatlan/model/assets/metabase_collection.py +++ b/pyatlan/model/assets/metabase_collection.py @@ -76,25 +76,25 @@ def __setattr__(self, name, value): "metabaseSlug", "metabaseSlug", "metabaseSlug.text" ) """ - + """ METABASE_COLOR: ClassVar[KeywordField] = KeywordField( "metabaseColor", "metabaseColor" ) """ - + """ METABASE_NAMESPACE: ClassVar[KeywordTextField] = KeywordTextField( "metabaseNamespace", "metabaseNamespace", "metabaseNamespace.text" ) """ - + """ METABASE_IS_PERSONAL_COLLECTION: ClassVar[BooleanField] = BooleanField( "metabaseIsPersonalCollection", "metabaseIsPersonalCollection" ) """ - + """ METABASE_DASHBOARDS: ClassVar[RelationField] = RelationField("metabaseDashboards") diff --git a/pyatlan/model/assets/metabase_dashboard.py b/pyatlan/model/assets/metabase_dashboard.py index 012305266..dfc5e45b6 100644 --- a/pyatlan/model/assets/metabase_dashboard.py +++ b/pyatlan/model/assets/metabase_dashboard.py @@ -71,7 +71,7 @@ def __setattr__(self, name, value): "metabaseQuestionCount", "metabaseQuestionCount" ) """ - + """ METABASE_QUESTIONS: ClassVar[RelationField] = RelationField("metabaseQuestions") diff --git a/pyatlan/model/assets/metabase_question.py b/pyatlan/model/assets/metabase_question.py index ce347825f..2f7e51eac 100644 --- a/pyatlan/model/assets/metabase_question.py +++ b/pyatlan/model/assets/metabase_question.py @@ -75,19 +75,19 @@ def __setattr__(self, name, value): "metabaseDashboardCount", "metabaseDashboardCount" ) """ - + """ METABASE_QUERY_TYPE: ClassVar[KeywordTextField] = KeywordTextField( "metabaseQueryType", "metabaseQueryType", "metabaseQueryType.text" ) """ - + """ METABASE_QUERY: ClassVar[KeywordTextField] = KeywordTextField( "metabaseQuery", "metabaseQuery.keyword", "metabaseQuery" ) """ - + """ METABASE_DASHBOARDS: ClassVar[RelationField] = RelationField("metabaseDashboards") diff --git a/pyatlan/model/assets/preset_chart.py b/pyatlan/model/assets/preset_chart.py index 0458b6577..c5d7229aa 100644 --- a/pyatlan/model/assets/preset_chart.py +++ b/pyatlan/model/assets/preset_chart.py @@ -90,13 +90,13 @@ def __setattr__(self, name, value): "presetChartDescriptionMarkdown", "presetChartDescriptionMarkdown" ) """ - + """ PRESET_CHART_FORM_DATA: ClassVar[KeywordField] = KeywordField( "presetChartFormData", "presetChartFormData" ) """ - + """ PRESET_DASHBOARD: ClassVar[RelationField] = RelationField("presetDashboard") diff --git a/pyatlan/model/assets/preset_dashboard.py b/pyatlan/model/assets/preset_dashboard.py index b003a5515..fdf6d4eb9 100644 --- a/pyatlan/model/assets/preset_dashboard.py +++ b/pyatlan/model/assets/preset_dashboard.py @@ -103,37 +103,37 @@ def __setattr__(self, name, value): ) ) """ - + """ PRESET_DASHBOARD_CHANGED_BY_URL: ClassVar[KeywordField] = KeywordField( "presetDashboardChangedByURL", "presetDashboardChangedByURL" ) """ - + """ PRESET_DASHBOARD_IS_MANAGED_EXTERNALLY: ClassVar[BooleanField] = BooleanField( "presetDashboardIsManagedExternally", "presetDashboardIsManagedExternally" ) """ - + """ PRESET_DASHBOARD_IS_PUBLISHED: ClassVar[BooleanField] = BooleanField( "presetDashboardIsPublished", "presetDashboardIsPublished" ) """ - + """ PRESET_DASHBOARD_THUMBNAIL_URL: ClassVar[KeywordField] = KeywordField( "presetDashboardThumbnailURL", "presetDashboardThumbnailURL" ) """ - + """ PRESET_DASHBOARD_CHART_COUNT: ClassVar[NumericField] = NumericField( "presetDashboardChartCount", "presetDashboardChartCount" ) """ - + """ PRESET_DATASETS: ClassVar[RelationField] = RelationField("presetDatasets") diff --git a/pyatlan/model/assets/preset_dataset.py b/pyatlan/model/assets/preset_dataset.py index d74ed79a0..107b6cc5b 100644 --- a/pyatlan/model/assets/preset_dataset.py +++ b/pyatlan/model/assets/preset_dataset.py @@ -102,19 +102,19 @@ def __setattr__(self, name, value): ) ) """ - + """ PRESET_DATASET_ID: ClassVar[NumericField] = NumericField( "presetDatasetId", "presetDatasetId" ) """ - + """ PRESET_DATASET_TYPE: ClassVar[KeywordField] = KeywordField( "presetDatasetType", "presetDatasetType" ) """ - + """ PRESET_DASHBOARD: ClassVar[RelationField] = RelationField("presetDashboard") diff --git a/pyatlan/model/assets/preset_workspace.py b/pyatlan/model/assets/preset_workspace.py index b10722b64..6f94fbf39 100644 --- a/pyatlan/model/assets/preset_workspace.py +++ b/pyatlan/model/assets/preset_workspace.py @@ -69,19 +69,19 @@ def __setattr__(self, name, value): "presetWorkspacePublicDashboardsAllowed", ) """ - + """ PRESET_WORKSPACE_CLUSTER_ID: ClassVar[NumericField] = NumericField( "presetWorkspaceClusterId", "presetWorkspaceClusterId" ) """ - + """ PRESET_WORKSPACE_DEPLOYMENT_ID: ClassVar[NumericField] = NumericField( "presetWorkspaceDeploymentId", "presetWorkspaceDeploymentId" ) """ - + """ PRESET_WORKSPACE_HOSTNAME: ClassVar[KeywordTextField] = KeywordTextField( "presetWorkspaceHostname", @@ -89,37 +89,37 @@ def __setattr__(self, name, value): "presetWorkspaceHostname.text", ) """ - + """ PRESET_WORKSPACE_IS_IN_MAINTENANCE_MODE: ClassVar[BooleanField] = BooleanField( "presetWorkspaceIsInMaintenanceMode", "presetWorkspaceIsInMaintenanceMode" ) """ - + """ PRESET_WORKSPACE_REGION: ClassVar[KeywordTextField] = KeywordTextField( "presetWorkspaceRegion", "presetWorkspaceRegion", "presetWorkspaceRegion.text" ) """ - + """ PRESET_WORKSPACE_STATUS: ClassVar[KeywordField] = KeywordField( "presetWorkspaceStatus", "presetWorkspaceStatus" ) """ - + """ PRESET_WORKSPACE_DASHBOARD_COUNT: ClassVar[NumericField] = NumericField( "presetWorkspaceDashboardCount", "presetWorkspaceDashboardCount" ) """ - + """ PRESET_WORKSPACE_DATASET_COUNT: ClassVar[NumericField] = NumericField( "presetWorkspaceDatasetCount", "presetWorkspaceDatasetCount" ) """ - + """ PRESET_DASHBOARDS: ClassVar[RelationField] = RelationField("presetDashboards") diff --git a/pyatlan/model/assets/relations/__init__.pyi b/pyatlan/model/assets/relations/__init__.pyi index e480ec259..17ef48dbf 100644 --- a/pyatlan/model/assets/relations/__init__.pyi +++ b/pyatlan/model/assets/relations/__init__.pyi @@ -18,22 +18,22 @@ __all__ = [ "CustomRelatedFromEntitiesCustomRelatedToEntities", ] -from .relationship_attributes import RelationshipAttributes -from .indistinct_relationship import IndistinctRelationship from .atlas_glossary_antonym import AtlasGlossaryAntonym -from .atlas_glossary_semantic_assignment import AtlasGlossarySemanticAssignment -from .user_def_relationship import UserDefRelationship +from .atlas_glossary_is_a_relationship import AtlasGlossaryIsARelationship +from .atlas_glossary_preferred_term import AtlasGlossaryPreferredTerm from .atlas_glossary_related_term import AtlasGlossaryRelatedTerm +from .atlas_glossary_replacement_term import AtlasGlossaryReplacementTerm +from .atlas_glossary_semantic_assignment import AtlasGlossarySemanticAssignment +from .atlas_glossary_synonym import AtlasGlossarySynonym +from .atlas_glossary_term_categorization import AtlasGlossaryTermCategorization from .atlas_glossary_translation import AtlasGlossaryTranslation from .atlas_glossary_valid_value import AtlasGlossaryValidValue -from .atlas_glossary_is_a_relationship import AtlasGlossaryIsARelationship from .custom_parent_entity_custom_child_entities import ( CustomParentEntityCustomChildEntities, ) -from .atlas_glossary_synonym import AtlasGlossarySynonym -from .atlas_glossary_replacement_term import AtlasGlossaryReplacementTerm -from .atlas_glossary_preferred_term import AtlasGlossaryPreferredTerm -from .atlas_glossary_term_categorization import AtlasGlossaryTermCategorization from .custom_related_from_entities_custom_related_to_entities import ( CustomRelatedFromEntitiesCustomRelatedToEntities, ) +from .indistinct_relationship import IndistinctRelationship +from .relationship_attributes import RelationshipAttributes +from .user_def_relationship import UserDefRelationship diff --git a/pyatlan/model/assets/s3.py b/pyatlan/model/assets/s3.py index d335a6f6d..051950d0d 100644 --- a/pyatlan/model/assets/s3.py +++ b/pyatlan/model/assets/s3.py @@ -38,7 +38,7 @@ def __setattr__(self, name, value): """ # noqa: E501 S3ENCRYPTION: ClassVar[KeywordField] = KeywordField("s3Encryption", "s3Encryption") """ - + """ S3PARENT_PREFIX_QUALIFIED_NAME: ClassVar[KeywordField] = KeywordField( "s3ParentPrefixQualifiedName", "s3ParentPrefixQualifiedName" diff --git a/pyatlan/model/assets/s_a_p_b_w_composite_provider.py b/pyatlan/model/assets/s_a_p_b_w_composite_provider.py index 072cadc97..86278a48f 100644 --- a/pyatlan/model/assets/s_a_p_b_w_composite_provider.py +++ b/pyatlan/model/assets/s_a_p_b_w_composite_provider.py @@ -132,7 +132,9 @@ class Attributes(SAPBW.Attributes): from .s_a_p_b_w_a_d_s_o import SAPBWADSO # noqa: E402, F401 -from .s_a_p_b_w_composite_provider_field import SAPBWCompositeProviderField # noqa: E402, F401 +from .s_a_p_b_w_composite_provider_field import ( + SAPBWCompositeProviderField, # noqa: E402, F401 +) from .s_a_p_b_w_info_area import SAPBWInfoArea # noqa: E402, F401 SAPBWCompositeProvider.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/s_a_p_b_w_info_object.py b/pyatlan/model/assets/s_a_p_b_w_info_object.py index 89bf4426a..7ffdd3d25 100644 --- a/pyatlan/model/assets/s_a_p_b_w_info_object.py +++ b/pyatlan/model/assets/s_a_p_b_w_info_object.py @@ -268,7 +268,9 @@ class Attributes(SAPBW.Attributes): from .s_a_p_b_w_a_d_s_o_field import SAPBWADSOField # noqa: E402, F401 -from .s_a_p_b_w_composite_provider_field import SAPBWCompositeProviderField # noqa: E402, F401 +from .s_a_p_b_w_composite_provider_field import ( + SAPBWCompositeProviderField, # noqa: E402, F401 +) from .s_a_p_b_w_data_source_field import SAPBWDataSourceField # noqa: E402, F401 from .s_a_p_b_w_info_area import SAPBWInfoArea # noqa: E402, F401 from .s_a_p_b_w_info_source_field import SAPBWInfoSourceField # noqa: E402, F401 diff --git a/pyatlan/model/assets/s_a_p_column_process.py b/pyatlan/model/assets/s_a_p_column_process.py index 6589a92e4..0f3887dbf 100644 --- a/pyatlan/model/assets/s_a_p_column_process.py +++ b/pyatlan/model/assets/s_a_p_column_process.py @@ -94,7 +94,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ @@ -644,7 +644,7 @@ class Attributes(SAP.Attributes): from .core.power_b_i_dataflow import PowerBIDataflow # noqa: E402, F401 from .core.procedure import Procedure # noqa: E402, F401 from .core.process import Process # noqa: E402, F401 -from .s_a_p_b_w_transformation import SAPBWTransformation # noqa: E402, F401 from .core.spark_job import SparkJob # noqa: E402, F401 +from .s_a_p_b_w_transformation import SAPBWTransformation # noqa: E402, F401 SAPColumnProcess.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/s_a_p_process.py b/pyatlan/model/assets/s_a_p_process.py index 2fcd4662b..9f0f42128 100644 --- a/pyatlan/model/assets/s_a_p_process.py +++ b/pyatlan/model/assets/s_a_p_process.py @@ -94,7 +94,7 @@ def __setattr__(self, name, value): "parentConnectionProcessQualifiedName", "parentConnectionProcessQualifiedName" ) """ - + """ AST: ClassVar[TextField] = TextField("ast", "ast") """ @@ -621,7 +621,7 @@ class Attributes(SAP.Attributes): from .core.matillion_component import MatillionComponent # noqa: E402, F401 from .core.power_b_i_dataflow import PowerBIDataflow # noqa: E402, F401 from .core.procedure import Procedure # noqa: E402, F401 -from .s_a_p_b_w_d_t_p import SAPBWDTP # noqa: E402, F401 from .core.spark_job import SparkJob # noqa: E402, F401 +from .s_a_p_b_w_d_t_p import SAPBWDTP # noqa: E402, F401 SAPProcess.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/sage_maker_unified_studio_asset.py b/pyatlan/model/assets/sage_maker_unified_studio_asset.py index 34361ef66..992f98dce 100644 --- a/pyatlan/model/assets/sage_maker_unified_studio_asset.py +++ b/pyatlan/model/assets/sage_maker_unified_studio_asset.py @@ -166,6 +166,8 @@ class Attributes(SageMakerUnifiedStudio.Attributes): ) -from .sage_maker_unified_studio_asset_schema import SageMakerUnifiedStudioAssetSchema # noqa: E402, F401 +from .sage_maker_unified_studio_asset_schema import ( + SageMakerUnifiedStudioAssetSchema, # noqa: E402, F401 +) SageMakerUnifiedStudioAsset.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/sage_maker_unified_studio_asset_schema.py b/pyatlan/model/assets/sage_maker_unified_studio_asset_schema.py index cc6f06e84..9f44258e6 100644 --- a/pyatlan/model/assets/sage_maker_unified_studio_asset_schema.py +++ b/pyatlan/model/assets/sage_maker_unified_studio_asset_schema.py @@ -124,6 +124,8 @@ class Attributes(SageMakerUnifiedStudio.Attributes): ) -from .sage_maker_unified_studio_asset import SageMakerUnifiedStudioAsset # noqa: E402, F401 +from .sage_maker_unified_studio_asset import ( + SageMakerUnifiedStudioAsset, # noqa: E402, F401 +) SageMakerUnifiedStudioAssetSchema.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/sage_maker_unified_studio_project.py b/pyatlan/model/assets/sage_maker_unified_studio_project.py index 220a09818..22ce79eb1 100644 --- a/pyatlan/model/assets/sage_maker_unified_studio_project.py +++ b/pyatlan/model/assets/sage_maker_unified_studio_project.py @@ -217,10 +217,8 @@ class Attributes(SageMakerUnifiedStudio.Attributes): from .sage_maker_unified_studio_published_asset import ( SageMakerUnifiedStudioPublishedAsset, ) # noqa: E402, F401 - from .sage_maker_unified_studio_subscribed_asset import ( SageMakerUnifiedStudioSubscribedAsset, ) # noqa: E402, F401 - SageMakerUnifiedStudioProject.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/sage_maker_unified_studio_published_asset.py b/pyatlan/model/assets/sage_maker_unified_studio_published_asset.py index 48d8e214a..aaaf63b96 100644 --- a/pyatlan/model/assets/sage_maker_unified_studio_published_asset.py +++ b/pyatlan/model/assets/sage_maker_unified_studio_published_asset.py @@ -380,10 +380,11 @@ class Attributes(SageMakerUnifiedStudioAsset.Attributes): ) -from .sage_maker_unified_studio_project import SageMakerUnifiedStudioProject # noqa: E402, F401 +from .sage_maker_unified_studio_project import ( + SageMakerUnifiedStudioProject, # noqa: E402, F401 +) from .sage_maker_unified_studio_subscribed_asset import ( SageMakerUnifiedStudioSubscribedAsset, ) # noqa: E402, F401 - SageMakerUnifiedStudioPublishedAsset.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/sage_maker_unified_studio_subscribed_asset.py b/pyatlan/model/assets/sage_maker_unified_studio_subscribed_asset.py index 9614703ff..f19c9b067 100644 --- a/pyatlan/model/assets/sage_maker_unified_studio_subscribed_asset.py +++ b/pyatlan/model/assets/sage_maker_unified_studio_subscribed_asset.py @@ -541,10 +541,11 @@ class Attributes(SageMakerUnifiedStudioAsset.Attributes): ) -from .sage_maker_unified_studio_project import SageMakerUnifiedStudioProject # noqa: E402, F401 +from .sage_maker_unified_studio_project import ( + SageMakerUnifiedStudioProject, # noqa: E402, F401 +) from .sage_maker_unified_studio_published_asset import ( SageMakerUnifiedStudioPublishedAsset, ) # noqa: E402, F401 - SageMakerUnifiedStudioSubscribedAsset.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/sap_erp_column.py b/pyatlan/model/assets/sap_erp_column.py index cf641f008..c576bbcb2 100644 --- a/pyatlan/model/assets/sap_erp_column.py +++ b/pyatlan/model/assets/sap_erp_column.py @@ -1539,11 +1539,15 @@ class Attributes(SAP.Attributes): from .core.dbt_seed import DbtSeed # noqa: E402, F401 from .core.dbt_source import DbtSource # noqa: E402, F401 from .core.dbt_test import DbtTest # noqa: E402, F401 +from .core.snowflake_semantic_logical_table import ( + SnowflakeSemanticLogicalTable, # noqa: E402, F401 +) +from .core.sql_insight_business_question import ( + SqlInsightBusinessQuestion, # noqa: E402, F401 +) +from .core.sql_insight_join import SqlInsightJoin # noqa: E402, F401 from .sap_erp_cds_view import SapErpCdsView # noqa: E402, F401 from .sap_erp_table import SapErpTable # noqa: E402, F401 from .sap_erp_view import SapErpView # noqa: E402, F401 -from .core.snowflake_semantic_logical_table import SnowflakeSemanticLogicalTable # noqa: E402, F401 -from .core.sql_insight_business_question import SqlInsightBusinessQuestion # noqa: E402, F401 -from .core.sql_insight_join import SqlInsightJoin # noqa: E402, F401 SapErpColumn.Attributes.update_forward_refs() diff --git a/pyatlan/model/assets/thoughtspot.py b/pyatlan/model/assets/thoughtspot.py index deb7bbc01..1ed193633 100644 --- a/pyatlan/model/assets/thoughtspot.py +++ b/pyatlan/model/assets/thoughtspot.py @@ -33,13 +33,13 @@ def __setattr__(self, name, value): "thoughtspotChartType", "thoughtspotChartType" ) """ - + """ THOUGHTSPOT_QUESTION_TEXT: ClassVar[TextField] = TextField( "thoughtspotQuestionText", "thoughtspotQuestionText" ) """ - + """ THOUGHTSPOT_JOIN_COUNT: ClassVar[NumericField] = NumericField( "thoughtspotJoinCount", "thoughtspotJoinCount" diff --git a/pyatlan/model/structs.py b/pyatlan/model/structs.py index 1f2a83f41..e9591cd5f 100644 --- a/pyatlan/model/structs.py +++ b/pyatlan/model/structs.py @@ -7,16 +7,17 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Union from pydantic.v1 import BaseModel, Extra, Field, root_validator + from pyatlan.model.enums import ( + AppWorkflowRunStatus, + AssetSmusMetadataFormStatus, AtlanConnectorType, BadgeComparisonOperator, BadgeConditionColor, - SourceCostUnitType, + DataQualityRuleThresholdUnit, FormFieldDimension, FormFieldType, - DataQualityRuleThresholdUnit, - AppWorkflowRunStatus, - AssetSmusMetadataFormStatus, + SourceCostUnitType, ) from pyatlan.model.utils import to_camel_case from pyatlan.utils import select_optional_set_fields, validate_required_fields @@ -24,8 +25,8 @@ if TYPE_CHECKING: from pyatlan.cache.aio.source_tag_cache import AsyncSourceTagName from pyatlan.cache.source_tag_cache import SourceTagName - from pyatlan.client.atlan import AtlanClient from pyatlan.client.aio import AsyncAtlanClient + from pyatlan.client.atlan import AtlanClient class AtlanObject(BaseModel): diff --git a/pyatlan/version.txt b/pyatlan/version.txt index fcfed5b06..f628d2eaf 100644 --- a/pyatlan/version.txt +++ b/pyatlan/version.txt @@ -1 +1 @@ -11.3.0 \ No newline at end of file +11.3.0 diff --git a/pyatlan_v9/model/assets/__init__.py b/pyatlan_v9/model/assets/__init__.py index 53cd6288d..ed6cb1d02 100644 --- a/pyatlan_v9/model/assets/__init__.py +++ b/pyatlan_v9/model/assets/__init__.py @@ -1,1147 +1,106 @@ -# Auto-generated by PythonMsgspecRenderer.pkl — DO NOT EDIT +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT # SPDX-License-Identifier: Apache-2.0 # Copyright 2024 Atlan Pte. Ltd. -# isort: skip_file +# +# NOTE: The lazy-loading logic below (_build_lazy_index / __getattr__) is +# intentionally NOT auto-generated — preserve it when regenerating this file. +# It replaces the previous eager _discover_and_export() call which imported +# all ~80 _init_*.py modules at package import time regardless of which types +# were actually needed, causing unnecessary memory usage in apps that only use +# a handful of models. -import lazy_loader as lazy +""" +PyAtlan Models - Auto-generated asset model classes. -from .entity import AtlasClassification, Entity, TermAssignment -from .related_entity import RelatedEntity, SaveSemantic +This module lazily re-exports all types from _init_*.py modules. +New modules are automatically picked up without needing to regenerate this file. -__PYATLAN_V9_ASSETS__ = { - "_init_access_control": [ - "AccessControl", - "AuthPolicy", - "AuthService", - "Persona", - "Purpose", - "RelatedAccessControl", - "RelatedAuthPolicy", - "RelatedAuthService", - "RelatedPersona", - "RelatedPurpose", - ], - "_init_adf": [ - "ADF", - "AdfActivity", - "AdfDataflow", - "AdfDataset", - "AdfLinkedservice", - "AdfPipeline", - "RelatedADF", - "RelatedAdfActivity", - "RelatedAdfDataflow", - "RelatedAdfDataset", - "RelatedAdfLinkedservice", - "RelatedAdfPipeline", - ], - "_init_adls": [ - "ADLS", - "ADLSAccount", - "ADLSContainer", - "ADLSObject", - "RelatedADLS", - "RelatedADLSAccount", - "RelatedADLSContainer", - "RelatedADLSObject", - ], - "_init_agent": ["Agent", "RelatedAgent"], - "_init_agentic": ["Agentic", "RelatedAgentic"], - "_init_ai": [ - "AI", - "AIApplication", - "AIModel", - "AIModelVersion", - "RelatedAI", - "RelatedAIApplication", - "RelatedAIModel", - "RelatedAIModelVersion", - ], - "_init_airflow": [ - "Airflow", - "AirflowDag", - "AirflowTask", - "RelatedAirflow", - "RelatedAirflowDag", - "RelatedAirflowTask", - ], - "_init_anaplan": [ - "Anaplan", - "AnaplanApp", - "AnaplanDimension", - "AnaplanLineItem", - "AnaplanList", - "AnaplanModel", - "AnaplanModule", - "AnaplanPage", - "AnaplanSystemDimension", - "AnaplanView", - "AnaplanWorkspace", - "RelatedAnaplan", - "RelatedAnaplanApp", - "RelatedAnaplanDimension", - "RelatedAnaplanLineItem", - "RelatedAnaplanList", - "RelatedAnaplanModel", - "RelatedAnaplanModule", - "RelatedAnaplanPage", - "RelatedAnaplanSystemDimension", - "RelatedAnaplanView", - "RelatedAnaplanWorkspace", - ], - "_init_anomalo": [ - "Anomalo", - "AnomaloCheck", - "RelatedAnomalo", - "RelatedAnomaloCheck", - ], - "_init_api": [ - "API", - "APIField", - "APIObject", - "APIPath", - "APIQuery", - "APISpec", - "RelatedAPI", - "RelatedAPIField", - "RelatedAPIObject", - "RelatedAPIPath", - "RelatedAPIQuery", - "RelatedAPISpec", - ], - "_init_app": [ - "App", - "Application", - "ApplicationField", - "RelatedApp", - "RelatedApplication", - "RelatedApplicationField", - ], - "_init_app_workflow_run": ["AppWorkflowRun", "RelatedAppWorkflowRun"], - "_init_artifact": ["Artifact", "RelatedArtifact"], - "_init_asset": [ - "Asset", - "DataSet", - "Incident", - "Infrastructure", - "ProcessExecution", - "RelatedAsset", - "RelatedDataSet", - "RelatedIncident", - "RelatedInfrastructure", - "RelatedProcessExecution", - ], - "_init_asset_grouping": [ - "AssetGrouping", - "AssetGroupingCollection", - "AssetGroupingStrategy", - "RelatedAssetGrouping", - "RelatedAssetGroupingCollection", - "RelatedAssetGroupingStrategy", - ], - "_init_atlan_app": [ - "AtlanApp", - "AtlanAppDeployment", - "AtlanAppInstalled", - "AtlanAppTool", - "AtlanAppWorkflow", - "RelatedAtlanApp", - "RelatedAtlanAppDeployment", - "RelatedAtlanAppInstalled", - "RelatedAtlanAppTool", - "RelatedAtlanAppWorkflow", - ], - "_init_azure_service_bus": [ - "AzureServiceBus", - "AzureServiceBusNamespace", - "AzureServiceBusSchema", - "AzureServiceBusTopic", - "RelatedAzureServiceBus", - "RelatedAzureServiceBusNamespace", - "RelatedAzureServiceBusSchema", - "RelatedAzureServiceBusTopic", - ], - "_init_bigquery": [ - "BigqueryRoutine", - "RelatedBigqueryRoutine", - "RelatedBigqueryTag", - ], - "_init_business_policy": [ - "BusinessPolicy", - "RelatedBusinessPolicy", - "RelatedBusinessPolicyException", - "RelatedBusinessPolicyIncident", - "RelatedBusinessPolicyLog", - ], - "_init_cassandra": [ - "Cassandra", - "CassandraColumn", - "CassandraIndex", - "CassandraKeyspace", - "CassandraTable", - "CassandraView", - "RelatedCassandra", - "RelatedCassandraColumn", - "RelatedCassandraIndex", - "RelatedCassandraKeyspace", - "RelatedCassandraTable", - "RelatedCassandraView", - ], - "_init_catalog": [ - "BI", - "Catalog", - "EventStore", - "Insight", - "NoSQL", - "ObjectStore", - "RelatedBI", - "RelatedCatalog", - "RelatedEventStore", - "RelatedInsight", - "RelatedNoSQL", - "RelatedObjectStore", - "RelatedSaaS", - "SaaS", - ], - "_init_cloud": [ - "AWS", - "Azure", - "Cloud", - "Google", - "RelatedAWS", - "RelatedAzure", - "RelatedCloud", - "RelatedGoogle", - ], - "_init_cognite": [ - "Cognite", - "Cognite3DModel", - "CogniteAsset", - "CogniteEvent", - "CogniteFile", - "CogniteSequence", - "CogniteTimeSeries", - "RelatedCognite", - "RelatedCognite3DModel", - "RelatedCogniteAsset", - "RelatedCogniteEvent", - "RelatedCogniteFile", - "RelatedCogniteSequence", - "RelatedCogniteTimeSeries", - ], - "_init_cognos": [ - "Cognos", - "CognosColumn", - "CognosDashboard", - "CognosDataset", - "CognosDatasource", - "CognosExploration", - "CognosFile", - "CognosFolder", - "CognosModule", - "CognosPackage", - "CognosReport", - "RelatedCognos", - "RelatedCognosColumn", - "RelatedCognosDashboard", - "RelatedCognosDataset", - "RelatedCognosDatasource", - "RelatedCognosExploration", - "RelatedCognosFile", - "RelatedCognosFolder", - "RelatedCognosModule", - "RelatedCognosPackage", - "RelatedCognosReport", - ], - "_init_connection": ["Connection", "RelatedConnection"], - "_init_context": [ - "Context", - "ContextArtifact", - "ContextRepository", - "RelatedContext", - "RelatedContextArtifact", - "RelatedContextRepository", - ], - "_init_cosmos_mongo_db": [ - "CosmosMongoDB", - "CosmosMongoDBAccount", - "CosmosMongoDBCollection", - "CosmosMongoDBDatabase", - "RelatedCosmosMongoDB", - "RelatedCosmosMongoDBAccount", - "RelatedCosmosMongoDBCollection", - "RelatedCosmosMongoDBDatabase", - ], - "_init_cube": [ - "Cube", - "CubeDimension", - "CubeField", - "CubeHierarchy", - "MultiDimensionalDataset", - "RelatedCube", - "RelatedCubeDimension", - "RelatedCubeField", - "RelatedCubeHierarchy", - "RelatedMultiDimensionalDataset", - ], - "_init_custom": [ - "Custom", - "CustomEntity", - "RelatedCustom", - "RelatedCustomEntity", - ], - "_init_data_contract": ["DataContract", "RelatedDataContract"], - "_init_data_mesh": [ - "DataDomain", - "DataMesh", - "DataMeshDataset", - "DataProduct", - "RelatedDataDomain", - "RelatedDataMesh", - "RelatedDataMeshDataset", - "RelatedDataProduct", - "RelatedStakeholder", - "RelatedStakeholderTitle", - ], - "_init_data_quality": [ - "DataQuality", - "DataQualityRule", - "DataQualityRuleTemplate", - "Metric", - "RelatedDataQuality", - "RelatedDataQualityRule", - "RelatedDataQualityRuleTemplate", - "RelatedMetric", - ], - "_init_data_studio": [ - "DataStudio", - "DataStudioAsset", - "RelatedDataStudio", - "RelatedDataStudioAsset", - ], - "_init_databricks": [ - "Databricks", - "DatabricksAIModelContext", - "DatabricksAIModelVersion", - "DatabricksDashboard", - "DatabricksExternalLocation", - "DatabricksExternalLocationPath", - "DatabricksGenieAgent", - "DatabricksMetricView", - "DatabricksNotebook", - "DatabricksVolume", - "DatabricksVolumePath", - "RelatedDatabricks", - "RelatedDatabricksAIModelContext", - "RelatedDatabricksAIModelVersion", - "RelatedDatabricksDashboard", - "RelatedDatabricksExternalLocation", - "RelatedDatabricksExternalLocationPath", - "RelatedDatabricksGenieAgent", - "RelatedDatabricksMetricView", - "RelatedDatabricksNotebook", - "RelatedDatabricksUnityCatalogTag", - "RelatedDatabricksVolume", - "RelatedDatabricksVolumePath", - ], - "_init_dataverse": [ - "Dataverse", - "DataverseAttribute", - "DataverseEntity", - "RelatedDataverse", - "RelatedDataverseAttribute", - "RelatedDataverseEntity", - ], - "_init_dbt": [ - "Dbt", - "DbtColumnProcess", - "DbtDimension", - "DbtEntity", - "DbtMeasure", - "DbtMetric", - "DbtModel", - "DbtModelColumn", - "DbtProcess", - "DbtSeed", - "DbtSemanticModel", - "DbtSource", - "DbtTag", - "DbtTest", - "RelatedDbt", - "RelatedDbtColumnProcess", - "RelatedDbtDimension", - "RelatedDbtEntity", - "RelatedDbtMeasure", - "RelatedDbtMetric", - "RelatedDbtModel", - "RelatedDbtModelColumn", - "RelatedDbtProcess", - "RelatedDbtSeed", - "RelatedDbtSemanticModel", - "RelatedDbtSource", - "RelatedDbtTag", - "RelatedDbtTest", - ], - "_init_document_db": [ - "DocumentDB", - "DocumentDBCollection", - "DocumentDBDatabase", - "RelatedDocumentDB", - "RelatedDocumentDBCollection", - "RelatedDocumentDBDatabase", - ], - "_init_domo": [ - "Domo", - "DomoCard", - "DomoDashboard", - "DomoDataset", - "DomoDatasetColumn", - "RelatedDomo", - "RelatedDomoCard", - "RelatedDomoDashboard", - "RelatedDomoDataset", - "RelatedDomoDatasetColumn", - ], - "_init_dremio": [ - "Dremio", - "DremioColumn", - "DremioFolder", - "DremioPhysicalDataset", - "DremioSource", - "DremioSpace", - "DremioVirtualDataset", - "RelatedDremio", - "RelatedDremioColumn", - "RelatedDremioFolder", - "RelatedDremioPhysicalDataset", - "RelatedDremioSource", - "RelatedDremioSpace", - "RelatedDremioVirtualDataset", - ], - "_init_dynamo_db": [ - "DynamoDB", - "DynamoDBAttribute", - "DynamoDBSecondaryIndex", - "DynamoDBTable", - "RelatedDynamoDB", - "RelatedDynamoDBAttribute", - "RelatedDynamoDBGlobalSecondaryIndex", - "RelatedDynamoDBLocalSecondaryIndex", - "RelatedDynamoDBSecondaryIndex", - "RelatedDynamoDBTable", - ], - "_init_fabric": [ - "Fabric", - "FabricActivity", - "FabricDashboard", - "FabricDataPipeline", - "FabricDataflow", - "FabricDataflowEntityColumn", - "FabricPage", - "FabricReport", - "FabricSemanticModel", - "FabricSemanticModelTable", - "FabricSemanticModelTableColumn", - "FabricVisual", - "FabricWorkspace", - "RelatedFabric", - "RelatedFabricActivity", - "RelatedFabricDashboard", - "RelatedFabricDataPipeline", - "RelatedFabricDataflow", - "RelatedFabricDataflowEntityColumn", - "RelatedFabricPage", - "RelatedFabricReport", - "RelatedFabricSemanticModel", - "RelatedFabricSemanticModelTable", - "RelatedFabricSemanticModelTableColumn", - "RelatedFabricVisual", - "RelatedFabricWorkspace", - ], - "_init_fivetran": [ - "Fivetran", - "FivetranConnector", - "RelatedFivetran", - "RelatedFivetranConnector", - ], - "_init_flow": [ - "Flow", - "FlowControlOperation", - "FlowDataset", - "FlowDatasetOperation", - "FlowField", - "FlowFieldOperation", - "FlowFolder", - "FlowProject", - "FlowReusableUnit", - "RelatedFlow", - "RelatedFlowControlOperation", - "RelatedFlowDataset", - "RelatedFlowDatasetOperation", - "RelatedFlowField", - "RelatedFlowFieldOperation", - "RelatedFlowFolder", - "RelatedFlowProject", - "RelatedFlowReusableUnit", - ], - "_init_form": ["Form", "RelatedForm", "RelatedResponse"], - "_init_gcp_dataplex": [ - "GCPDataplex", - "GCPDataplexAspectType", - "RelatedGCPDataplex", - "RelatedGCPDataplexAspectType", - ], - "_init_gcs": [ - "GCS", - "GCSBucket", - "GCSObject", - "RelatedGCS", - "RelatedGCSBucket", - "RelatedGCSObject", - ], - "_init_gtc": [ - "AtlasGlossary", - "AtlasGlossaryCategory", - "AtlasGlossaryTerm", - "RelatedAtlasGlossary", - "RelatedAtlasGlossaryCategory", - "RelatedAtlasGlossaryTerm", - ], - "_init_iceberg": [ - "Iceberg", - "IcebergCatalog", - "IcebergColumn", - "IcebergNamespace", - "IcebergTable", - "RelatedIceberg", - "RelatedIcebergCatalog", - "RelatedIcebergColumn", - "RelatedIcebergNamespace", - "RelatedIcebergTable", - ], - "_init_kafka": [ - "Kafka", - "KafkaCluster", - "KafkaConsumerGroup", - "KafkaField", - "KafkaTopic", - "RelatedAzureEventHub", - "RelatedAzureEventHubConsumerGroup", - "RelatedKafka", - "RelatedKafkaCluster", - "RelatedKafkaConsumerGroup", - "RelatedKafkaField", - "RelatedKafkaTopic", - ], - "_init_knowledge": [ - "Knowledge", - "KnowledgeFile", - "KnowledgeFolder", - "RelatedKnowledge", - "RelatedKnowledgeFile", - "RelatedKnowledgeFolder", - ], - "_init_looker": [ - "Looker", - "LookerDashboard", - "LookerExplore", - "LookerField", - "LookerFolder", - "LookerLook", - "LookerModel", - "LookerProject", - "LookerQuery", - "LookerTile", - "LookerView", - "RelatedLooker", - "RelatedLookerDashboard", - "RelatedLookerExplore", - "RelatedLookerField", - "RelatedLookerFolder", - "RelatedLookerLook", - "RelatedLookerModel", - "RelatedLookerProject", - "RelatedLookerQuery", - "RelatedLookerTile", - "RelatedLookerView", - ], - "_init_manual": [ - "AzureEventHub", - "AzureEventHubConsumerGroup", - "Badge", - "BadgeCondition", - "SnowflakeDynamicTable", - ], - "_init_matillion": [ - "Matillion", - "MatillionComponent", - "MatillionGroup", - "MatillionJob", - "MatillionProject", - "RelatedMatillion", - "RelatedMatillionComponent", - "RelatedMatillionGroup", - "RelatedMatillionJob", - "RelatedMatillionProject", - ], - "_init_metabase": [ - "Metabase", - "MetabaseCollection", - "MetabaseDashboard", - "MetabaseQuestion", - "RelatedMetabase", - "RelatedMetabaseCollection", - "RelatedMetabaseDashboard", - "RelatedMetabaseQuestion", - ], - "_init_micro_strategy": [ - "MicroStrategy", - "MicroStrategyAttribute", - "MicroStrategyColumn", - "MicroStrategyCube", - "MicroStrategyDocument", - "MicroStrategyDossier", - "MicroStrategyFact", - "MicroStrategyMetric", - "MicroStrategyProject", - "MicroStrategyReport", - "MicroStrategyVisualization", - "RelatedMicroStrategy", - "RelatedMicroStrategyAttribute", - "RelatedMicroStrategyColumn", - "RelatedMicroStrategyCube", - "RelatedMicroStrategyDocument", - "RelatedMicroStrategyDossier", - "RelatedMicroStrategyFact", - "RelatedMicroStrategyMetric", - "RelatedMicroStrategyProject", - "RelatedMicroStrategyReport", - "RelatedMicroStrategyVisualization", - ], - "_init_mode": [ - "Mode", - "ModeChart", - "ModeCollection", - "ModeQuery", - "ModeReport", - "ModeWorkspace", - "RelatedMode", - "RelatedModeChart", - "RelatedModeCollection", - "RelatedModeQuery", - "RelatedModeReport", - "RelatedModeWorkspace", - ], - "_init_model": [ - "Model", - "ModelAttribute", - "ModelAttributeAssociation", - "ModelDataModel", - "ModelEntity", - "ModelEntityAssociation", - "ModelVersion", - "RelatedModel", - "RelatedModelAttribute", - "RelatedModelAttributeAssociation", - "RelatedModelDataModel", - "RelatedModelEntity", - "RelatedModelEntityAssociation", - "RelatedModelVersion", - ], - "_init_mongo_db": [ - "MongoDB", - "MongoDBCollection", - "MongoDBDatabase", - "RelatedMongoDB", - "RelatedMongoDBCollection", - "RelatedMongoDBDatabase", - ], - "_init_monte_carlo": [ - "MCIncident", - "MCMonitor", - "MonteCarlo", - "RelatedMCIncident", - "RelatedMCMonitor", - "RelatedMonteCarlo", - ], - "_init_namespace": [ - "Collection", - "Folder", - "Namespace", - "RelatedCollection", - "RelatedFolder", - "RelatedNamespace", - ], - "_init_notebook": ["Notebook", "RelatedNotebook"], - "_init_partial": [ - "Partial", - "PartialField", - "PartialObject", - "RelatedPartial", - "RelatedPartialField", - "RelatedPartialObject", - ], - "_init_power_bi": [ - "PowerBI", - "PowerBIApp", - "PowerBIColumn", - "PowerBIDashboard", - "PowerBIDataflow", - "PowerBIDataflowEntityColumn", - "PowerBIDataset", - "PowerBIDatasource", - "PowerBIMeasure", - "PowerBIPage", - "PowerBIReport", - "PowerBITable", - "PowerBITile", - "PowerBIWorkspace", - "RelatedPowerBI", - "RelatedPowerBIApp", - "RelatedPowerBIColumn", - "RelatedPowerBIDashboard", - "RelatedPowerBIDataflow", - "RelatedPowerBIDataflowEntityColumn", - "RelatedPowerBIDataset", - "RelatedPowerBIDatasource", - "RelatedPowerBIMeasure", - "RelatedPowerBIPage", - "RelatedPowerBIReport", - "RelatedPowerBITable", - "RelatedPowerBITile", - "RelatedPowerBIWorkspace", - ], - "_init_preset": [ - "Preset", - "PresetChart", - "PresetDashboard", - "PresetDataset", - "PresetWorkspace", - "RelatedPreset", - "RelatedPresetChart", - "RelatedPresetDashboard", - "RelatedPresetDataset", - "RelatedPresetWorkspace", - ], - "_init_process": [ - "BIProcess", - "ColumnProcess", - "Process", - "RelatedBIProcess", - "RelatedColumnProcess", - "RelatedConnectionProcess", - "RelatedProcess", - ], - "_init_qlik": [ - "Qlik", - "QlikApp", - "QlikChart", - "QlikColumn", - "QlikDataset", - "QlikSheet", - "QlikSpace", - "RelatedQlik", - "RelatedQlikApp", - "RelatedQlikChart", - "RelatedQlikColumn", - "RelatedQlikDataset", - "RelatedQlikSheet", - "RelatedQlikSpace", - "RelatedQlikStream", - ], - "_init_quick_sight": [ - "QuickSight", - "QuickSightAnalysis", - "QuickSightAnalysisVisual", - "QuickSightDashboard", - "QuickSightDashboardVisual", - "QuickSightDataset", - "QuickSightDatasetField", - "QuickSightFolder", - "RelatedQuickSight", - "RelatedQuickSightAnalysis", - "RelatedQuickSightAnalysisVisual", - "RelatedQuickSightDashboard", - "RelatedQuickSightDashboardVisual", - "RelatedQuickSightDataset", - "RelatedQuickSightDatasetField", - "RelatedQuickSightFolder", - ], - "_init_redash": [ - "Redash", - "RedashDashboard", - "RedashQuery", - "RedashVisualization", - "RelatedRedash", - "RelatedRedashDashboard", - "RelatedRedashQuery", - "RelatedRedashVisualization", - ], - "_init_referenceable": ["Referenceable", "RelatedReferenceable"], - "_init_resource": [ - "File", - "Link", - "Readme", - "ReadmeTemplate", - "RelatedBadge", - "RelatedFile", - "RelatedLink", - "RelatedReadme", - "RelatedReadmeTemplate", - "RelatedResource", - "Related__internal", - "Resource", - ], - "_init_s3": [ - "RelatedS3", - "RelatedS3Bucket", - "RelatedS3Object", - "RelatedS3Prefix", - "S3", - "S3Bucket", - "S3Object", - "S3Prefix", - ], - "_init_sage_maker": [ - "RelatedSageMaker", - "RelatedSageMakerFeature", - "RelatedSageMakerFeatureGroup", - "RelatedSageMakerModel", - "RelatedSageMakerModelDeployment", - "RelatedSageMakerModelGroup", - "SageMaker", - "SageMakerFeature", - "SageMakerFeatureGroup", - "SageMakerModel", - "SageMakerModelDeployment", - "SageMakerModelGroup", - ], - "_init_sage_maker_unified_studio": [ - "RelatedSageMakerUnifiedStudio", - "RelatedSageMakerUnifiedStudioAsset", - "RelatedSageMakerUnifiedStudioAssetSchema", - "RelatedSageMakerUnifiedStudioProject", - "RelatedSageMakerUnifiedStudioPublishedAsset", - "RelatedSageMakerUnifiedStudioSubscribedAsset", - "SageMakerUnifiedStudio", - "SageMakerUnifiedStudioAsset", - "SageMakerUnifiedStudioAssetSchema", - "SageMakerUnifiedStudioProject", - "SageMakerUnifiedStudioPublishedAsset", - "SageMakerUnifiedStudioSubscribedAsset", - ], - "_init_salesforce": [ - "RelatedSalesforce", - "RelatedSalesforceDashboard", - "RelatedSalesforceField", - "RelatedSalesforceObject", - "RelatedSalesforceOrganization", - "RelatedSalesforceReport", - "Salesforce", - "SalesforceDashboard", - "SalesforceField", - "SalesforceObject", - "SalesforceOrganization", - "SalesforceReport", - ], - "_init_sap": [ - "RelatedSAP", - "RelatedSAPColumnProcess", - "RelatedSAPProcess", - "RelatedSapDatasphereReplicationFlow", - "RelatedSapErpAbapProgram", - "RelatedSapErpCdsView", - "RelatedSapErpColumn", - "RelatedSapErpComponent", - "RelatedSapErpFioriApp", - "RelatedSapErpFunctionModule", - "RelatedSapErpTable", - "RelatedSapErpTransactionCode", - "RelatedSapErpView", - "SAP", - "SAPColumnProcess", - "SAPProcess", - "SapDatasphereReplicationFlow", - "SapErpAbapProgram", - "SapErpCdsView", - "SapErpColumn", - "SapErpComponent", - "SapErpFioriApp", - "SapErpFunctionModule", - "SapErpTable", - "SapErpTransactionCode", - "SapErpView", - ], - "_init_sapbw": [ - "RelatedSAPBW", - "RelatedSAPBWADSO", - "RelatedSAPBWADSOField", - "RelatedSAPBWCompositeProvider", - "RelatedSAPBWCompositeProviderField", - "RelatedSAPBWDTP", - "RelatedSAPBWDataSource", - "RelatedSAPBWDataSourceField", - "RelatedSAPBWInfoArea", - "RelatedSAPBWInfoObject", - "RelatedSAPBWInfoSource", - "RelatedSAPBWInfoSourceField", - "RelatedSAPBWQuery", - "RelatedSAPBWQueryElement", - "RelatedSAPBWTransformation", - "SAPBW", - "SAPBWADSO", - "SAPBWADSOField", - "SAPBWCompositeProvider", - "SAPBWCompositeProviderField", - "SAPBWDTP", - "SAPBWDataSource", - "SAPBWDataSourceField", - "SAPBWInfoArea", - "SAPBWInfoObject", - "SAPBWInfoSource", - "SAPBWInfoSourceField", - "SAPBWQuery", - "SAPBWQueryElement", - "SAPBWTransformation", - ], - "_init_schema_registry": [ - "RelatedSchemaRegistry", - "RelatedSchemaRegistrySubject", - "RelatedSchemaRegistryVersion", - "SchemaRegistry", - "SchemaRegistrySubject", - "SchemaRegistryVersion", - ], - "_init_semantic": [ - "RelatedSemantic", - "RelatedSemanticDimension", - "RelatedSemanticEntity", - "RelatedSemanticField", - "RelatedSemanticMeasure", - "RelatedSemanticModel", - "Semantic", - "SemanticDimension", - "SemanticEntity", - "SemanticField", - "SemanticMeasure", - "SemanticModel", - ], - "_init_sigma": [ - "RelatedSigma", - "RelatedSigmaDataElement", - "RelatedSigmaDataElementField", - "RelatedSigmaDataModel", - "RelatedSigmaDataModelColumn", - "RelatedSigmaDataset", - "RelatedSigmaDatasetColumn", - "RelatedSigmaPage", - "RelatedSigmaWorkbook", - "Sigma", - "SigmaDataElement", - "SigmaDataElementField", - "SigmaDataModel", - "SigmaDataModelColumn", - "SigmaDataset", - "SigmaDatasetColumn", - "SigmaPage", - "SigmaWorkbook", - ], - "_init_sisense": [ - "RelatedSisense", - "RelatedSisenseDashboard", - "RelatedSisenseDatamodel", - "RelatedSisenseDatamodelTable", - "RelatedSisenseFolder", - "RelatedSisenseWidget", - "Sisense", - "SisenseDashboard", - "SisenseDatamodel", - "SisenseDatamodelTable", - "SisenseFolder", - "SisenseWidget", - ], - "_init_skill": ["RelatedSkill", "Skill"], - "_init_skill_artifact": ["RelatedSkillArtifact", "SkillArtifact"], - "_init_snowflake": [ - "RelatedSnowflake", - "RelatedSnowflakeAIModelContext", - "RelatedSnowflakeAIModelVersion", - "RelatedSnowflakeDynamicTable", - "RelatedSnowflakeListing", - "RelatedSnowflakePipe", - "RelatedSnowflakeSemanticDimension", - "RelatedSnowflakeSemanticFact", - "RelatedSnowflakeSemanticLogicalTable", - "RelatedSnowflakeSemanticMetric", - "RelatedSnowflakeSemanticView", - "RelatedSnowflakeShare", - "RelatedSnowflakeStage", - "RelatedSnowflakeStream", - "RelatedSnowflakeTag", - "Snowflake", - "SnowflakeAIModelContext", - "SnowflakeAIModelVersion", - "SnowflakeListing", - "SnowflakeSemanticDimension", - "SnowflakeSemanticFact", - "SnowflakeSemanticLogicalTable", - "SnowflakeSemanticMetric", - "SnowflakeSemanticView", - "SnowflakeShare", - ], - "_init_soda": [ - "RelatedSoda", - "RelatedSodaCheck", - "Soda", - "SodaCheck", - ], - "_init_spark": [ - "RelatedSpark", - "RelatedSparkJob", - "Spark", - "SparkJob", - ], - "_init_sql": [ - "CalculationView", - "Column", - "Database", - "Function", - "MaterialisedView", - "Procedure", - "Query", - "RelatedCalculationView", - "RelatedColumn", - "RelatedDatabase", - "RelatedFunction", - "RelatedMaterialisedView", - "RelatedProcedure", - "RelatedQuery", - "RelatedSQL", - "RelatedSchema", - "RelatedTable", - "RelatedTablePartition", - "RelatedView", - "SQL", - "Schema", - "Table", - "TablePartition", - "View", - ], - "_init_sql_insight": [ - "RelatedSqlInsight", - "RelatedSqlInsightBusinessQuestion", - "RelatedSqlInsightFilter", - "RelatedSqlInsightJoin", - "SqlInsight", - "SqlInsightBusinessQuestion", - "SqlInsightFilter", - "SqlInsightJoin", - ], - "_init_ssrs": [ - "RelatedSSRS", - "RelatedSSRSDataSet", - "RelatedSSRSField", - "RelatedSSRSFolder", - "RelatedSSRSReport", - "SSRS", - "SSRSDataSet", - "SSRSField", - "SSRSFolder", - "SSRSReport", - ], - "_init_starburst": [ - "RelatedStarburst", - "RelatedStarburstDataset", - "RelatedStarburstDatasetColumn", - "Starburst", - "StarburstDataset", - "StarburstDatasetColumn", - ], - "_init_superset": [ - "RelatedSuperset", - "RelatedSupersetChart", - "RelatedSupersetDashboard", - "RelatedSupersetDataset", - "Superset", - "SupersetChart", - "SupersetDashboard", - "SupersetDataset", - ], - "_init_tableau": [ - "RelatedTableau", - "RelatedTableauCalculatedField", - "RelatedTableauDashboard", - "RelatedTableauDashboardField", - "RelatedTableauDatasource", - "RelatedTableauDatasourceField", - "RelatedTableauFlow", - "RelatedTableauMetric", - "RelatedTableauProject", - "RelatedTableauSite", - "RelatedTableauWorkbook", - "RelatedTableauWorksheet", - "RelatedTableauWorksheetField", - "Tableau", - "TableauCalculatedField", - "TableauDashboard", - "TableauDashboardField", - "TableauDatasource", - "TableauDatasourceField", - "TableauFlow", - "TableauMetric", - "TableauProject", - "TableauSite", - "TableauWorkbook", - "TableauWorksheet", - "TableauWorksheetField", - ], - "_init_tag": [ - "RelatedSourceTag", - "RelatedTag", - "RelatedTagAttachment", - "SourceTag", - "Tag", - ], - "_init_task": ["RelatedTask", "Task"], - "_init_thoughtspot": [ - "RelatedThoughtspot", - "RelatedThoughtspotAnswer", - "RelatedThoughtspotColumn", - "RelatedThoughtspotDashlet", - "RelatedThoughtspotLiveboard", - "RelatedThoughtspotTable", - "RelatedThoughtspotView", - "RelatedThoughtspotWorksheet", - "Thoughtspot", - "ThoughtspotAnswer", - "ThoughtspotColumn", - "ThoughtspotDashlet", - "ThoughtspotLiveboard", - "ThoughtspotTable", - "ThoughtspotView", - "ThoughtspotWorksheet", - ], - "_init_unstructured": [ - "RelatedUnstructured", - "RelatedUnstructuredContainer", - "RelatedUnstructuredFolder", - "RelatedUnstructuredObject", - "Unstructured", - "UnstructuredContainer", - "UnstructuredFolder", - "UnstructuredObject", - ], - "_init_workflow": ["RelatedWorkflow", "RelatedWorkflowRun", "Workflow"], -} +Direct submodule imports are preferred and have zero overhead at import time:: -__getattr__, __dir__, __all__ = lazy.attach( - __name__, submod_attrs=__PYATLAN_V9_ASSETS__ -) + from pyatlan.models.column import Column # preferred — zero overhead -__all__ += [ - "AtlasClassification", +Package-level imports also work and only load the specific module needed:: + + from pyatlan.models import Column # lazy — only _init_sql.py loaded +""" + +from __future__ import annotations + +import ast +import importlib +import pkgutil +from pathlib import Path +from typing import Any + +# Base classes are always exported eagerly (they have no large transitive deps). +from .entity import AtlasClassification, Entity, TermAssignment +from .related_entity import RelatedEntity, SaveSemantic + +__all__ = [ + # Base classes "Entity", + "AtlasClassification", "TermAssignment", "RelatedEntity", "SaveSemantic", ] + +# Lazy index: class name → _init_module_name. +# Built once on first __getattr__ call via AST scanning (no module execution). +_lazy_index: dict[str, str] | None = None + + +def _build_lazy_index() -> dict[str, str]: + """Scan _init_*.py __all__ lists via AST to build a name→module map. + + Uses ast.parse() so no model modules are executed or imported — only their + source text is read to extract the __all__ list. + """ + index: dict[str, str] = {} + current_dir = Path(__file__).parent + for module_info in pkgutil.iter_modules([str(current_dir)]): + if not module_info.name.startswith("_init_"): + continue + module_file = current_dir / f"{module_info.name}.py" + try: + tree = ast.parse(module_file.read_bytes()) + except SyntaxError: + continue + for node in ast.walk(tree): + if isinstance(node, ast.Assign): + for target in node.targets: + if isinstance(target, ast.Name) and target.id == "__all__": + if isinstance(node.value, (ast.List, ast.Tuple)): + for elt in node.value.elts: + if isinstance(elt, ast.Constant) and isinstance( + elt.value, str + ): + index[elt.value] = module_info.name + return index + + +def __getattr__(name: str) -> Any: + """Lazy import of model classes on first access. + + Called by Python when an attribute is not found in this module's globals. + Enables ``from pyatlan.models import Column`` without eagerly importing all + model modules at package import time. + + The result is cached in globals() so subsequent accesses are O(1) dict lookups + and never go through __getattr__ again. + """ + global _lazy_index + if _lazy_index is None: + _lazy_index = _build_lazy_index() + + module_name = _lazy_index.get(name) + if module_name is not None: + module = importlib.import_module(f".{module_name}", __package__) + val = getattr(module, name) + # Cache in globals so future accesses bypass __getattr__ entirely. + globals()[name] = val + if name not in __all__: + __all__.append(name) + return val + + raise AttributeError(f"module 'pyatlan.models' has no attribute {name!r}") diff --git a/pyatlan_v9/model/assets/_init_fabric.py b/pyatlan_v9/model/assets/_init_fabric.py index 7c36161f7..14661b43d 100644 --- a/pyatlan_v9/model/assets/_init_fabric.py +++ b/pyatlan_v9/model/assets/_init_fabric.py @@ -25,6 +25,7 @@ RelatedFabricPage, RelatedFabricReport, RelatedFabricSemanticModel, + RelatedFabricSemanticModelMeasure, RelatedFabricSemanticModelTable, RelatedFabricSemanticModelTableColumn, RelatedFabricVisual, @@ -32,6 +33,7 @@ ) from .fabric_report import FabricReport from .fabric_semantic_model import FabricSemanticModel +from .fabric_semantic_model_measure import FabricSemanticModelMeasure from .fabric_semantic_model_table import FabricSemanticModelTable from .fabric_semantic_model_table_column import FabricSemanticModelTableColumn from .fabric_visual import FabricVisual @@ -47,6 +49,7 @@ "FabricPage", "FabricReport", "FabricSemanticModel", + "FabricSemanticModelMeasure", "FabricSemanticModelTable", "FabricSemanticModelTableColumn", "FabricVisual", @@ -60,6 +63,7 @@ "RelatedFabricPage", "RelatedFabricReport", "RelatedFabricSemanticModel", + "RelatedFabricSemanticModelMeasure", "RelatedFabricSemanticModelTable", "RelatedFabricSemanticModelTableColumn", "RelatedFabricVisual", diff --git a/pyatlan_v9/model/assets/_init_sap_analytics_cloud.py b/pyatlan_v9/model/assets/_init_sap_analytics_cloud.py new file mode 100644 index 000000000..a6801d4fa --- /dev/null +++ b/pyatlan_v9/model/assets/_init_sap_analytics_cloud.py @@ -0,0 +1,35 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +SapAnalyticsCloud module exports. + +This module provides convenient imports for all SapAnalyticsCloud types and their Related variants. +""" + +from .sap_analytics_cloud_related import ( + RelatedSapAnalyticsCloud, + RelatedSapAnalyticsCloudColumn, + RelatedSapAnalyticsCloudFolder, + RelatedSapAnalyticsCloudModel, + RelatedSapAnalyticsCloudStory, +) +from .sap_analytics_cloud import SapAnalyticsCloud +from .sap_analytics_cloud_column import SapAnalyticsCloudColumn +from .sap_analytics_cloud_folder import SapAnalyticsCloudFolder +from .sap_analytics_cloud_model import SapAnalyticsCloudModel +from .sap_analytics_cloud_story import SapAnalyticsCloudStory + +__all__ = [ + "RelatedSapAnalyticsCloud", + "RelatedSapAnalyticsCloudColumn", + "RelatedSapAnalyticsCloudFolder", + "RelatedSapAnalyticsCloudModel", + "RelatedSapAnalyticsCloudStory", + "SapAnalyticsCloud", + "SapAnalyticsCloudColumn", + "SapAnalyticsCloudFolder", + "SapAnalyticsCloudModel", + "SapAnalyticsCloudStory", +] diff --git a/pyatlan_v9/model/assets/asset_grouping_related.py b/pyatlan_v9/model/assets/asset_grouping_related.py index 0688ef417..8b94fbe11 100644 --- a/pyatlan_v9/model/assets/asset_grouping_related.py +++ b/pyatlan_v9/model/assets/asset_grouping_related.py @@ -11,6 +11,7 @@ from __future__ import annotations +from msgspec import UNSET from .catalog_related import RelatedCatalog from .referenceable_related import RelatedReferenceable diff --git a/pyatlan_v9/model/assets/asset_related.py b/pyatlan_v9/model/assets/asset_related.py index c59dccc9a..4a2bdcf58 100644 --- a/pyatlan_v9/model/assets/asset_related.py +++ b/pyatlan_v9/model/assets/asset_related.py @@ -814,7 +814,7 @@ class RelatedIncident(RelatedAsset): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "Incident" so it serializes correctly - asset_severity: Union[str, None, UnsetType] = UNSET + incident_severity: Union[str, None, UnsetType] = UNSET """Status of this asset's severity.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/atlan_app_related.py b/pyatlan_v9/model/assets/atlan_app_related.py index e835a7bfc..3d4a2563f 100644 --- a/pyatlan_v9/model/assets/atlan_app_related.py +++ b/pyatlan_v9/model/assets/atlan_app_related.py @@ -129,16 +129,16 @@ class RelatedAtlanAppTool(RelatedAtlanApp): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "AtlanAppTool" so it serializes correctly - atlan_app_input_schema: Union[str, None, UnsetType] = UNSET + atlan_app_tool_input_schema: Union[str, None, UnsetType] = UNSET """Input schema for the Atlan application tool (escaped JSON string of JSONSchema).""" - atlan_app_output_schema: Union[str, None, UnsetType] = UNSET + atlan_app_tool_output_schema: Union[str, None, UnsetType] = UNSET """Output schema for the Atlan application tool (escaped JSON string of JSONSchema).""" - atlan_app_task_queue: Union[str, None, UnsetType] = UNSET + atlan_app_tool_task_queue: Union[str, None, UnsetType] = UNSET """Name of the Temporal task queue for the Atlan application tool.""" - atlan_app_category: Union[str, None, UnsetType] = UNSET + atlan_app_tool_category: Union[str, None, UnsetType] = UNSET """Category of the tool.""" def __post_init__(self) -> None: @@ -157,37 +157,37 @@ class RelatedAtlanAppWorkflow(RelatedAtlanApp): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "AtlanAppWorkflow" so it serializes correctly - atlan_app_version: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_version: Union[str, None, UnsetType] = UNSET """Version of the workflow.""" - atlan_app_slug: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_slug: Union[str, None, UnsetType] = UNSET """Slug of the workflow.""" - atlan_app_dag: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_dag: Union[str, None, UnsetType] = UNSET """Map of all activity steps for the workflow (escaped JSON string).""" - atlan_app_status: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_status: Union[str, None, UnsetType] = UNSET """Status of the workflow.""" - atlan_app_error_handling: Union[Dict[str, Any], None, UnsetType] = UNSET + atlan_app_workflow_error_handling: Union[Dict[str, Any], None, UnsetType] = UNSET """Error handling strategy for the workflow.""" - atlan_app_ownership: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_ownership: Union[str, None, UnsetType] = UNSET """Ownership type of the workflow, indicating whether it is managed by Atlan or by a user.""" - atlan_app_source: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_source: Union[str, None, UnsetType] = UNSET """Product surface the workflow originated from (marketplace, enrichment_studio, context_studio), emitted as an AE workflow-metric label so Marketplace runs are distinguishable without slug pattern matching (AUT-1028).""" - atlan_app_triggers: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_triggers: Union[str, None, UnsetType] = UNSET """Triggers configured for this workflow (escaped JSON string).""" - atlan_app_agent_name: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_agent_name: Union[str, None, UnsetType] = UNSET """Name of the SDR agent this workflow's runs are routed to (the atlan-prefixed task queue's agent). Indexed so an agent's runs can be filtered server-side by joining runs to their parent workflow (DISTR-832).""" - atlan_app_deployment_name: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_deployment_name: Union[str, None, UnsetType] = UNSET """SDR deployment name this workflow's runs execute under. Denormalized from the run-time config for run-history filtering and metric labels.""" - atlan_app_runtime_mode: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_runtime_mode: Union[str, None, UnsetType] = UNSET """Execution runtime for this workflow's runs (SDR or DIRECT). Set at workflow save and constant across the workflow's runs.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/atlan_app_tool.py b/pyatlan_v9/model/assets/atlan_app_tool.py index 080144157..f4863e57f 100644 --- a/pyatlan_v9/model/assets/atlan_app_tool.py +++ b/pyatlan_v9/model/assets/atlan_app_tool.py @@ -71,10 +71,10 @@ class AtlanAppTool(Asset): Instance of a tool defined in an Atlan application. """ - ATLAN_APP_INPUT_SCHEMA: ClassVar[Any] = None - ATLAN_APP_OUTPUT_SCHEMA: ClassVar[Any] = None - ATLAN_APP_TASK_QUEUE: ClassVar[Any] = None - ATLAN_APP_CATEGORY: ClassVar[Any] = None + ATLAN_APP_TOOL_INPUT_SCHEMA: ClassVar[Any] = None + ATLAN_APP_TOOL_OUTPUT_SCHEMA: ClassVar[Any] = None + ATLAN_APP_TOOL_TASK_QUEUE: ClassVar[Any] = None + ATLAN_APP_TOOL_CATEGORY: ClassVar[Any] = None ATLAN_APP_QUALIFIED_NAME: ClassVar[Any] = None ATLAN_APP_NAME: ClassVar[Any] = None ATLAN_APP_METADATA: ClassVar[Any] = None @@ -117,16 +117,16 @@ class AtlanAppTool(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - atlan_app_input_schema: Union[str, None, UnsetType] = UNSET + atlan_app_tool_input_schema: Union[str, None, UnsetType] = UNSET """Input schema for the Atlan application tool (escaped JSON string of JSONSchema).""" - atlan_app_output_schema: Union[str, None, UnsetType] = UNSET + atlan_app_tool_output_schema: Union[str, None, UnsetType] = UNSET """Output schema for the Atlan application tool (escaped JSON string of JSONSchema).""" - atlan_app_task_queue: Union[str, None, UnsetType] = UNSET + atlan_app_tool_task_queue: Union[str, None, UnsetType] = UNSET """Name of the Temporal task queue for the Atlan application tool.""" - atlan_app_category: Union[str, None, UnsetType] = UNSET + atlan_app_tool_category: Union[str, None, UnsetType] = UNSET """Category of the tool.""" atlan_app_qualified_name: Union[str, None, UnsetType] = UNSET @@ -394,16 +394,16 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> AtlanAppToo class AtlanAppToolAttributes(AssetAttributes): """AtlanAppTool-specific attributes for nested API format.""" - atlan_app_input_schema: Union[str, None, UnsetType] = UNSET + atlan_app_tool_input_schema: Union[str, None, UnsetType] = UNSET """Input schema for the Atlan application tool (escaped JSON string of JSONSchema).""" - atlan_app_output_schema: Union[str, None, UnsetType] = UNSET + atlan_app_tool_output_schema: Union[str, None, UnsetType] = UNSET """Output schema for the Atlan application tool (escaped JSON string of JSONSchema).""" - atlan_app_task_queue: Union[str, None, UnsetType] = UNSET + atlan_app_tool_task_queue: Union[str, None, UnsetType] = UNSET """Name of the Temporal task queue for the Atlan application tool.""" - atlan_app_category: Union[str, None, UnsetType] = UNSET + atlan_app_tool_category: Union[str, None, UnsetType] = UNSET """Category of the tool.""" atlan_app_qualified_name: Union[str, None, UnsetType] = UNSET @@ -609,10 +609,10 @@ def _populate_atlan_app_tool_attrs( ) -> None: """Populate AtlanAppTool-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.atlan_app_input_schema = obj.atlan_app_input_schema - attrs.atlan_app_output_schema = obj.atlan_app_output_schema - attrs.atlan_app_task_queue = obj.atlan_app_task_queue - attrs.atlan_app_category = obj.atlan_app_category + attrs.atlan_app_tool_input_schema = obj.atlan_app_tool_input_schema + attrs.atlan_app_tool_output_schema = obj.atlan_app_tool_output_schema + attrs.atlan_app_tool_task_queue = obj.atlan_app_tool_task_queue + attrs.atlan_app_tool_category = obj.atlan_app_tool_category attrs.atlan_app_qualified_name = obj.atlan_app_qualified_name attrs.atlan_app_name = obj.atlan_app_name attrs.atlan_app_metadata = obj.atlan_app_metadata @@ -623,10 +623,10 @@ def _populate_atlan_app_tool_attrs( def _extract_atlan_app_tool_attrs(attrs: AtlanAppToolAttributes) -> dict: """Extract all AtlanAppTool attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["atlan_app_input_schema"] = attrs.atlan_app_input_schema - result["atlan_app_output_schema"] = attrs.atlan_app_output_schema - result["atlan_app_task_queue"] = attrs.atlan_app_task_queue - result["atlan_app_category"] = attrs.atlan_app_category + result["atlan_app_tool_input_schema"] = attrs.atlan_app_tool_input_schema + result["atlan_app_tool_output_schema"] = attrs.atlan_app_tool_output_schema + result["atlan_app_tool_task_queue"] = attrs.atlan_app_tool_task_queue + result["atlan_app_tool_category"] = attrs.atlan_app_tool_category result["atlan_app_qualified_name"] = attrs.atlan_app_qualified_name result["atlan_app_name"] = attrs.atlan_app_name result["atlan_app_metadata"] = attrs.atlan_app_metadata @@ -744,16 +744,18 @@ def _atlan_app_tool_from_nested_bytes(data: bytes, serde: Serde) -> AtlanAppTool TextField, ) -AtlanAppTool.ATLAN_APP_INPUT_SCHEMA = TextField( - "atlanAppInputSchema", "atlanAppInputSchema" +AtlanAppTool.ATLAN_APP_TOOL_INPUT_SCHEMA = TextField( + "atlanAppToolInputSchema", "atlanAppToolInputSchema" ) -AtlanAppTool.ATLAN_APP_OUTPUT_SCHEMA = TextField( - "atlanAppOutputSchema", "atlanAppOutputSchema" +AtlanAppTool.ATLAN_APP_TOOL_OUTPUT_SCHEMA = TextField( + "atlanAppToolOutputSchema", "atlanAppToolOutputSchema" ) -AtlanAppTool.ATLAN_APP_TASK_QUEUE = KeywordField( - "atlanAppTaskQueue", "atlanAppTaskQueue" +AtlanAppTool.ATLAN_APP_TOOL_TASK_QUEUE = KeywordField( + "atlanAppToolTaskQueue", "atlanAppToolTaskQueue" +) +AtlanAppTool.ATLAN_APP_TOOL_CATEGORY = KeywordField( + "atlanAppToolCategory", "atlanAppToolCategory" ) -AtlanAppTool.ATLAN_APP_CATEGORY = KeywordField("atlanAppCategory", "atlanAppCategory") AtlanAppTool.ATLAN_APP_QUALIFIED_NAME = KeywordField( "atlanAppQualifiedName", "atlanAppQualifiedName" ) diff --git a/pyatlan_v9/model/assets/atlan_app_workflow.py b/pyatlan_v9/model/assets/atlan_app_workflow.py index bd44049cc..3a6293d81 100644 --- a/pyatlan_v9/model/assets/atlan_app_workflow.py +++ b/pyatlan_v9/model/assets/atlan_app_workflow.py @@ -72,17 +72,17 @@ class AtlanAppWorkflow(Asset): Instance of a workflow in an Atlan application. """ - ATLAN_APP_VERSION: ClassVar[Any] = None - ATLAN_APP_SLUG: ClassVar[Any] = None - ATLAN_APP_DAG: ClassVar[Any] = None - ATLAN_APP_STATUS: ClassVar[Any] = None - ATLAN_APP_ERROR_HANDLING: ClassVar[Any] = None - ATLAN_APP_OWNERSHIP: ClassVar[Any] = None - ATLAN_APP_SOURCE: ClassVar[Any] = None - ATLAN_APP_TRIGGERS: ClassVar[Any] = None - ATLAN_APP_AGENT_NAME: ClassVar[Any] = None - ATLAN_APP_DEPLOYMENT_NAME: ClassVar[Any] = None - ATLAN_APP_RUNTIME_MODE: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_VERSION: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_SLUG: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_DAG: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_STATUS: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_ERROR_HANDLING: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_OWNERSHIP: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_SOURCE: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_TRIGGERS: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_AGENT_NAME: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_DEPLOYMENT_NAME: ClassVar[Any] = None + ATLAN_APP_WORKFLOW_RUNTIME_MODE: ClassVar[Any] = None ATLAN_APP_QUALIFIED_NAME: ClassVar[Any] = None ATLAN_APP_NAME: ClassVar[Any] = None ATLAN_APP_METADATA: ClassVar[Any] = None @@ -126,37 +126,37 @@ class AtlanAppWorkflow(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - atlan_app_version: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_version: Union[str, None, UnsetType] = UNSET """Version of the workflow.""" - atlan_app_slug: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_slug: Union[str, None, UnsetType] = UNSET """Slug of the workflow.""" - atlan_app_dag: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_dag: Union[str, None, UnsetType] = UNSET """Map of all activity steps for the workflow (escaped JSON string).""" - atlan_app_status: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_status: Union[str, None, UnsetType] = UNSET """Status of the workflow.""" - atlan_app_error_handling: Union[Dict[str, Any], None, UnsetType] = UNSET + atlan_app_workflow_error_handling: Union[Dict[str, Any], None, UnsetType] = UNSET """Error handling strategy for the workflow.""" - atlan_app_ownership: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_ownership: Union[str, None, UnsetType] = UNSET """Ownership type of the workflow, indicating whether it is managed by Atlan or by a user.""" - atlan_app_source: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_source: Union[str, None, UnsetType] = UNSET """Product surface the workflow originated from (marketplace, enrichment_studio, context_studio), emitted as an AE workflow-metric label so Marketplace runs are distinguishable without slug pattern matching (AUT-1028).""" - atlan_app_triggers: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_triggers: Union[str, None, UnsetType] = UNSET """Triggers configured for this workflow (escaped JSON string).""" - atlan_app_agent_name: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_agent_name: Union[str, None, UnsetType] = UNSET """Name of the SDR agent this workflow's runs are routed to (the atlan-prefixed task queue's agent). Indexed so an agent's runs can be filtered server-side by joining runs to their parent workflow (DISTR-832).""" - atlan_app_deployment_name: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_deployment_name: Union[str, None, UnsetType] = UNSET """SDR deployment name this workflow's runs execute under. Denormalized from the run-time config for run-history filtering and metric labels.""" - atlan_app_runtime_mode: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_runtime_mode: Union[str, None, UnsetType] = UNSET """Execution runtime for this workflow's runs (SDR or DIRECT). Set at workflow save and constant across the workflow's runs.""" atlan_app_qualified_name: Union[str, None, UnsetType] = UNSET @@ -429,37 +429,37 @@ def from_json( class AtlanAppWorkflowAttributes(AssetAttributes): """AtlanAppWorkflow-specific attributes for nested API format.""" - atlan_app_version: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_version: Union[str, None, UnsetType] = UNSET """Version of the workflow.""" - atlan_app_slug: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_slug: Union[str, None, UnsetType] = UNSET """Slug of the workflow.""" - atlan_app_dag: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_dag: Union[str, None, UnsetType] = UNSET """Map of all activity steps for the workflow (escaped JSON string).""" - atlan_app_status: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_status: Union[str, None, UnsetType] = UNSET """Status of the workflow.""" - atlan_app_error_handling: Union[Dict[str, Any], None, UnsetType] = UNSET + atlan_app_workflow_error_handling: Union[Dict[str, Any], None, UnsetType] = UNSET """Error handling strategy for the workflow.""" - atlan_app_ownership: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_ownership: Union[str, None, UnsetType] = UNSET """Ownership type of the workflow, indicating whether it is managed by Atlan or by a user.""" - atlan_app_source: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_source: Union[str, None, UnsetType] = UNSET """Product surface the workflow originated from (marketplace, enrichment_studio, context_studio), emitted as an AE workflow-metric label so Marketplace runs are distinguishable without slug pattern matching (AUT-1028).""" - atlan_app_triggers: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_triggers: Union[str, None, UnsetType] = UNSET """Triggers configured for this workflow (escaped JSON string).""" - atlan_app_agent_name: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_agent_name: Union[str, None, UnsetType] = UNSET """Name of the SDR agent this workflow's runs are routed to (the atlan-prefixed task queue's agent). Indexed so an agent's runs can be filtered server-side by joining runs to their parent workflow (DISTR-832).""" - atlan_app_deployment_name: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_deployment_name: Union[str, None, UnsetType] = UNSET """SDR deployment name this workflow's runs execute under. Denormalized from the run-time config for run-history filtering and metric labels.""" - atlan_app_runtime_mode: Union[str, None, UnsetType] = UNSET + atlan_app_workflow_runtime_mode: Union[str, None, UnsetType] = UNSET """Execution runtime for this workflow's runs (SDR or DIRECT). Set at workflow save and constant across the workflow's runs.""" atlan_app_qualified_name: Union[str, None, UnsetType] = UNSET @@ -669,17 +669,17 @@ def _populate_atlan_app_workflow_attrs( ) -> None: """Populate AtlanAppWorkflow-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.atlan_app_version = obj.atlan_app_version - attrs.atlan_app_slug = obj.atlan_app_slug - attrs.atlan_app_dag = obj.atlan_app_dag - attrs.atlan_app_status = obj.atlan_app_status - attrs.atlan_app_error_handling = obj.atlan_app_error_handling - attrs.atlan_app_ownership = obj.atlan_app_ownership - attrs.atlan_app_source = obj.atlan_app_source - attrs.atlan_app_triggers = obj.atlan_app_triggers - attrs.atlan_app_agent_name = obj.atlan_app_agent_name - attrs.atlan_app_deployment_name = obj.atlan_app_deployment_name - attrs.atlan_app_runtime_mode = obj.atlan_app_runtime_mode + attrs.atlan_app_workflow_version = obj.atlan_app_workflow_version + attrs.atlan_app_workflow_slug = obj.atlan_app_workflow_slug + attrs.atlan_app_workflow_dag = obj.atlan_app_workflow_dag + attrs.atlan_app_workflow_status = obj.atlan_app_workflow_status + attrs.atlan_app_workflow_error_handling = obj.atlan_app_workflow_error_handling + attrs.atlan_app_workflow_ownership = obj.atlan_app_workflow_ownership + attrs.atlan_app_workflow_source = obj.atlan_app_workflow_source + attrs.atlan_app_workflow_triggers = obj.atlan_app_workflow_triggers + attrs.atlan_app_workflow_agent_name = obj.atlan_app_workflow_agent_name + attrs.atlan_app_workflow_deployment_name = obj.atlan_app_workflow_deployment_name + attrs.atlan_app_workflow_runtime_mode = obj.atlan_app_workflow_runtime_mode attrs.atlan_app_qualified_name = obj.atlan_app_qualified_name attrs.atlan_app_name = obj.atlan_app_name attrs.atlan_app_metadata = obj.atlan_app_metadata @@ -690,17 +690,21 @@ def _populate_atlan_app_workflow_attrs( def _extract_atlan_app_workflow_attrs(attrs: AtlanAppWorkflowAttributes) -> dict: """Extract all AtlanAppWorkflow attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["atlan_app_version"] = attrs.atlan_app_version - result["atlan_app_slug"] = attrs.atlan_app_slug - result["atlan_app_dag"] = attrs.atlan_app_dag - result["atlan_app_status"] = attrs.atlan_app_status - result["atlan_app_error_handling"] = attrs.atlan_app_error_handling - result["atlan_app_ownership"] = attrs.atlan_app_ownership - result["atlan_app_source"] = attrs.atlan_app_source - result["atlan_app_triggers"] = attrs.atlan_app_triggers - result["atlan_app_agent_name"] = attrs.atlan_app_agent_name - result["atlan_app_deployment_name"] = attrs.atlan_app_deployment_name - result["atlan_app_runtime_mode"] = attrs.atlan_app_runtime_mode + result["atlan_app_workflow_version"] = attrs.atlan_app_workflow_version + result["atlan_app_workflow_slug"] = attrs.atlan_app_workflow_slug + result["atlan_app_workflow_dag"] = attrs.atlan_app_workflow_dag + result["atlan_app_workflow_status"] = attrs.atlan_app_workflow_status + result["atlan_app_workflow_error_handling"] = ( + attrs.atlan_app_workflow_error_handling + ) + result["atlan_app_workflow_ownership"] = attrs.atlan_app_workflow_ownership + result["atlan_app_workflow_source"] = attrs.atlan_app_workflow_source + result["atlan_app_workflow_triggers"] = attrs.atlan_app_workflow_triggers + result["atlan_app_workflow_agent_name"] = attrs.atlan_app_workflow_agent_name + result["atlan_app_workflow_deployment_name"] = ( + attrs.atlan_app_workflow_deployment_name + ) + result["atlan_app_workflow_runtime_mode"] = attrs.atlan_app_workflow_runtime_mode result["atlan_app_qualified_name"] = attrs.atlan_app_qualified_name result["atlan_app_name"] = attrs.atlan_app_name result["atlan_app_metadata"] = attrs.atlan_app_metadata @@ -824,26 +828,38 @@ def _atlan_app_workflow_from_nested_bytes( TextField, ) -AtlanAppWorkflow.ATLAN_APP_VERSION = KeywordField("atlanAppVersion", "atlanAppVersion") -AtlanAppWorkflow.ATLAN_APP_SLUG = KeywordField("atlanAppSlug", "atlanAppSlug") -AtlanAppWorkflow.ATLAN_APP_DAG = TextField("atlanAppDag", "atlanAppDag") -AtlanAppWorkflow.ATLAN_APP_STATUS = KeywordField("atlanAppStatus", "atlanAppStatus") -AtlanAppWorkflow.ATLAN_APP_ERROR_HANDLING = KeywordField( - "atlanAppErrorHandling", "atlanAppErrorHandling" +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_VERSION = KeywordField( + "atlanAppWorkflowVersion", "atlanAppWorkflowVersion" +) +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_SLUG = KeywordField( + "atlanAppWorkflowSlug", "atlanAppWorkflowSlug" +) +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_DAG = TextField( + "atlanAppWorkflowDag", "atlanAppWorkflowDag" +) +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_STATUS = KeywordField( + "atlanAppWorkflowStatus", "atlanAppWorkflowStatus" +) +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_ERROR_HANDLING = KeywordField( + "atlanAppWorkflowErrorHandling", "atlanAppWorkflowErrorHandling" +) +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_OWNERSHIP = KeywordField( + "atlanAppWorkflowOwnership", "atlanAppWorkflowOwnership" +) +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_SOURCE = KeywordField( + "atlanAppWorkflowSource", "atlanAppWorkflowSource" ) -AtlanAppWorkflow.ATLAN_APP_OWNERSHIP = KeywordField( - "atlanAppOwnership", "atlanAppOwnership" +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_TRIGGERS = TextField( + "atlanAppWorkflowTriggers", "atlanAppWorkflowTriggers" ) -AtlanAppWorkflow.ATLAN_APP_SOURCE = KeywordField("atlanAppSource", "atlanAppSource") -AtlanAppWorkflow.ATLAN_APP_TRIGGERS = TextField("atlanAppTriggers", "atlanAppTriggers") -AtlanAppWorkflow.ATLAN_APP_AGENT_NAME = KeywordField( - "atlanAppAgentName", "atlanAppAgentName" +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_AGENT_NAME = KeywordField( + "atlanAppWorkflowAgentName", "atlanAppWorkflowAgentName" ) -AtlanAppWorkflow.ATLAN_APP_DEPLOYMENT_NAME = KeywordField( - "atlanAppDeploymentName", "atlanAppDeploymentName" +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_DEPLOYMENT_NAME = KeywordField( + "atlanAppWorkflowDeploymentName", "atlanAppWorkflowDeploymentName" ) -AtlanAppWorkflow.ATLAN_APP_RUNTIME_MODE = KeywordField( - "atlanAppRuntimeMode", "atlanAppRuntimeMode" +AtlanAppWorkflow.ATLAN_APP_WORKFLOW_RUNTIME_MODE = KeywordField( + "atlanAppWorkflowRuntimeMode", "atlanAppWorkflowRuntimeMode" ) AtlanAppWorkflow.ATLAN_APP_QUALIFIED_NAME = KeywordField( "atlanAppQualifiedName", "atlanAppQualifiedName" diff --git a/pyatlan_v9/model/assets/atlas_glossary.py b/pyatlan_v9/model/assets/atlas_glossary.py index 0f0de2793..028bb646b 100644 --- a/pyatlan_v9/model/assets/atlas_glossary.py +++ b/pyatlan_v9/model/assets/atlas_glossary.py @@ -48,6 +48,7 @@ RelatedAtlasGlossaryCategory, RelatedAtlasGlossaryTerm, ) +from .knowledge_related import RelatedKnowledgeFile from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .referenceable_related import RelatedReferenceable from .resource_related import RelatedFile, RelatedLink, RelatedReadme @@ -86,6 +87,7 @@ class AtlasGlossary(Asset): MEANINGS: ClassVar[Any] = None TERMS: ClassVar[Any] = None CATEGORIES: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None @@ -163,6 +165,9 @@ class AtlasGlossary(Asset): categories: Union[List[RelatedAtlasGlossaryCategory], None, UnsetType] = UNSET """Categories contained within this glossary.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -424,6 +429,9 @@ class AtlasGlossaryRelationshipAttributes(AssetRelationshipAttributes): categories: Union[List[RelatedAtlasGlossaryCategory], None, UnsetType] = UNSET """Categories contained within this glossary.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -492,6 +500,7 @@ class AtlasGlossaryNested(AssetNested): "meanings", "terms", "categories", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "user_def_relationship_to", @@ -598,6 +607,7 @@ def _atlas_glossary_from_nested(nested: AtlasGlossaryNested) -> AtlasGlossary: updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -660,6 +670,7 @@ def _atlas_glossary_from_nested_bytes(data: bytes, serde: Serde) -> AtlasGlossar AtlasGlossary.MEANINGS = RelationField("meanings") AtlasGlossary.TERMS = RelationField("terms") AtlasGlossary.CATEGORIES = RelationField("categories") +AtlasGlossary.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") AtlasGlossary.MC_MONITORS = RelationField("mcMonitors") AtlasGlossary.MC_INCIDENTS = RelationField("mcIncidents") AtlasGlossary.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") diff --git a/pyatlan_v9/model/assets/atlas_glossary_category.py b/pyatlan_v9/model/assets/atlas_glossary_category.py index 3956c58af..c77ece8eb 100644 --- a/pyatlan_v9/model/assets/atlas_glossary_category.py +++ b/pyatlan_v9/model/assets/atlas_glossary_category.py @@ -48,6 +48,7 @@ RelatedAtlasGlossaryCategory, RelatedAtlasGlossaryTerm, ) +from .knowledge_related import RelatedKnowledgeFile from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .referenceable_related import RelatedReferenceable from .resource_related import RelatedFile, RelatedLink, RelatedReadme @@ -69,7 +70,6 @@ class AtlasGlossaryCategory(Asset): LONG_DESCRIPTION: ClassVar[Any] = None ADDITIONAL_ATTRIBUTES: ClassVar[Any] = None CATEGORY_TYPE: ClassVar[Any] = None - ANCHOR: ClassVar[Any] = None ANOMALO_CHECKS: ClassVar[Any] = None APPLICATION: ClassVar[Any] = None APPLICATION_FIELD: ClassVar[Any] = None @@ -84,8 +84,10 @@ class AtlasGlossaryCategory(Asset): GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None TERMS: ClassVar[Any] = None + ANCHOR: ClassVar[Any] = None CHILDREN_CATEGORIES: ClassVar[Any] = None PARENT_CATEGORY: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None @@ -108,9 +110,6 @@ class AtlasGlossaryCategory(Asset): category_type: Union[str, None, UnsetType] = UNSET """""" - anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET - """Glossary in which this category is contained.""" - anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET """Checks that run on this asset.""" @@ -157,6 +156,9 @@ class AtlasGlossaryCategory(Asset): terms: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Terms organized within this category.""" + anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET + """Glossary in which this category is contained.""" + children_categories: Union[List[RelatedAtlasGlossaryCategory], None, UnsetType] = ( UNSET ) @@ -165,6 +167,9 @@ class AtlasGlossaryCategory(Asset): parent_category: Union[RelatedAtlasGlossaryCategory, None, UnsetType] = UNSET """Parent category in which this category is located (or empty if this is a root-level category).""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -499,9 +504,6 @@ class AtlasGlossaryCategoryAttributes(AssetAttributes): category_type: Union[str, None, UnsetType] = UNSET """""" - anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET - """Glossary in which this category is contained.""" - class AtlasGlossaryCategoryRelationshipAttributes(AssetRelationshipAttributes): """AtlasGlossaryCategory-specific relationship attributes for nested API format.""" @@ -552,6 +554,9 @@ class AtlasGlossaryCategoryRelationshipAttributes(AssetRelationshipAttributes): terms: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Terms organized within this category.""" + anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET + """Glossary in which this category is contained.""" + children_categories: Union[List[RelatedAtlasGlossaryCategory], None, UnsetType] = ( UNSET ) @@ -560,6 +565,9 @@ class AtlasGlossaryCategoryRelationshipAttributes(AssetRelationshipAttributes): parent_category: Union[RelatedAtlasGlossaryCategory, None, UnsetType] = UNSET """Parent category in which this category is located (or empty if this is a root-level category).""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -627,8 +635,10 @@ class AtlasGlossaryCategoryNested(AssetNested): "gcp_dataplex_aspect_type_metadata_entities", "meanings", "terms", + "anchor", "children_categories", "parent_category", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "user_def_relationship_to", @@ -650,7 +660,6 @@ def _populate_atlas_glossary_category_attrs( attrs.long_description = obj.long_description attrs.additional_attributes = obj.additional_attributes attrs.category_type = obj.category_type - attrs.anchor = obj.anchor def _extract_atlas_glossary_category_attrs( @@ -662,7 +671,6 @@ def _extract_atlas_glossary_category_attrs( result["long_description"] = attrs.long_description result["additional_attributes"] = attrs.additional_attributes result["category_type"] = attrs.category_type - result["anchor"] = attrs.anchor return result @@ -741,6 +749,7 @@ def _atlas_glossary_category_from_nested( updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -788,7 +797,6 @@ def _atlas_glossary_category_from_nested_bytes( "additionalAttributes", "additionalAttributes" ) AtlasGlossaryCategory.CATEGORY_TYPE = KeywordField("categoryType", "categoryType") -AtlasGlossaryCategory.ANCHOR = KeywordField("anchor", "anchor") AtlasGlossaryCategory.ANOMALO_CHECKS = RelationField("anomaloChecks") AtlasGlossaryCategory.APPLICATION = RelationField("application") AtlasGlossaryCategory.APPLICATION_FIELD = RelationField("applicationField") @@ -811,8 +819,10 @@ def _atlas_glossary_category_from_nested_bytes( ) AtlasGlossaryCategory.MEANINGS = RelationField("meanings") AtlasGlossaryCategory.TERMS = RelationField("terms") +AtlasGlossaryCategory.ANCHOR = RelationField("anchor") AtlasGlossaryCategory.CHILDREN_CATEGORIES = RelationField("childrenCategories") AtlasGlossaryCategory.PARENT_CATEGORY = RelationField("parentCategory") +AtlasGlossaryCategory.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") AtlasGlossaryCategory.MC_MONITORS = RelationField("mcMonitors") AtlasGlossaryCategory.MC_INCIDENTS = RelationField("mcIncidents") AtlasGlossaryCategory.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") diff --git a/pyatlan_v9/model/assets/atlas_glossary_term.py b/pyatlan_v9/model/assets/atlas_glossary_term.py index b5813f122..703e0342b 100644 --- a/pyatlan_v9/model/assets/atlas_glossary_term.py +++ b/pyatlan_v9/model/assets/atlas_glossary_term.py @@ -48,6 +48,7 @@ RelatedAtlasGlossaryCategory, RelatedAtlasGlossaryTerm, ) +from .knowledge_related import RelatedKnowledgeFile from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .referenceable_related import RelatedReferenceable from .resource_related import RelatedFile, RelatedLink, RelatedReadme @@ -72,7 +73,6 @@ class AtlasGlossaryTerm(Asset): USAGE: ClassVar[Any] = None ADDITIONAL_ATTRIBUTES: ClassVar[Any] = None TERM_TYPE: ClassVar[Any] = None - ANCHOR: ClassVar[Any] = None ANOMALO_CHECKS: ClassVar[Any] = None APPLICATION: ClassVar[Any] = None APPLICATION_FIELD: ClassVar[Any] = None @@ -87,6 +87,7 @@ class AtlasGlossaryTerm(Asset): GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None ASSIGNED_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None + ANCHOR: ClassVar[Any] = None CATEGORIES: ClassVar[Any] = None SEE_ALSO: ClassVar[Any] = None SYNONYMS: ClassVar[Any] = None @@ -101,6 +102,7 @@ class AtlasGlossaryTerm(Asset): IS_A: ClassVar[Any] = None VALID_VALUES_FOR: ClassVar[Any] = None VALID_VALUES: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None @@ -132,9 +134,6 @@ class AtlasGlossaryTerm(Asset): term_type: Union[str, None, UnsetType] = UNSET """""" - anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET - """Glossary in which this term is contained.""" - anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET """Checks that run on this asset.""" @@ -181,6 +180,9 @@ class AtlasGlossaryTerm(Asset): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET + """Glossary in which this term is contained.""" + categories: Union[List[RelatedAtlasGlossaryCategory], None, UnsetType] = UNSET """Categories within which this term is organized.""" @@ -223,6 +225,9 @@ class AtlasGlossaryTerm(Asset): valid_values: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Valid values for this term.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -548,9 +553,6 @@ class AtlasGlossaryTermAttributes(AssetAttributes): term_type: Union[str, None, UnsetType] = UNSET """""" - anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET - """Glossary in which this term is contained.""" - class AtlasGlossaryTermRelationshipAttributes(AssetRelationshipAttributes): """AtlasGlossaryTerm-specific relationship attributes for nested API format.""" @@ -601,6 +603,9 @@ class AtlasGlossaryTermRelationshipAttributes(AssetRelationshipAttributes): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + anchor: Union[RelatedAtlasGlossary, None, UnsetType] = UNSET + """Glossary in which this term is contained.""" + categories: Union[List[RelatedAtlasGlossaryCategory], None, UnsetType] = UNSET """Categories within which this term is organized.""" @@ -643,6 +648,9 @@ class AtlasGlossaryTermRelationshipAttributes(AssetRelationshipAttributes): valid_values: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Valid values for this term.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -710,6 +718,7 @@ class AtlasGlossaryTermNested(AssetNested): "gcp_dataplex_aspect_type_metadata_entities", "assigned_entities", "meanings", + "anchor", "categories", "see_also", "synonyms", @@ -724,6 +733,7 @@ class AtlasGlossaryTermNested(AssetNested): "is_a", "valid_values_for", "valid_values", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "user_def_relationship_to", @@ -748,7 +758,6 @@ def _populate_atlas_glossary_term_attrs( attrs.usage = obj.usage attrs.additional_attributes = obj.additional_attributes attrs.term_type = obj.term_type - attrs.anchor = obj.anchor def _extract_atlas_glossary_term_attrs(attrs: AtlasGlossaryTermAttributes) -> dict: @@ -761,7 +770,6 @@ def _extract_atlas_glossary_term_attrs(attrs: AtlasGlossaryTermAttributes) -> di result["usage"] = attrs.usage result["additional_attributes"] = attrs.additional_attributes result["term_type"] = attrs.term_type - result["anchor"] = attrs.anchor return result @@ -840,6 +848,7 @@ def _atlas_glossary_term_from_nested( updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -888,7 +897,6 @@ def _atlas_glossary_term_from_nested_bytes( "additionalAttributes", "additionalAttributes" ) AtlasGlossaryTerm.TERM_TYPE = KeywordField("termType", "termType") -AtlasGlossaryTerm.ANCHOR = KeywordField("anchor", "anchor") AtlasGlossaryTerm.ANOMALO_CHECKS = RelationField("anomaloChecks") AtlasGlossaryTerm.APPLICATION = RelationField("application") AtlasGlossaryTerm.APPLICATION_FIELD = RelationField("applicationField") @@ -907,6 +915,7 @@ def _atlas_glossary_term_from_nested_bytes( ) AtlasGlossaryTerm.ASSIGNED_ENTITIES = RelationField("assignedEntities") AtlasGlossaryTerm.MEANINGS = RelationField("meanings") +AtlasGlossaryTerm.ANCHOR = RelationField("anchor") AtlasGlossaryTerm.CATEGORIES = RelationField("categories") AtlasGlossaryTerm.SEE_ALSO = RelationField("seeAlso") AtlasGlossaryTerm.SYNONYMS = RelationField("synonyms") @@ -921,6 +930,7 @@ def _atlas_glossary_term_from_nested_bytes( AtlasGlossaryTerm.IS_A = RelationField("isA") AtlasGlossaryTerm.VALID_VALUES_FOR = RelationField("validValuesFor") AtlasGlossaryTerm.VALID_VALUES = RelationField("validValues") +AtlasGlossaryTerm.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") AtlasGlossaryTerm.MC_MONITORS = RelationField("mcMonitors") AtlasGlossaryTerm.MC_INCIDENTS = RelationField("mcIncidents") AtlasGlossaryTerm.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") diff --git a/pyatlan_v9/model/assets/bigquery_related.py b/pyatlan_v9/model/assets/bigquery_related.py index e3dec4e17..2a8a8c0db 100644 --- a/pyatlan_v9/model/assets/bigquery_related.py +++ b/pyatlan_v9/model/assets/bigquery_related.py @@ -60,19 +60,19 @@ class RelatedBigqueryRoutine(RelatedProcedure): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "BigqueryRoutine" so it serializes correctly - bigquery_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_type: Union[str, None, UnsetType] = UNSET """Type of bigquery routine (sp, udf, or tvf).""" - bigquery_arguments: Union[List[str], None, UnsetType] = UNSET + bigquery_routine_arguments: Union[List[str], None, UnsetType] = UNSET """Arguments that are passed in to the routine.""" - bigquery_return_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_return_type: Union[str, None, UnsetType] = UNSET """Return data type of the bigquery routine (null for stored procedures).""" - bigquery_security_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_security_type: Union[str, None, UnsetType] = UNSET """Security type of the routine, always null.""" - bigquery_ddl: Union[str, None, UnsetType] = UNSET + bigquery_routine_ddl: Union[str, None, UnsetType] = UNSET """The ddl statement used to create the bigquery routine.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/bigquery_routine.py b/pyatlan_v9/model/assets/bigquery_routine.py index 1ffb259f3..de8fa50fe 100644 --- a/pyatlan_v9/model/assets/bigquery_routine.py +++ b/pyatlan_v9/model/assets/bigquery_routine.py @@ -80,11 +80,11 @@ class BigqueryRoutine(Asset): Instance of a bigquery routine in atlan. Can be a stored procedure, udf, or tvf. """ - BIGQUERY_TYPE: ClassVar[Any] = None - BIGQUERY_ARGUMENTS: ClassVar[Any] = None - BIGQUERY_RETURN_TYPE: ClassVar[Any] = None - BIGQUERY_SECURITY_TYPE: ClassVar[Any] = None - BIGQUERY_DDL: ClassVar[Any] = None + BIGQUERY_ROUTINE_TYPE: ClassVar[Any] = None + BIGQUERY_ROUTINE_ARGUMENTS: ClassVar[Any] = None + BIGQUERY_ROUTINE_RETURN_TYPE: ClassVar[Any] = None + BIGQUERY_ROUTINE_SECURITY_TYPE: ClassVar[Any] = None + BIGQUERY_ROUTINE_DDL: ClassVar[Any] = None DEFINITION: ClassVar[Any] = None SQL_LANGUAGE: ClassVar[Any] = None SQL_RUNTIME_VERSION: ClassVar[Any] = None @@ -178,19 +178,19 @@ class BigqueryRoutine(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - bigquery_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_type: Union[str, None, UnsetType] = UNSET """Type of bigquery routine (sp, udf, or tvf).""" - bigquery_arguments: Union[List[str], None, UnsetType] = UNSET + bigquery_routine_arguments: Union[List[str], None, UnsetType] = UNSET """Arguments that are passed in to the routine.""" - bigquery_return_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_return_type: Union[str, None, UnsetType] = UNSET """Return data type of the bigquery routine (null for stored procedures).""" - bigquery_security_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_security_type: Union[str, None, UnsetType] = UNSET """Security type of the routine, always null.""" - bigquery_ddl: Union[str, None, UnsetType] = UNSET + bigquery_routine_ddl: Union[str, None, UnsetType] = UNSET """The ddl statement used to create the bigquery routine.""" definition: Union[str, None, UnsetType] = UNSET @@ -616,19 +616,19 @@ def from_json( class BigqueryRoutineAttributes(AssetAttributes): """BigqueryRoutine-specific attributes for nested API format.""" - bigquery_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_type: Union[str, None, UnsetType] = UNSET """Type of bigquery routine (sp, udf, or tvf).""" - bigquery_arguments: Union[List[str], None, UnsetType] = UNSET + bigquery_routine_arguments: Union[List[str], None, UnsetType] = UNSET """Arguments that are passed in to the routine.""" - bigquery_return_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_return_type: Union[str, None, UnsetType] = UNSET """Return data type of the bigquery routine (null for stored procedures).""" - bigquery_security_type: Union[str, None, UnsetType] = UNSET + bigquery_routine_security_type: Union[str, None, UnsetType] = UNSET """Security type of the routine, always null.""" - bigquery_ddl: Union[str, None, UnsetType] = UNSET + bigquery_routine_ddl: Union[str, None, UnsetType] = UNSET """The ddl statement used to create the bigquery routine.""" definition: Union[str, None, UnsetType] = UNSET @@ -1011,11 +1011,11 @@ def _populate_bigquery_routine_attrs( ) -> None: """Populate BigqueryRoutine-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.bigquery_type = obj.bigquery_type - attrs.bigquery_arguments = obj.bigquery_arguments - attrs.bigquery_return_type = obj.bigquery_return_type - attrs.bigquery_security_type = obj.bigquery_security_type - attrs.bigquery_ddl = obj.bigquery_ddl + attrs.bigquery_routine_type = obj.bigquery_routine_type + attrs.bigquery_routine_arguments = obj.bigquery_routine_arguments + attrs.bigquery_routine_return_type = obj.bigquery_routine_return_type + attrs.bigquery_routine_security_type = obj.bigquery_routine_security_type + attrs.bigquery_routine_ddl = obj.bigquery_routine_ddl attrs.definition = obj.definition attrs.sql_language = obj.sql_language attrs.sql_runtime_version = obj.sql_runtime_version @@ -1071,11 +1071,11 @@ def _populate_bigquery_routine_attrs( def _extract_bigquery_routine_attrs(attrs: BigqueryRoutineAttributes) -> dict: """Extract all BigqueryRoutine attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["bigquery_type"] = attrs.bigquery_type - result["bigquery_arguments"] = attrs.bigquery_arguments - result["bigquery_return_type"] = attrs.bigquery_return_type - result["bigquery_security_type"] = attrs.bigquery_security_type - result["bigquery_ddl"] = attrs.bigquery_ddl + result["bigquery_routine_type"] = attrs.bigquery_routine_type + result["bigquery_routine_arguments"] = attrs.bigquery_routine_arguments + result["bigquery_routine_return_type"] = attrs.bigquery_routine_return_type + result["bigquery_routine_security_type"] = attrs.bigquery_routine_security_type + result["bigquery_routine_ddl"] = attrs.bigquery_routine_ddl result["definition"] = attrs.definition result["sql_language"] = attrs.sql_language result["sql_runtime_version"] = attrs.sql_runtime_version @@ -1250,17 +1250,21 @@ def _bigquery_routine_from_nested_bytes(data: bytes, serde: Serde) -> BigqueryRo RelationField, ) -BigqueryRoutine.BIGQUERY_TYPE = KeywordField("bigqueryType", "bigqueryType") -BigqueryRoutine.BIGQUERY_ARGUMENTS = KeywordField( - "bigqueryArguments", "bigqueryArguments" +BigqueryRoutine.BIGQUERY_ROUTINE_TYPE = KeywordField( + "bigqueryRoutineType", "bigqueryRoutineType" ) -BigqueryRoutine.BIGQUERY_RETURN_TYPE = KeywordField( - "bigqueryReturnType", "bigqueryReturnType" +BigqueryRoutine.BIGQUERY_ROUTINE_ARGUMENTS = KeywordField( + "bigqueryRoutineArguments", "bigqueryRoutineArguments" ) -BigqueryRoutine.BIGQUERY_SECURITY_TYPE = KeywordField( - "bigquerySecurityType", "bigquerySecurityType" +BigqueryRoutine.BIGQUERY_ROUTINE_RETURN_TYPE = KeywordField( + "bigqueryRoutineReturnType", "bigqueryRoutineReturnType" +) +BigqueryRoutine.BIGQUERY_ROUTINE_SECURITY_TYPE = KeywordField( + "bigqueryRoutineSecurityType", "bigqueryRoutineSecurityType" +) +BigqueryRoutine.BIGQUERY_ROUTINE_DDL = KeywordField( + "bigqueryRoutineDdl", "bigqueryRoutineDdl" ) -BigqueryRoutine.BIGQUERY_DDL = KeywordField("bigqueryDdl", "bigqueryDdl") BigqueryRoutine.DEFINITION = KeywordField("definition", "definition") BigqueryRoutine.SQL_LANGUAGE = KeywordTextField( "sqlLanguage", "sqlLanguage", "sqlLanguage.text" diff --git a/pyatlan_v9/model/assets/calculation_view.py b/pyatlan_v9/model/assets/calculation_view.py index a54a0872b..f051f24e0 100644 --- a/pyatlan_v9/model/assets/calculation_view.py +++ b/pyatlan_v9/model/assets/calculation_view.py @@ -80,10 +80,10 @@ class CalculationView(Asset): """ COLUMN_COUNT: ClassVar[Any] = None - SQL_VERSION_ID: ClassVar[Any] = None - SQL_ACTIVATED_BY: ClassVar[Any] = None - SQL_ACTIVATED_AT: ClassVar[Any] = None - SQL_PACKAGE_ID: ClassVar[Any] = None + CALCULATION_VIEW_VERSION_ID: ClassVar[Any] = None + CALCULATION_VIEW_ACTIVATED_BY: ClassVar[Any] = None + CALCULATION_VIEW_ACTIVATED_AT: ClassVar[Any] = None + CALCULATION_VIEW_PACKAGE_ID: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -167,16 +167,16 @@ class CalculationView(Asset): column_count: Union[int, None, UnsetType] = UNSET """Number of columns in this calculation view.""" - sql_version_id: Union[int, None, UnsetType] = UNSET + calculation_view_version_id: Union[int, None, UnsetType] = UNSET """The version ID of this calculation view.""" - sql_activated_by: Union[str, None, UnsetType] = UNSET + calculation_view_activated_by: Union[str, None, UnsetType] = UNSET """The owner who activated the calculation view""" - sql_activated_at: Union[int, None, UnsetType] = UNSET + calculation_view_activated_at: Union[int, None, UnsetType] = UNSET """Time at which this calculation view was activated at""" - sql_package_id: Union[str, None, UnsetType] = UNSET + calculation_view_package_id: Union[str, None, UnsetType] = UNSET """The full package id path to which a calculation view belongs/resides in the repository.""" query_count: Union[int, None, UnsetType] = UNSET @@ -583,16 +583,16 @@ class CalculationViewAttributes(AssetAttributes): column_count: Union[int, None, UnsetType] = UNSET """Number of columns in this calculation view.""" - sql_version_id: Union[int, None, UnsetType] = UNSET + calculation_view_version_id: Union[int, None, UnsetType] = UNSET """The version ID of this calculation view.""" - sql_activated_by: Union[str, None, UnsetType] = UNSET + calculation_view_activated_by: Union[str, None, UnsetType] = UNSET """The owner who activated the calculation view""" - sql_activated_at: Union[int, None, UnsetType] = UNSET + calculation_view_activated_at: Union[int, None, UnsetType] = UNSET """Time at which this calculation view was activated at""" - sql_package_id: Union[str, None, UnsetType] = UNSET + calculation_view_package_id: Union[str, None, UnsetType] = UNSET """The full package id path to which a calculation view belongs/resides in the repository.""" query_count: Union[int, None, UnsetType] = UNSET @@ -934,10 +934,10 @@ def _populate_calculation_view_attrs( """Populate CalculationView-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) attrs.column_count = obj.column_count - attrs.sql_version_id = obj.sql_version_id - attrs.sql_activated_by = obj.sql_activated_by - attrs.sql_activated_at = obj.sql_activated_at - attrs.sql_package_id = obj.sql_package_id + attrs.calculation_view_version_id = obj.calculation_view_version_id + attrs.calculation_view_activated_by = obj.calculation_view_activated_by + attrs.calculation_view_activated_at = obj.calculation_view_activated_at + attrs.calculation_view_package_id = obj.calculation_view_package_id attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -982,10 +982,10 @@ def _extract_calculation_view_attrs(attrs: CalculationViewAttributes) -> dict: """Extract all CalculationView attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) result["column_count"] = attrs.column_count - result["sql_version_id"] = attrs.sql_version_id - result["sql_activated_by"] = attrs.sql_activated_by - result["sql_activated_at"] = attrs.sql_activated_at - result["sql_package_id"] = attrs.sql_package_id + result["calculation_view_version_id"] = attrs.calculation_view_version_id + result["calculation_view_activated_by"] = attrs.calculation_view_activated_by + result["calculation_view_activated_at"] = attrs.calculation_view_activated_at + result["calculation_view_package_id"] = attrs.calculation_view_package_id result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1149,10 +1149,18 @@ def _calculation_view_from_nested_bytes(data: bytes, serde: Serde) -> Calculatio ) CalculationView.COLUMN_COUNT = NumericField("columnCount", "columnCount") -CalculationView.SQL_VERSION_ID = NumericField("sqlVersionId", "sqlVersionId") -CalculationView.SQL_ACTIVATED_BY = KeywordField("sqlActivatedBy", "sqlActivatedBy") -CalculationView.SQL_ACTIVATED_AT = NumericField("sqlActivatedAt", "sqlActivatedAt") -CalculationView.SQL_PACKAGE_ID = KeywordField("sqlPackageId", "sqlPackageId") +CalculationView.CALCULATION_VIEW_VERSION_ID = NumericField( + "calculationViewVersionId", "calculationViewVersionId" +) +CalculationView.CALCULATION_VIEW_ACTIVATED_BY = KeywordField( + "calculationViewActivatedBy", "calculationViewActivatedBy" +) +CalculationView.CALCULATION_VIEW_ACTIVATED_AT = NumericField( + "calculationViewActivatedAt", "calculationViewActivatedAt" +) +CalculationView.CALCULATION_VIEW_PACKAGE_ID = KeywordField( + "calculationViewPackageId", "calculationViewPackageId" +) CalculationView.QUERY_COUNT = NumericField("queryCount", "queryCount") CalculationView.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") CalculationView.QUERY_USER_MAP = KeywordField("queryUserMap", "queryUserMap") diff --git a/pyatlan_v9/model/assets/cloud_related.py b/pyatlan_v9/model/assets/cloud_related.py index 859adac61..21afed602 100644 --- a/pyatlan_v9/model/assets/cloud_related.py +++ b/pyatlan_v9/model/assets/cloud_related.py @@ -135,7 +135,7 @@ class RelatedGoogle(RelatedCloud): google_project_id: Union[str, None, UnsetType] = UNSET """ID of the project in which the asset exists.""" - cloud_project_number: Union[int, None, UnsetType] = UNSET + google_project_number: Union[int, None, UnsetType] = UNSET """Number of the project in which the asset exists.""" google_location: Union[str, None, UnsetType] = UNSET diff --git a/pyatlan_v9/model/assets/cognite_related.py b/pyatlan_v9/model/assets/cognite_related.py index df14e00a6..b20cc5ce2 100644 --- a/pyatlan_v9/model/assets/cognite_related.py +++ b/pyatlan_v9/model/assets/cognite_related.py @@ -11,6 +11,7 @@ from __future__ import annotations +from msgspec import UNSET from .catalog_related import RelatedSaaS from .referenceable_related import RelatedReferenceable diff --git a/pyatlan_v9/model/assets/cognos_column.py b/pyatlan_v9/model/assets/cognos_column.py index 6842e63a1..b405b1139 100644 --- a/pyatlan_v9/model/assets/cognos_column.py +++ b/pyatlan_v9/model/assets/cognos_column.py @@ -75,9 +75,9 @@ class CognosColumn(Asset): Instance of a Cognos column in Atlan. """ - COGNOS_DATATYPE: ClassVar[Any] = None - COGNOS_NULLABLE: ClassVar[Any] = None - COGNOS_REGULAR_AGGREGATE: ClassVar[Any] = None + COGNOS_COLUMN_DATATYPE: ClassVar[Any] = None + COGNOS_COLUMN_NULLABLE: ClassVar[Any] = None + COGNOS_COLUMN_REGULAR_AGGREGATE: ClassVar[Any] = None COGNOS_ID: ClassVar[Any] = None COGNOS_PATH: ClassVar[Any] = None COGNOS_PARENT_NAME: ClassVar[Any] = None @@ -128,13 +128,13 @@ class CognosColumn(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - cognos_datatype: Union[str, None, UnsetType] = UNSET + cognos_column_datatype: Union[str, None, UnsetType] = UNSET """Data type of the CognosColumn.""" - cognos_nullable: Union[str, None, UnsetType] = UNSET + cognos_column_nullable: Union[str, None, UnsetType] = UNSET """Whether the CognosColumn is nullable.""" - cognos_regular_aggregate: Union[str, None, UnsetType] = UNSET + cognos_column_regular_aggregate: Union[str, None, UnsetType] = UNSET """How data should be summarized when aggregated across different dimensions or groupings.""" cognos_id: Union[str, None, UnsetType] = UNSET @@ -426,13 +426,13 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> CognosColum class CognosColumnAttributes(AssetAttributes): """CognosColumn-specific attributes for nested API format.""" - cognos_datatype: Union[str, None, UnsetType] = UNSET + cognos_column_datatype: Union[str, None, UnsetType] = UNSET """Data type of the CognosColumn.""" - cognos_nullable: Union[str, None, UnsetType] = UNSET + cognos_column_nullable: Union[str, None, UnsetType] = UNSET """Whether the CognosColumn is nullable.""" - cognos_regular_aggregate: Union[str, None, UnsetType] = UNSET + cognos_column_regular_aggregate: Union[str, None, UnsetType] = UNSET """How data should be summarized when aggregated across different dimensions or groupings.""" cognos_id: Union[str, None, UnsetType] = UNSET @@ -665,9 +665,9 @@ def _populate_cognos_column_attrs( ) -> None: """Populate CognosColumn-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.cognos_datatype = obj.cognos_datatype - attrs.cognos_nullable = obj.cognos_nullable - attrs.cognos_regular_aggregate = obj.cognos_regular_aggregate + attrs.cognos_column_datatype = obj.cognos_column_datatype + attrs.cognos_column_nullable = obj.cognos_column_nullable + attrs.cognos_column_regular_aggregate = obj.cognos_column_regular_aggregate attrs.cognos_id = obj.cognos_id attrs.cognos_path = obj.cognos_path attrs.cognos_parent_name = obj.cognos_parent_name @@ -683,9 +683,9 @@ def _populate_cognos_column_attrs( def _extract_cognos_column_attrs(attrs: CognosColumnAttributes) -> dict: """Extract all CognosColumn attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["cognos_datatype"] = attrs.cognos_datatype - result["cognos_nullable"] = attrs.cognos_nullable - result["cognos_regular_aggregate"] = attrs.cognos_regular_aggregate + result["cognos_column_datatype"] = attrs.cognos_column_datatype + result["cognos_column_nullable"] = attrs.cognos_column_nullable + result["cognos_column_regular_aggregate"] = attrs.cognos_column_regular_aggregate result["cognos_id"] = attrs.cognos_id result["cognos_path"] = attrs.cognos_path result["cognos_parent_name"] = attrs.cognos_parent_name @@ -807,10 +807,14 @@ def _cognos_column_from_nested_bytes(data: bytes, serde: Serde) -> CognosColumn: RelationField, ) -CognosColumn.COGNOS_DATATYPE = KeywordField("cognosDatatype", "cognosDatatype") -CognosColumn.COGNOS_NULLABLE = KeywordField("cognosNullable", "cognosNullable") -CognosColumn.COGNOS_REGULAR_AGGREGATE = KeywordField( - "cognosRegularAggregate", "cognosRegularAggregate" +CognosColumn.COGNOS_COLUMN_DATATYPE = KeywordField( + "cognosColumnDatatype", "cognosColumnDatatype" +) +CognosColumn.COGNOS_COLUMN_NULLABLE = KeywordField( + "cognosColumnNullable", "cognosColumnNullable" +) +CognosColumn.COGNOS_COLUMN_REGULAR_AGGREGATE = KeywordField( + "cognosColumnRegularAggregate", "cognosColumnRegularAggregate" ) CognosColumn.COGNOS_ID = KeywordField("cognosId", "cognosId") CognosColumn.COGNOS_PATH = KeywordField("cognosPath", "cognosPath") diff --git a/pyatlan_v9/model/assets/cognos_datasource.py b/pyatlan_v9/model/assets/cognos_datasource.py index 09486d094..bb5563d4d 100644 --- a/pyatlan_v9/model/assets/cognos_datasource.py +++ b/pyatlan_v9/model/assets/cognos_datasource.py @@ -66,7 +66,7 @@ class CognosDatasource(Asset): Instance of a Cognos datasource in Atlan. """ - COGNOS_CONNECTION_STRING: ClassVar[Any] = None + COGNOS_DATASOURCE_CONNECTION_STRING: ClassVar[Any] = None COGNOS_ID: ClassVar[Any] = None COGNOS_PATH: ClassVar[Any] = None COGNOS_PARENT_NAME: ClassVar[Any] = None @@ -111,7 +111,7 @@ class CognosDatasource(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - cognos_connection_string: Union[str, None, UnsetType] = UNSET + cognos_datasource_connection_string: Union[str, None, UnsetType] = UNSET """Connection string of a Cognos datasource.""" cognos_id: Union[str, None, UnsetType] = UNSET @@ -373,7 +373,7 @@ def from_json( class CognosDatasourceAttributes(AssetAttributes): """CognosDatasource-specific attributes for nested API format.""" - cognos_connection_string: Union[str, None, UnsetType] = UNSET + cognos_datasource_connection_string: Union[str, None, UnsetType] = UNSET """Connection string of a Cognos datasource.""" cognos_id: Union[str, None, UnsetType] = UNSET @@ -582,7 +582,7 @@ def _populate_cognos_datasource_attrs( ) -> None: """Populate CognosDatasource-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.cognos_connection_string = obj.cognos_connection_string + attrs.cognos_datasource_connection_string = obj.cognos_datasource_connection_string attrs.cognos_id = obj.cognos_id attrs.cognos_path = obj.cognos_path attrs.cognos_parent_name = obj.cognos_parent_name @@ -598,7 +598,9 @@ def _populate_cognos_datasource_attrs( def _extract_cognos_datasource_attrs(attrs: CognosDatasourceAttributes) -> dict: """Extract all CognosDatasource attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["cognos_connection_string"] = attrs.cognos_connection_string + result["cognos_datasource_connection_string"] = ( + attrs.cognos_datasource_connection_string + ) result["cognos_id"] = attrs.cognos_id result["cognos_path"] = attrs.cognos_path result["cognos_parent_name"] = attrs.cognos_parent_name @@ -726,8 +728,8 @@ def _cognos_datasource_from_nested_bytes(data: bytes, serde: Serde) -> CognosDat RelationField, ) -CognosDatasource.COGNOS_CONNECTION_STRING = KeywordField( - "cognosConnectionString", "cognosConnectionString" +CognosDatasource.COGNOS_DATASOURCE_CONNECTION_STRING = KeywordField( + "cognosDatasourceConnectionString", "cognosDatasourceConnectionString" ) CognosDatasource.COGNOS_ID = KeywordField("cognosId", "cognosId") CognosDatasource.COGNOS_PATH = KeywordField("cognosPath", "cognosPath") diff --git a/pyatlan_v9/model/assets/cognos_folder.py b/pyatlan_v9/model/assets/cognos_folder.py index 36d9d3076..9de07267d 100644 --- a/pyatlan_v9/model/assets/cognos_folder.py +++ b/pyatlan_v9/model/assets/cognos_folder.py @@ -76,8 +76,8 @@ class CognosFolder(Asset): Instance of a Cognos folder in Atlan. """ - COGNOS_SUB_FOLDER_COUNT: ClassVar[Any] = None - COGNOS_CHILD_OBJECTS_COUNT: ClassVar[Any] = None + COGNOS_FOLDER_SUB_FOLDER_COUNT: ClassVar[Any] = None + COGNOS_FOLDER_CHILD_OBJECTS_COUNT: ClassVar[Any] = None COGNOS_ID: ClassVar[Any] = None COGNOS_PATH: ClassVar[Any] = None COGNOS_PARENT_NAME: ClassVar[Any] = None @@ -131,10 +131,10 @@ class CognosFolder(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - cognos_sub_folder_count: Union[int, None, UnsetType] = UNSET + cognos_folder_sub_folder_count: Union[int, None, UnsetType] = UNSET """Number of sub-folders in the folder.""" - cognos_child_objects_count: Union[int, None, UnsetType] = UNSET + cognos_folder_child_objects_count: Union[int, None, UnsetType] = UNSET """Number of children in the folder (excluding subfolders).""" cognos_id: Union[str, None, UnsetType] = UNSET @@ -431,10 +431,10 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> CognosFolde class CognosFolderAttributes(AssetAttributes): """CognosFolder-specific attributes for nested API format.""" - cognos_sub_folder_count: Union[int, None, UnsetType] = UNSET + cognos_folder_sub_folder_count: Union[int, None, UnsetType] = UNSET """Number of sub-folders in the folder.""" - cognos_child_objects_count: Union[int, None, UnsetType] = UNSET + cognos_folder_child_objects_count: Union[int, None, UnsetType] = UNSET """Number of children in the folder (excluding subfolders).""" cognos_id: Union[str, None, UnsetType] = UNSET @@ -679,8 +679,8 @@ def _populate_cognos_folder_attrs( ) -> None: """Populate CognosFolder-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.cognos_sub_folder_count = obj.cognos_sub_folder_count - attrs.cognos_child_objects_count = obj.cognos_child_objects_count + attrs.cognos_folder_sub_folder_count = obj.cognos_folder_sub_folder_count + attrs.cognos_folder_child_objects_count = obj.cognos_folder_child_objects_count attrs.cognos_id = obj.cognos_id attrs.cognos_path = obj.cognos_path attrs.cognos_parent_name = obj.cognos_parent_name @@ -696,8 +696,10 @@ def _populate_cognos_folder_attrs( def _extract_cognos_folder_attrs(attrs: CognosFolderAttributes) -> dict: """Extract all CognosFolder attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["cognos_sub_folder_count"] = attrs.cognos_sub_folder_count - result["cognos_child_objects_count"] = attrs.cognos_child_objects_count + result["cognos_folder_sub_folder_count"] = attrs.cognos_folder_sub_folder_count + result["cognos_folder_child_objects_count"] = ( + attrs.cognos_folder_child_objects_count + ) result["cognos_id"] = attrs.cognos_id result["cognos_path"] = attrs.cognos_path result["cognos_parent_name"] = attrs.cognos_parent_name @@ -820,11 +822,11 @@ def _cognos_folder_from_nested_bytes(data: bytes, serde: Serde) -> CognosFolder: RelationField, ) -CognosFolder.COGNOS_SUB_FOLDER_COUNT = NumericField( - "cognosSubFolderCount", "cognosSubFolderCount" +CognosFolder.COGNOS_FOLDER_SUB_FOLDER_COUNT = NumericField( + "cognosFolderSubFolderCount", "cognosFolderSubFolderCount" ) -CognosFolder.COGNOS_CHILD_OBJECTS_COUNT = NumericField( - "cognosChildObjectsCount", "cognosChildObjectsCount" +CognosFolder.COGNOS_FOLDER_CHILD_OBJECTS_COUNT = NumericField( + "cognosFolderChildObjectsCount", "cognosFolderChildObjectsCount" ) CognosFolder.COGNOS_ID = KeywordField("cognosId", "cognosId") CognosFolder.COGNOS_PATH = KeywordField("cognosPath", "cognosPath") diff --git a/pyatlan_v9/model/assets/cognos_related.py b/pyatlan_v9/model/assets/cognos_related.py index 3035c95f8..79f33ad03 100644 --- a/pyatlan_v9/model/assets/cognos_related.py +++ b/pyatlan_v9/model/assets/cognos_related.py @@ -102,7 +102,7 @@ class RelatedCognosDatasource(RelatedCognos): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "CognosDatasource" so it serializes correctly - cognos_connection_string: Union[str, None, UnsetType] = UNSET + cognos_datasource_connection_string: Union[str, None, UnsetType] = UNSET """Connection string of a Cognos datasource.""" def __post_init__(self) -> None: @@ -153,10 +153,10 @@ class RelatedCognosFolder(RelatedCognos): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "CognosFolder" so it serializes correctly - cognos_sub_folder_count: Union[int, None, UnsetType] = UNSET + cognos_folder_sub_folder_count: Union[int, None, UnsetType] = UNSET """Number of sub-folders in the folder.""" - cognos_child_objects_count: Union[int, None, UnsetType] = UNSET + cognos_folder_child_objects_count: Union[int, None, UnsetType] = UNSET """Number of children in the folder (excluding subfolders).""" def __post_init__(self) -> None: @@ -223,13 +223,13 @@ class RelatedCognosColumn(RelatedCognos): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "CognosColumn" so it serializes correctly - cognos_datatype: Union[str, None, UnsetType] = UNSET + cognos_column_datatype: Union[str, None, UnsetType] = UNSET """Data type of the CognosColumn.""" - cognos_nullable: Union[str, None, UnsetType] = UNSET + cognos_column_nullable: Union[str, None, UnsetType] = UNSET """Whether the CognosColumn is nullable.""" - cognos_regular_aggregate: Union[str, None, UnsetType] = UNSET + cognos_column_regular_aggregate: Union[str, None, UnsetType] = UNSET """How data should be summarized when aggregated across different dimensions or groupings.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/column.py b/pyatlan_v9/model/assets/column.py index 49e1e8efa..f3623cac1 100644 --- a/pyatlan_v9/model/assets/column.py +++ b/pyatlan_v9/model/assets/column.py @@ -101,8 +101,8 @@ class Column(Asset): DATA_TYPE: ClassVar[Any] = None SUB_DATA_TYPE: ClassVar[Any] = None - SQL_COMPRESSION: ClassVar[Any] = None - SQL_ENCODING: ClassVar[Any] = None + COLUMN_COMPRESSION: ClassVar[Any] = None + COLUMN_ENCODING: ClassVar[Any] = None RAW_DATA_TYPE_DEFINITION: ClassVar[Any] = None ORDER: ClassVar[Any] = None NESTED_COLUMN_ORDER: ClassVar[Any] = None @@ -127,52 +127,52 @@ class Column(Asset): VALIDATIONS: ClassVar[Any] = None PARENT_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None PARENT_COLUMN_NAME: ClassVar[Any] = None - SQL_DISTINCT_VALUES_COUNT: ClassVar[Any] = None - SQL_DISTINCT_VALUES_COUNT_LONG: ClassVar[Any] = None - SQL_DISTINCT_VALUES_PERCENTAGE: ClassVar[Any] = None - SQL_HISTOGRAM: ClassVar[Any] = None - SQL_MAX: ClassVar[Any] = None - SQL_MIN: ClassVar[Any] = None - SQL_MEAN: ClassVar[Any] = None - SQL_SUM: ClassVar[Any] = None - SQL_MEDIAN: ClassVar[Any] = None - SQL_STANDARD_DEVIATION: ClassVar[Any] = None - SQL_UNIQUE_VALUES_COUNT: ClassVar[Any] = None - SQL_UNIQUE_VALUES_COUNT_LONG: ClassVar[Any] = None - SQL_AVERAGE: ClassVar[Any] = None - SQL_AVERAGE_LENGTH: ClassVar[Any] = None - SQL_DUPLICATE_VALUES_COUNT: ClassVar[Any] = None - SQL_DUPLICATE_VALUES_COUNT_LONG: ClassVar[Any] = None - SQL_MAXIMUM_STRING_LENGTH: ClassVar[Any] = None + COLUMN_DISTINCT_VALUES_COUNT: ClassVar[Any] = None + COLUMN_DISTINCT_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_DISTINCT_VALUES_PERCENTAGE: ClassVar[Any] = None + COLUMN_HISTOGRAM: ClassVar[Any] = None + COLUMN_MAX: ClassVar[Any] = None + COLUMN_MIN: ClassVar[Any] = None + COLUMN_MEAN: ClassVar[Any] = None + COLUMN_SUM: ClassVar[Any] = None + COLUMN_MEDIAN: ClassVar[Any] = None + COLUMN_STANDARD_DEVIATION: ClassVar[Any] = None + COLUMN_UNIQUE_VALUES_COUNT: ClassVar[Any] = None + COLUMN_UNIQUE_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_AVERAGE: ClassVar[Any] = None + COLUMN_AVERAGE_LENGTH: ClassVar[Any] = None + COLUMN_DUPLICATE_VALUES_COUNT: ClassVar[Any] = None + COLUMN_DUPLICATE_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_MAXIMUM_STRING_LENGTH: ClassVar[Any] = None COLUMN_MAXS: ClassVar[Any] = None - SQL_MINIMUM_STRING_LENGTH: ClassVar[Any] = None + COLUMN_MINIMUM_STRING_LENGTH: ClassVar[Any] = None COLUMN_MINS: ClassVar[Any] = None - SQL_MISSING_VALUES_COUNT: ClassVar[Any] = None - SQL_MISSING_VALUES_COUNT_LONG: ClassVar[Any] = None - SQL_MISSING_VALUES_PERCENTAGE: ClassVar[Any] = None - SQL_UNIQUENESS_PERCENTAGE: ClassVar[Any] = None - SQL_VARIANCE: ClassVar[Any] = None + COLUMN_MISSING_VALUES_COUNT: ClassVar[Any] = None + COLUMN_MISSING_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_MISSING_VALUES_PERCENTAGE: ClassVar[Any] = None + COLUMN_UNIQUENESS_PERCENTAGE: ClassVar[Any] = None + COLUMN_VARIANCE: ClassVar[Any] = None COLUMN_TOP_VALUES: ClassVar[Any] = None - SQL_MAX_VALUE: ClassVar[Any] = None - SQL_MIN_VALUE: ClassVar[Any] = None - SQL_MEAN_VALUE: ClassVar[Any] = None - SQL_SUM_VALUE: ClassVar[Any] = None - SQL_MEDIAN_VALUE: ClassVar[Any] = None - SQL_STANDARD_DEVIATION_VALUE: ClassVar[Any] = None - SQL_AVERAGE_VALUE: ClassVar[Any] = None - SQL_VARIANCE_VALUE: ClassVar[Any] = None - SQL_AVERAGE_LENGTH_VALUE: ClassVar[Any] = None - SQL_DISTRIBUTION_HISTOGRAM: ClassVar[Any] = None - SQL_DEPTH_LEVEL: ClassVar[Any] = None + COLUMN_MAX_VALUE: ClassVar[Any] = None + COLUMN_MIN_VALUE: ClassVar[Any] = None + COLUMN_MEAN_VALUE: ClassVar[Any] = None + COLUMN_SUM_VALUE: ClassVar[Any] = None + COLUMN_MEDIAN_VALUE: ClassVar[Any] = None + COLUMN_STANDARD_DEVIATION_VALUE: ClassVar[Any] = None + COLUMN_AVERAGE_VALUE: ClassVar[Any] = None + COLUMN_VARIANCE_VALUE: ClassVar[Any] = None + COLUMN_AVERAGE_LENGTH_VALUE: ClassVar[Any] = None + COLUMN_DISTRIBUTION_HISTOGRAM: ClassVar[Any] = None + COLUMN_DEPTH_LEVEL: ClassVar[Any] = None NOSQL_COLLECTION_NAME: ClassVar[Any] = None NOSQL_COLLECTION_QUALIFIED_NAME: ClassVar[Any] = None - SQL_IS_MEASURE: ClassVar[Any] = None - SQL_MEASURE_TYPE: ClassVar[Any] = None - SQL_AI_INSIGHTS_IS_MEASURE: ClassVar[Any] = None - SQL_AI_INSIGHTS_MEASURE_TYPE: ClassVar[Any] = None - SQL_AI_INSIGHTS_IS_DIMENSION: ClassVar[Any] = None - SQL_AI_INSIGHTS_DIMENSION_TYPE: ClassVar[Any] = None - SQL_AI_INSIGHTS_FOREIGN_KEY_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None + COLUMN_IS_MEASURE: ClassVar[Any] = None + COLUMN_MEASURE_TYPE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_IS_MEASURE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_MEASURE_TYPE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_IS_DIMENSION: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_DIMENSION_TYPE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_FOREIGN_KEY_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -278,10 +278,10 @@ class Column(Asset): sub_data_type: Union[str, None, UnsetType] = UNSET """Sub-data type of this column.""" - sql_compression: Union[str, None, UnsetType] = UNSET + column_compression: Union[str, None, UnsetType] = UNSET """Compression type of this column.""" - sql_encoding: Union[str, None, UnsetType] = UNSET + column_encoding: Union[str, None, UnsetType] = UNSET """Encoding type of this column.""" raw_data_type_definition: Union[str, None, UnsetType] = UNSET @@ -356,115 +356,115 @@ class Column(Asset): parent_column_name: Union[str, None, UnsetType] = UNSET """Simple name of the column this column is nested within, for STRUCT and NESTED columns.""" - sql_distinct_values_count: Union[int, None, UnsetType] = UNSET + column_distinct_values_count: Union[int, None, UnsetType] = UNSET """Number of rows that contain distinct values.""" - sql_distinct_values_count_long: Union[int, None, UnsetType] = UNSET + column_distinct_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows that contain distinct values.""" - sql_distinct_values_percentage: Union[float, None, UnsetType] = UNSET + column_distinct_values_percentage: Union[float, None, UnsetType] = UNSET """Percentage of rows in a column that contain distinct values.""" - sql_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + column_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET """List of values in a histogram that represents the contents of this column.""" - sql_max: Union[float, None, UnsetType] = UNSET + column_max: Union[float, None, UnsetType] = UNSET """Greatest value in a numeric column.""" - sql_min: Union[float, None, UnsetType] = UNSET + column_min: Union[float, None, UnsetType] = UNSET """Least value in a numeric column.""" - sql_mean: Union[float, None, UnsetType] = UNSET + column_mean: Union[float, None, UnsetType] = UNSET """Arithmetic mean of the values in a numeric column.""" - sql_sum: Union[float, None, UnsetType] = UNSET + column_sum: Union[float, None, UnsetType] = UNSET """Calculated sum of the values in a numeric column.""" - sql_median: Union[float, None, UnsetType] = UNSET + column_median: Union[float, None, UnsetType] = UNSET """Calculated median of the values in a numeric column.""" - sql_standard_deviation: Union[float, None, UnsetType] = UNSET + column_standard_deviation: Union[float, None, UnsetType] = UNSET """Calculated standard deviation of the values in a numeric column.""" - sql_unique_values_count: Union[int, None, UnsetType] = UNSET + column_unique_values_count: Union[int, None, UnsetType] = UNSET """Number of rows in which a value in this column appears only once.""" - sql_unique_values_count_long: Union[int, None, UnsetType] = UNSET + column_unique_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows in which a value in this column appears only once.""" - sql_average: Union[float, None, UnsetType] = UNSET + column_average: Union[float, None, UnsetType] = UNSET """Average value in this column.""" - sql_average_length: Union[float, None, UnsetType] = UNSET + column_average_length: Union[float, None, UnsetType] = UNSET """Average length of values in a string column.""" - sql_duplicate_values_count: Union[int, None, UnsetType] = UNSET + column_duplicate_values_count: Union[int, None, UnsetType] = UNSET """Number of rows that contain duplicate values.""" - sql_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET + column_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows that contain duplicate values.""" - sql_maximum_string_length: Union[int, None, UnsetType] = UNSET + column_maximum_string_length: Union[int, None, UnsetType] = UNSET """Length of the longest value in a string column.""" column_maxs: Union[List[str], None, UnsetType] = UNSET """List of the greatest values in a column.""" - sql_minimum_string_length: Union[int, None, UnsetType] = UNSET + column_minimum_string_length: Union[int, None, UnsetType] = UNSET """Length of the shortest value in a string column.""" column_mins: Union[List[str], None, UnsetType] = UNSET """List of the least values in a column.""" - sql_missing_values_count: Union[int, None, UnsetType] = UNSET + column_missing_values_count: Union[int, None, UnsetType] = UNSET """Number of rows in a column that do not contain content.""" - sql_missing_values_count_long: Union[int, None, UnsetType] = UNSET + column_missing_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows in a column that do not contain content.""" - sql_missing_values_percentage: Union[float, None, UnsetType] = UNSET + column_missing_values_percentage: Union[float, None, UnsetType] = UNSET """Percentage of rows in a column that do not contain content.""" - sql_uniqueness_percentage: Union[float, None, UnsetType] = UNSET + column_uniqueness_percentage: Union[float, None, UnsetType] = UNSET """Ratio indicating how unique data in this column is: 0 indicates that all values are the same, 100 indicates that all values in this column are unique.""" - sql_variance: Union[float, None, UnsetType] = UNSET + column_variance: Union[float, None, UnsetType] = UNSET """Calculated variance of the values in a numeric column.""" column_top_values: Union[List[Dict[str, Any]], None, UnsetType] = UNSET """List of top values in this column.""" - sql_max_value: Union[float, None, UnsetType] = UNSET + column_max_value: Union[float, None, UnsetType] = UNSET """Greatest value in a numeric column.""" - sql_min_value: Union[float, None, UnsetType] = UNSET + column_min_value: Union[float, None, UnsetType] = UNSET """Least value in a numeric column.""" - sql_mean_value: Union[float, None, UnsetType] = UNSET + column_mean_value: Union[float, None, UnsetType] = UNSET """Arithmetic mean of the values in a numeric column.""" - sql_sum_value: Union[float, None, UnsetType] = UNSET + column_sum_value: Union[float, None, UnsetType] = UNSET """Calculated sum of the values in a numeric column.""" - sql_median_value: Union[float, None, UnsetType] = UNSET + column_median_value: Union[float, None, UnsetType] = UNSET """Calculated median of the values in a numeric column.""" - sql_standard_deviation_value: Union[float, None, UnsetType] = UNSET + column_standard_deviation_value: Union[float, None, UnsetType] = UNSET """Calculated standard deviation of the values in a numeric column.""" - sql_average_value: Union[float, None, UnsetType] = UNSET + column_average_value: Union[float, None, UnsetType] = UNSET """Average value in this column.""" - sql_variance_value: Union[float, None, UnsetType] = UNSET + column_variance_value: Union[float, None, UnsetType] = UNSET """Calculated variance of the values in a numeric column.""" - sql_average_length_value: Union[float, None, UnsetType] = UNSET + column_average_length_value: Union[float, None, UnsetType] = UNSET """Average length of values in a string column.""" - sql_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + column_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET """Detailed information representing a histogram of values for a column.""" - sql_depth_level: Union[int, None, UnsetType] = UNSET + column_depth_level: Union[int, None, UnsetType] = UNSET """Level of nesting of this column, used for STRUCT and NESTED columns.""" nosql_collection_name: Union[str, None, UnsetType] = UNSET @@ -473,27 +473,27 @@ class Column(Asset): nosql_collection_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" - sql_is_measure: Union[bool, None, UnsetType] = UNSET + column_is_measure: Union[bool, None, UnsetType] = UNSET """When true, this column is of type measure/calculated.""" - sql_measure_type: Union[str, None, UnsetType] = UNSET + column_measure_type: Union[str, None, UnsetType] = UNSET """The type of measure/calculated column this is, eg: base, calculated, derived.""" - sql_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET + column_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET """When true, this column is identified as a measure/calculated column by AI analysis of query patterns.""" - sql_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET + column_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET """Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived.""" - sql_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET + column_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET """When true, this column is identified as a dimension by AI analysis of query patterns.""" - sql_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET + column_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET """Type of dimension as classified by AI analysis, for example: time, categorical, geographic.""" - sql_ai_insights_foreign_key_column_qualified_name: Union[str, None, UnsetType] = ( - UNSET - ) + column_ai_insights_foreign_key_column_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns.""" query_count: Union[int, None, UnsetType] = UNSET @@ -1183,10 +1183,10 @@ class ColumnAttributes(AssetAttributes): sub_data_type: Union[str, None, UnsetType] = UNSET """Sub-data type of this column.""" - sql_compression: Union[str, None, UnsetType] = UNSET + column_compression: Union[str, None, UnsetType] = UNSET """Compression type of this column.""" - sql_encoding: Union[str, None, UnsetType] = UNSET + column_encoding: Union[str, None, UnsetType] = UNSET """Encoding type of this column.""" raw_data_type_definition: Union[str, None, UnsetType] = UNSET @@ -1261,115 +1261,115 @@ class ColumnAttributes(AssetAttributes): parent_column_name: Union[str, None, UnsetType] = UNSET """Simple name of the column this column is nested within, for STRUCT and NESTED columns.""" - sql_distinct_values_count: Union[int, None, UnsetType] = UNSET + column_distinct_values_count: Union[int, None, UnsetType] = UNSET """Number of rows that contain distinct values.""" - sql_distinct_values_count_long: Union[int, None, UnsetType] = UNSET + column_distinct_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows that contain distinct values.""" - sql_distinct_values_percentage: Union[float, None, UnsetType] = UNSET + column_distinct_values_percentage: Union[float, None, UnsetType] = UNSET """Percentage of rows in a column that contain distinct values.""" - sql_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + column_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET """List of values in a histogram that represents the contents of this column.""" - sql_max: Union[float, None, UnsetType] = UNSET + column_max: Union[float, None, UnsetType] = UNSET """Greatest value in a numeric column.""" - sql_min: Union[float, None, UnsetType] = UNSET + column_min: Union[float, None, UnsetType] = UNSET """Least value in a numeric column.""" - sql_mean: Union[float, None, UnsetType] = UNSET + column_mean: Union[float, None, UnsetType] = UNSET """Arithmetic mean of the values in a numeric column.""" - sql_sum: Union[float, None, UnsetType] = UNSET + column_sum: Union[float, None, UnsetType] = UNSET """Calculated sum of the values in a numeric column.""" - sql_median: Union[float, None, UnsetType] = UNSET + column_median: Union[float, None, UnsetType] = UNSET """Calculated median of the values in a numeric column.""" - sql_standard_deviation: Union[float, None, UnsetType] = UNSET + column_standard_deviation: Union[float, None, UnsetType] = UNSET """Calculated standard deviation of the values in a numeric column.""" - sql_unique_values_count: Union[int, None, UnsetType] = UNSET + column_unique_values_count: Union[int, None, UnsetType] = UNSET """Number of rows in which a value in this column appears only once.""" - sql_unique_values_count_long: Union[int, None, UnsetType] = UNSET + column_unique_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows in which a value in this column appears only once.""" - sql_average: Union[float, None, UnsetType] = UNSET + column_average: Union[float, None, UnsetType] = UNSET """Average value in this column.""" - sql_average_length: Union[float, None, UnsetType] = UNSET + column_average_length: Union[float, None, UnsetType] = UNSET """Average length of values in a string column.""" - sql_duplicate_values_count: Union[int, None, UnsetType] = UNSET + column_duplicate_values_count: Union[int, None, UnsetType] = UNSET """Number of rows that contain duplicate values.""" - sql_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET + column_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows that contain duplicate values.""" - sql_maximum_string_length: Union[int, None, UnsetType] = UNSET + column_maximum_string_length: Union[int, None, UnsetType] = UNSET """Length of the longest value in a string column.""" column_maxs: Union[List[str], None, UnsetType] = UNSET """List of the greatest values in a column.""" - sql_minimum_string_length: Union[int, None, UnsetType] = UNSET + column_minimum_string_length: Union[int, None, UnsetType] = UNSET """Length of the shortest value in a string column.""" column_mins: Union[List[str], None, UnsetType] = UNSET """List of the least values in a column.""" - sql_missing_values_count: Union[int, None, UnsetType] = UNSET + column_missing_values_count: Union[int, None, UnsetType] = UNSET """Number of rows in a column that do not contain content.""" - sql_missing_values_count_long: Union[int, None, UnsetType] = UNSET + column_missing_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows in a column that do not contain content.""" - sql_missing_values_percentage: Union[float, None, UnsetType] = UNSET + column_missing_values_percentage: Union[float, None, UnsetType] = UNSET """Percentage of rows in a column that do not contain content.""" - sql_uniqueness_percentage: Union[float, None, UnsetType] = UNSET + column_uniqueness_percentage: Union[float, None, UnsetType] = UNSET """Ratio indicating how unique data in this column is: 0 indicates that all values are the same, 100 indicates that all values in this column are unique.""" - sql_variance: Union[float, None, UnsetType] = UNSET + column_variance: Union[float, None, UnsetType] = UNSET """Calculated variance of the values in a numeric column.""" column_top_values: Union[List[Dict[str, Any]], None, UnsetType] = UNSET """List of top values in this column.""" - sql_max_value: Union[float, None, UnsetType] = UNSET + column_max_value: Union[float, None, UnsetType] = UNSET """Greatest value in a numeric column.""" - sql_min_value: Union[float, None, UnsetType] = UNSET + column_min_value: Union[float, None, UnsetType] = UNSET """Least value in a numeric column.""" - sql_mean_value: Union[float, None, UnsetType] = UNSET + column_mean_value: Union[float, None, UnsetType] = UNSET """Arithmetic mean of the values in a numeric column.""" - sql_sum_value: Union[float, None, UnsetType] = UNSET + column_sum_value: Union[float, None, UnsetType] = UNSET """Calculated sum of the values in a numeric column.""" - sql_median_value: Union[float, None, UnsetType] = UNSET + column_median_value: Union[float, None, UnsetType] = UNSET """Calculated median of the values in a numeric column.""" - sql_standard_deviation_value: Union[float, None, UnsetType] = UNSET + column_standard_deviation_value: Union[float, None, UnsetType] = UNSET """Calculated standard deviation of the values in a numeric column.""" - sql_average_value: Union[float, None, UnsetType] = UNSET + column_average_value: Union[float, None, UnsetType] = UNSET """Average value in this column.""" - sql_variance_value: Union[float, None, UnsetType] = UNSET + column_variance_value: Union[float, None, UnsetType] = UNSET """Calculated variance of the values in a numeric column.""" - sql_average_length_value: Union[float, None, UnsetType] = UNSET + column_average_length_value: Union[float, None, UnsetType] = UNSET """Average length of values in a string column.""" - sql_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + column_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET """Detailed information representing a histogram of values for a column.""" - sql_depth_level: Union[int, None, UnsetType] = UNSET + column_depth_level: Union[int, None, UnsetType] = UNSET """Level of nesting of this column, used for STRUCT and NESTED columns.""" nosql_collection_name: Union[str, None, UnsetType] = UNSET @@ -1378,27 +1378,27 @@ class ColumnAttributes(AssetAttributes): nosql_collection_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" - sql_is_measure: Union[bool, None, UnsetType] = UNSET + column_is_measure: Union[bool, None, UnsetType] = UNSET """When true, this column is of type measure/calculated.""" - sql_measure_type: Union[str, None, UnsetType] = UNSET + column_measure_type: Union[str, None, UnsetType] = UNSET """The type of measure/calculated column this is, eg: base, calculated, derived.""" - sql_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET + column_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET """When true, this column is identified as a measure/calculated column by AI analysis of query patterns.""" - sql_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET + column_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET """Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived.""" - sql_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET + column_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET """When true, this column is identified as a dimension by AI analysis of query patterns.""" - sql_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET + column_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET """Type of dimension as classified by AI analysis, for example: time, categorical, geographic.""" - sql_ai_insights_foreign_key_column_qualified_name: Union[str, None, UnsetType] = ( - UNSET - ) + column_ai_insights_foreign_key_column_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns.""" query_count: Union[int, None, UnsetType] = UNSET @@ -1823,8 +1823,8 @@ def _populate_column_attrs(attrs: ColumnAttributes, obj: Column) -> None: _populate_asset_attrs(attrs, obj) attrs.data_type = obj.data_type attrs.sub_data_type = obj.sub_data_type - attrs.sql_compression = obj.sql_compression - attrs.sql_encoding = obj.sql_encoding + attrs.column_compression = obj.column_compression + attrs.column_encoding = obj.column_encoding attrs.raw_data_type_definition = obj.raw_data_type_definition attrs.order = obj.order attrs.nested_column_order = obj.nested_column_order @@ -1849,53 +1849,53 @@ def _populate_column_attrs(attrs: ColumnAttributes, obj: Column) -> None: attrs.validations = obj.validations attrs.parent_column_qualified_name = obj.parent_column_qualified_name attrs.parent_column_name = obj.parent_column_name - attrs.sql_distinct_values_count = obj.sql_distinct_values_count - attrs.sql_distinct_values_count_long = obj.sql_distinct_values_count_long - attrs.sql_distinct_values_percentage = obj.sql_distinct_values_percentage - attrs.sql_histogram = obj.sql_histogram - attrs.sql_max = obj.sql_max - attrs.sql_min = obj.sql_min - attrs.sql_mean = obj.sql_mean - attrs.sql_sum = obj.sql_sum - attrs.sql_median = obj.sql_median - attrs.sql_standard_deviation = obj.sql_standard_deviation - attrs.sql_unique_values_count = obj.sql_unique_values_count - attrs.sql_unique_values_count_long = obj.sql_unique_values_count_long - attrs.sql_average = obj.sql_average - attrs.sql_average_length = obj.sql_average_length - attrs.sql_duplicate_values_count = obj.sql_duplicate_values_count - attrs.sql_duplicate_values_count_long = obj.sql_duplicate_values_count_long - attrs.sql_maximum_string_length = obj.sql_maximum_string_length + attrs.column_distinct_values_count = obj.column_distinct_values_count + attrs.column_distinct_values_count_long = obj.column_distinct_values_count_long + attrs.column_distinct_values_percentage = obj.column_distinct_values_percentage + attrs.column_histogram = obj.column_histogram + attrs.column_max = obj.column_max + attrs.column_min = obj.column_min + attrs.column_mean = obj.column_mean + attrs.column_sum = obj.column_sum + attrs.column_median = obj.column_median + attrs.column_standard_deviation = obj.column_standard_deviation + attrs.column_unique_values_count = obj.column_unique_values_count + attrs.column_unique_values_count_long = obj.column_unique_values_count_long + attrs.column_average = obj.column_average + attrs.column_average_length = obj.column_average_length + attrs.column_duplicate_values_count = obj.column_duplicate_values_count + attrs.column_duplicate_values_count_long = obj.column_duplicate_values_count_long + attrs.column_maximum_string_length = obj.column_maximum_string_length attrs.column_maxs = obj.column_maxs - attrs.sql_minimum_string_length = obj.sql_minimum_string_length + attrs.column_minimum_string_length = obj.column_minimum_string_length attrs.column_mins = obj.column_mins - attrs.sql_missing_values_count = obj.sql_missing_values_count - attrs.sql_missing_values_count_long = obj.sql_missing_values_count_long - attrs.sql_missing_values_percentage = obj.sql_missing_values_percentage - attrs.sql_uniqueness_percentage = obj.sql_uniqueness_percentage - attrs.sql_variance = obj.sql_variance + attrs.column_missing_values_count = obj.column_missing_values_count + attrs.column_missing_values_count_long = obj.column_missing_values_count_long + attrs.column_missing_values_percentage = obj.column_missing_values_percentage + attrs.column_uniqueness_percentage = obj.column_uniqueness_percentage + attrs.column_variance = obj.column_variance attrs.column_top_values = obj.column_top_values - attrs.sql_max_value = obj.sql_max_value - attrs.sql_min_value = obj.sql_min_value - attrs.sql_mean_value = obj.sql_mean_value - attrs.sql_sum_value = obj.sql_sum_value - attrs.sql_median_value = obj.sql_median_value - attrs.sql_standard_deviation_value = obj.sql_standard_deviation_value - attrs.sql_average_value = obj.sql_average_value - attrs.sql_variance_value = obj.sql_variance_value - attrs.sql_average_length_value = obj.sql_average_length_value - attrs.sql_distribution_histogram = obj.sql_distribution_histogram - attrs.sql_depth_level = obj.sql_depth_level + attrs.column_max_value = obj.column_max_value + attrs.column_min_value = obj.column_min_value + attrs.column_mean_value = obj.column_mean_value + attrs.column_sum_value = obj.column_sum_value + attrs.column_median_value = obj.column_median_value + attrs.column_standard_deviation_value = obj.column_standard_deviation_value + attrs.column_average_value = obj.column_average_value + attrs.column_variance_value = obj.column_variance_value + attrs.column_average_length_value = obj.column_average_length_value + attrs.column_distribution_histogram = obj.column_distribution_histogram + attrs.column_depth_level = obj.column_depth_level attrs.nosql_collection_name = obj.nosql_collection_name attrs.nosql_collection_qualified_name = obj.nosql_collection_qualified_name - attrs.sql_is_measure = obj.sql_is_measure - attrs.sql_measure_type = obj.sql_measure_type - attrs.sql_ai_insights_is_measure = obj.sql_ai_insights_is_measure - attrs.sql_ai_insights_measure_type = obj.sql_ai_insights_measure_type - attrs.sql_ai_insights_is_dimension = obj.sql_ai_insights_is_dimension - attrs.sql_ai_insights_dimension_type = obj.sql_ai_insights_dimension_type - attrs.sql_ai_insights_foreign_key_column_qualified_name = ( - obj.sql_ai_insights_foreign_key_column_qualified_name + attrs.column_is_measure = obj.column_is_measure + attrs.column_measure_type = obj.column_measure_type + attrs.column_ai_insights_is_measure = obj.column_ai_insights_is_measure + attrs.column_ai_insights_measure_type = obj.column_ai_insights_measure_type + attrs.column_ai_insights_is_dimension = obj.column_ai_insights_is_dimension + attrs.column_ai_insights_dimension_type = obj.column_ai_insights_dimension_type + attrs.column_ai_insights_foreign_key_column_qualified_name = ( + obj.column_ai_insights_foreign_key_column_qualified_name ) attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count @@ -1942,8 +1942,8 @@ def _extract_column_attrs(attrs: ColumnAttributes) -> dict: result = _extract_asset_attrs(attrs) result["data_type"] = attrs.data_type result["sub_data_type"] = attrs.sub_data_type - result["sql_compression"] = attrs.sql_compression - result["sql_encoding"] = attrs.sql_encoding + result["column_compression"] = attrs.column_compression + result["column_encoding"] = attrs.column_encoding result["raw_data_type_definition"] = attrs.raw_data_type_definition result["order"] = attrs.order result["nested_column_order"] = attrs.nested_column_order @@ -1968,53 +1968,61 @@ def _extract_column_attrs(attrs: ColumnAttributes) -> dict: result["validations"] = attrs.validations result["parent_column_qualified_name"] = attrs.parent_column_qualified_name result["parent_column_name"] = attrs.parent_column_name - result["sql_distinct_values_count"] = attrs.sql_distinct_values_count - result["sql_distinct_values_count_long"] = attrs.sql_distinct_values_count_long - result["sql_distinct_values_percentage"] = attrs.sql_distinct_values_percentage - result["sql_histogram"] = attrs.sql_histogram - result["sql_max"] = attrs.sql_max - result["sql_min"] = attrs.sql_min - result["sql_mean"] = attrs.sql_mean - result["sql_sum"] = attrs.sql_sum - result["sql_median"] = attrs.sql_median - result["sql_standard_deviation"] = attrs.sql_standard_deviation - result["sql_unique_values_count"] = attrs.sql_unique_values_count - result["sql_unique_values_count_long"] = attrs.sql_unique_values_count_long - result["sql_average"] = attrs.sql_average - result["sql_average_length"] = attrs.sql_average_length - result["sql_duplicate_values_count"] = attrs.sql_duplicate_values_count - result["sql_duplicate_values_count_long"] = attrs.sql_duplicate_values_count_long - result["sql_maximum_string_length"] = attrs.sql_maximum_string_length + result["column_distinct_values_count"] = attrs.column_distinct_values_count + result["column_distinct_values_count_long"] = ( + attrs.column_distinct_values_count_long + ) + result["column_distinct_values_percentage"] = ( + attrs.column_distinct_values_percentage + ) + result["column_histogram"] = attrs.column_histogram + result["column_max"] = attrs.column_max + result["column_min"] = attrs.column_min + result["column_mean"] = attrs.column_mean + result["column_sum"] = attrs.column_sum + result["column_median"] = attrs.column_median + result["column_standard_deviation"] = attrs.column_standard_deviation + result["column_unique_values_count"] = attrs.column_unique_values_count + result["column_unique_values_count_long"] = attrs.column_unique_values_count_long + result["column_average"] = attrs.column_average + result["column_average_length"] = attrs.column_average_length + result["column_duplicate_values_count"] = attrs.column_duplicate_values_count + result["column_duplicate_values_count_long"] = ( + attrs.column_duplicate_values_count_long + ) + result["column_maximum_string_length"] = attrs.column_maximum_string_length result["column_maxs"] = attrs.column_maxs - result["sql_minimum_string_length"] = attrs.sql_minimum_string_length + result["column_minimum_string_length"] = attrs.column_minimum_string_length result["column_mins"] = attrs.column_mins - result["sql_missing_values_count"] = attrs.sql_missing_values_count - result["sql_missing_values_count_long"] = attrs.sql_missing_values_count_long - result["sql_missing_values_percentage"] = attrs.sql_missing_values_percentage - result["sql_uniqueness_percentage"] = attrs.sql_uniqueness_percentage - result["sql_variance"] = attrs.sql_variance + result["column_missing_values_count"] = attrs.column_missing_values_count + result["column_missing_values_count_long"] = attrs.column_missing_values_count_long + result["column_missing_values_percentage"] = attrs.column_missing_values_percentage + result["column_uniqueness_percentage"] = attrs.column_uniqueness_percentage + result["column_variance"] = attrs.column_variance result["column_top_values"] = attrs.column_top_values - result["sql_max_value"] = attrs.sql_max_value - result["sql_min_value"] = attrs.sql_min_value - result["sql_mean_value"] = attrs.sql_mean_value - result["sql_sum_value"] = attrs.sql_sum_value - result["sql_median_value"] = attrs.sql_median_value - result["sql_standard_deviation_value"] = attrs.sql_standard_deviation_value - result["sql_average_value"] = attrs.sql_average_value - result["sql_variance_value"] = attrs.sql_variance_value - result["sql_average_length_value"] = attrs.sql_average_length_value - result["sql_distribution_histogram"] = attrs.sql_distribution_histogram - result["sql_depth_level"] = attrs.sql_depth_level + result["column_max_value"] = attrs.column_max_value + result["column_min_value"] = attrs.column_min_value + result["column_mean_value"] = attrs.column_mean_value + result["column_sum_value"] = attrs.column_sum_value + result["column_median_value"] = attrs.column_median_value + result["column_standard_deviation_value"] = attrs.column_standard_deviation_value + result["column_average_value"] = attrs.column_average_value + result["column_variance_value"] = attrs.column_variance_value + result["column_average_length_value"] = attrs.column_average_length_value + result["column_distribution_histogram"] = attrs.column_distribution_histogram + result["column_depth_level"] = attrs.column_depth_level result["nosql_collection_name"] = attrs.nosql_collection_name result["nosql_collection_qualified_name"] = attrs.nosql_collection_qualified_name - result["sql_is_measure"] = attrs.sql_is_measure - result["sql_measure_type"] = attrs.sql_measure_type - result["sql_ai_insights_is_measure"] = attrs.sql_ai_insights_is_measure - result["sql_ai_insights_measure_type"] = attrs.sql_ai_insights_measure_type - result["sql_ai_insights_is_dimension"] = attrs.sql_ai_insights_is_dimension - result["sql_ai_insights_dimension_type"] = attrs.sql_ai_insights_dimension_type - result["sql_ai_insights_foreign_key_column_qualified_name"] = ( - attrs.sql_ai_insights_foreign_key_column_qualified_name + result["column_is_measure"] = attrs.column_is_measure + result["column_measure_type"] = attrs.column_measure_type + result["column_ai_insights_is_measure"] = attrs.column_ai_insights_is_measure + result["column_ai_insights_measure_type"] = attrs.column_ai_insights_measure_type + result["column_ai_insights_is_dimension"] = attrs.column_ai_insights_is_dimension + result["column_ai_insights_dimension_type"] = ( + attrs.column_ai_insights_dimension_type + ) + result["column_ai_insights_foreign_key_column_qualified_name"] = ( + attrs.column_ai_insights_foreign_key_column_qualified_name ) result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count @@ -2170,8 +2178,8 @@ def _column_from_nested_bytes(data: bytes, serde: Serde) -> Column: Column.DATA_TYPE = KeywordTextField("dataType", "dataType", "dataType.text") Column.SUB_DATA_TYPE = KeywordField("subDataType", "subDataType") -Column.SQL_COMPRESSION = KeywordField("sqlCompression", "sqlCompression") -Column.SQL_ENCODING = KeywordField("sqlEncoding", "sqlEncoding") +Column.COLUMN_COMPRESSION = KeywordField("columnCompression", "columnCompression") +Column.COLUMN_ENCODING = KeywordField("columnEncoding", "columnEncoding") Column.RAW_DATA_TYPE_DEFINITION = KeywordField( "rawDataTypeDefinition", "rawDataTypeDefinition" ) @@ -2204,100 +2212,104 @@ def _column_from_nested_bytes(data: bytes, serde: Serde) -> Column: "parentColumnQualifiedName.text", ) Column.PARENT_COLUMN_NAME = KeywordField("parentColumnName", "parentColumnName") -Column.SQL_DISTINCT_VALUES_COUNT = NumericField( - "sqlDistinctValuesCount", "sqlDistinctValuesCount" +Column.COLUMN_DISTINCT_VALUES_COUNT = NumericField( + "columnDistinctValuesCount", "columnDistinctValuesCount" +) +Column.COLUMN_DISTINCT_VALUES_COUNT_LONG = NumericField( + "columnDistinctValuesCountLong", "columnDistinctValuesCountLong" ) -Column.SQL_DISTINCT_VALUES_COUNT_LONG = NumericField( - "sqlDistinctValuesCountLong", "sqlDistinctValuesCountLong" +Column.COLUMN_DISTINCT_VALUES_PERCENTAGE = NumericField( + "columnDistinctValuesPercentage", "columnDistinctValuesPercentage" ) -Column.SQL_DISTINCT_VALUES_PERCENTAGE = NumericField( - "sqlDistinctValuesPercentage", "sqlDistinctValuesPercentage" +Column.COLUMN_HISTOGRAM = KeywordField("columnHistogram", "columnHistogram") +Column.COLUMN_MAX = NumericField("columnMax", "columnMax") +Column.COLUMN_MIN = NumericField("columnMin", "columnMin") +Column.COLUMN_MEAN = NumericField("columnMean", "columnMean") +Column.COLUMN_SUM = NumericField("columnSum", "columnSum") +Column.COLUMN_MEDIAN = NumericField("columnMedian", "columnMedian") +Column.COLUMN_STANDARD_DEVIATION = NumericField( + "columnStandardDeviation", "columnStandardDeviation" ) -Column.SQL_HISTOGRAM = KeywordField("sqlHistogram", "sqlHistogram") -Column.SQL_MAX = NumericField("sqlMax", "sqlMax") -Column.SQL_MIN = NumericField("sqlMin", "sqlMin") -Column.SQL_MEAN = NumericField("sqlMean", "sqlMean") -Column.SQL_SUM = NumericField("sqlSum", "sqlSum") -Column.SQL_MEDIAN = NumericField("sqlMedian", "sqlMedian") -Column.SQL_STANDARD_DEVIATION = NumericField( - "sqlStandardDeviation", "sqlStandardDeviation" +Column.COLUMN_UNIQUE_VALUES_COUNT = NumericField( + "columnUniqueValuesCount", "columnUniqueValuesCount" ) -Column.SQL_UNIQUE_VALUES_COUNT = NumericField( - "sqlUniqueValuesCount", "sqlUniqueValuesCount" +Column.COLUMN_UNIQUE_VALUES_COUNT_LONG = NumericField( + "columnUniqueValuesCountLong", "columnUniqueValuesCountLong" ) -Column.SQL_UNIQUE_VALUES_COUNT_LONG = NumericField( - "sqlUniqueValuesCountLong", "sqlUniqueValuesCountLong" +Column.COLUMN_AVERAGE = NumericField("columnAverage", "columnAverage") +Column.COLUMN_AVERAGE_LENGTH = NumericField( + "columnAverageLength", "columnAverageLength" ) -Column.SQL_AVERAGE = NumericField("sqlAverage", "sqlAverage") -Column.SQL_AVERAGE_LENGTH = NumericField("sqlAverageLength", "sqlAverageLength") -Column.SQL_DUPLICATE_VALUES_COUNT = NumericField( - "sqlDuplicateValuesCount", "sqlDuplicateValuesCount" +Column.COLUMN_DUPLICATE_VALUES_COUNT = NumericField( + "columnDuplicateValuesCount", "columnDuplicateValuesCount" ) -Column.SQL_DUPLICATE_VALUES_COUNT_LONG = NumericField( - "sqlDuplicateValuesCountLong", "sqlDuplicateValuesCountLong" +Column.COLUMN_DUPLICATE_VALUES_COUNT_LONG = NumericField( + "columnDuplicateValuesCountLong", "columnDuplicateValuesCountLong" ) -Column.SQL_MAXIMUM_STRING_LENGTH = NumericField( - "sqlMaximumStringLength", "sqlMaximumStringLength" +Column.COLUMN_MAXIMUM_STRING_LENGTH = NumericField( + "columnMaximumStringLength", "columnMaximumStringLength" ) Column.COLUMN_MAXS = KeywordField("columnMaxs", "columnMaxs") -Column.SQL_MINIMUM_STRING_LENGTH = NumericField( - "sqlMinimumStringLength", "sqlMinimumStringLength" +Column.COLUMN_MINIMUM_STRING_LENGTH = NumericField( + "columnMinimumStringLength", "columnMinimumStringLength" ) Column.COLUMN_MINS = KeywordField("columnMins", "columnMins") -Column.SQL_MISSING_VALUES_COUNT = NumericField( - "sqlMissingValuesCount", "sqlMissingValuesCount" +Column.COLUMN_MISSING_VALUES_COUNT = NumericField( + "columnMissingValuesCount", "columnMissingValuesCount" ) -Column.SQL_MISSING_VALUES_COUNT_LONG = NumericField( - "sqlMissingValuesCountLong", "sqlMissingValuesCountLong" +Column.COLUMN_MISSING_VALUES_COUNT_LONG = NumericField( + "columnMissingValuesCountLong", "columnMissingValuesCountLong" ) -Column.SQL_MISSING_VALUES_PERCENTAGE = NumericField( - "sqlMissingValuesPercentage", "sqlMissingValuesPercentage" +Column.COLUMN_MISSING_VALUES_PERCENTAGE = NumericField( + "columnMissingValuesPercentage", "columnMissingValuesPercentage" ) -Column.SQL_UNIQUENESS_PERCENTAGE = NumericField( - "sqlUniquenessPercentage", "sqlUniquenessPercentage" +Column.COLUMN_UNIQUENESS_PERCENTAGE = NumericField( + "columnUniquenessPercentage", "columnUniquenessPercentage" ) -Column.SQL_VARIANCE = NumericField("sqlVariance", "sqlVariance") +Column.COLUMN_VARIANCE = NumericField("columnVariance", "columnVariance") Column.COLUMN_TOP_VALUES = KeywordField("columnTopValues", "columnTopValues") -Column.SQL_MAX_VALUE = NumericField("sqlMaxValue", "sqlMaxValue") -Column.SQL_MIN_VALUE = NumericField("sqlMinValue", "sqlMinValue") -Column.SQL_MEAN_VALUE = NumericField("sqlMeanValue", "sqlMeanValue") -Column.SQL_SUM_VALUE = NumericField("sqlSumValue", "sqlSumValue") -Column.SQL_MEDIAN_VALUE = NumericField("sqlMedianValue", "sqlMedianValue") -Column.SQL_STANDARD_DEVIATION_VALUE = NumericField( - "sqlStandardDeviationValue", "sqlStandardDeviationValue" +Column.COLUMN_MAX_VALUE = NumericField("columnMaxValue", "columnMaxValue") +Column.COLUMN_MIN_VALUE = NumericField("columnMinValue", "columnMinValue") +Column.COLUMN_MEAN_VALUE = NumericField("columnMeanValue", "columnMeanValue") +Column.COLUMN_SUM_VALUE = NumericField("columnSumValue", "columnSumValue") +Column.COLUMN_MEDIAN_VALUE = NumericField("columnMedianValue", "columnMedianValue") +Column.COLUMN_STANDARD_DEVIATION_VALUE = NumericField( + "columnStandardDeviationValue", "columnStandardDeviationValue" +) +Column.COLUMN_AVERAGE_VALUE = NumericField("columnAverageValue", "columnAverageValue") +Column.COLUMN_VARIANCE_VALUE = NumericField( + "columnVarianceValue", "columnVarianceValue" ) -Column.SQL_AVERAGE_VALUE = NumericField("sqlAverageValue", "sqlAverageValue") -Column.SQL_VARIANCE_VALUE = NumericField("sqlVarianceValue", "sqlVarianceValue") -Column.SQL_AVERAGE_LENGTH_VALUE = NumericField( - "sqlAverageLengthValue", "sqlAverageLengthValue" +Column.COLUMN_AVERAGE_LENGTH_VALUE = NumericField( + "columnAverageLengthValue", "columnAverageLengthValue" ) -Column.SQL_DISTRIBUTION_HISTOGRAM = KeywordField( - "sqlDistributionHistogram", "sqlDistributionHistogram" +Column.COLUMN_DISTRIBUTION_HISTOGRAM = KeywordField( + "columnDistributionHistogram", "columnDistributionHistogram" ) -Column.SQL_DEPTH_LEVEL = NumericField("sqlDepthLevel", "sqlDepthLevel") +Column.COLUMN_DEPTH_LEVEL = NumericField("columnDepthLevel", "columnDepthLevel") Column.NOSQL_COLLECTION_NAME = KeywordField( "nosqlCollectionName", "nosqlCollectionName" ) Column.NOSQL_COLLECTION_QUALIFIED_NAME = KeywordField( "nosqlCollectionQualifiedName", "nosqlCollectionQualifiedName" ) -Column.SQL_IS_MEASURE = BooleanField("sqlIsMeasure", "sqlIsMeasure") -Column.SQL_MEASURE_TYPE = KeywordField("sqlMeasureType", "sqlMeasureType") -Column.SQL_AI_INSIGHTS_IS_MEASURE = BooleanField( - "sqlAiInsightsIsMeasure", "sqlAiInsightsIsMeasure" +Column.COLUMN_IS_MEASURE = BooleanField("columnIsMeasure", "columnIsMeasure") +Column.COLUMN_MEASURE_TYPE = KeywordField("columnMeasureType", "columnMeasureType") +Column.COLUMN_AI_INSIGHTS_IS_MEASURE = BooleanField( + "columnAiInsightsIsMeasure", "columnAiInsightsIsMeasure" ) -Column.SQL_AI_INSIGHTS_MEASURE_TYPE = KeywordField( - "sqlAiInsightsMeasureType", "sqlAiInsightsMeasureType" +Column.COLUMN_AI_INSIGHTS_MEASURE_TYPE = KeywordField( + "columnAiInsightsMeasureType", "columnAiInsightsMeasureType" ) -Column.SQL_AI_INSIGHTS_IS_DIMENSION = BooleanField( - "sqlAiInsightsIsDimension", "sqlAiInsightsIsDimension" +Column.COLUMN_AI_INSIGHTS_IS_DIMENSION = BooleanField( + "columnAiInsightsIsDimension", "columnAiInsightsIsDimension" ) -Column.SQL_AI_INSIGHTS_DIMENSION_TYPE = KeywordField( - "sqlAiInsightsDimensionType", "sqlAiInsightsDimensionType" +Column.COLUMN_AI_INSIGHTS_DIMENSION_TYPE = KeywordField( + "columnAiInsightsDimensionType", "columnAiInsightsDimensionType" ) -Column.SQL_AI_INSIGHTS_FOREIGN_KEY_COLUMN_QUALIFIED_NAME = KeywordField( - "sqlAiInsightsForeignKeyColumnQualifiedName", - "sqlAiInsightsForeignKeyColumnQualifiedName", +Column.COLUMN_AI_INSIGHTS_FOREIGN_KEY_COLUMN_QUALIFIED_NAME = KeywordField( + "columnAiInsightsForeignKeyColumnQualifiedName", + "columnAiInsightsForeignKeyColumnQualifiedName", ) Column.QUERY_COUNT = NumericField("queryCount", "queryCount") Column.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") diff --git a/pyatlan_v9/model/assets/cube_dimension.py b/pyatlan_v9/model/assets/cube_dimension.py index 96f14ed85..561bcf162 100644 --- a/pyatlan_v9/model/assets/cube_dimension.py +++ b/pyatlan_v9/model/assets/cube_dimension.py @@ -95,7 +95,6 @@ class CubeDimension(Asset): KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None - CUBE_DIMENSIONS: ClassVar[Any] = None CUBE: ClassVar[Any] = None CUBE_HIERARCHIES: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None @@ -202,9 +201,6 @@ class CubeDimension(Asset): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - cube: Union[RelatedCube, None, UnsetType] = UNSET """Cube containing the dimension.""" @@ -482,9 +478,6 @@ class CubeDimensionRelationshipAttributes(AssetRelationshipAttributes): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - cube: Union[RelatedCube, None, UnsetType] = UNSET """Cube containing the dimension.""" @@ -576,7 +569,6 @@ class CubeDimensionNested(AssetNested): "knowledge_linked_files", "mc_monitors", "mc_incidents", - "cube_dimensions", "cube", "cube_hierarchies", "partial_child_fields", @@ -780,7 +772,6 @@ def _cube_dimension_from_nested_bytes(data: bytes, serde: Serde) -> CubeDimensio CubeDimension.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") CubeDimension.MC_MONITORS = RelationField("mcMonitors") CubeDimension.MC_INCIDENTS = RelationField("mcIncidents") -CubeDimension.CUBE_DIMENSIONS = RelationField("cubeDimensions") CubeDimension.CUBE = RelationField("cube") CubeDimension.CUBE_HIERARCHIES = RelationField("cubeHierarchies") CubeDimension.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") diff --git a/pyatlan_v9/model/assets/cube_field.py b/pyatlan_v9/model/assets/cube_field.py index 07827d0dc..c611af291 100644 --- a/pyatlan_v9/model/assets/cube_field.py +++ b/pyatlan_v9/model/assets/cube_field.py @@ -39,7 +39,7 @@ _populate_asset_attrs, ) from .context_related import RelatedContextRepository -from .cube_related import RelatedCubeDimension, RelatedCubeField, RelatedCubeHierarchy +from .cube_related import RelatedCubeField, RelatedCubeHierarchy from .data_contract_related import RelatedDataContract from .data_mesh_related import RelatedDataProduct from .data_quality_related import RelatedDataQualityRule, RelatedMetric @@ -100,7 +100,6 @@ class CubeField(Asset): KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None - CUBE_DIMENSIONS: ClassVar[Any] = None CUBE_HIERARCHY: ClassVar[Any] = None CUBE_NESTED_FIELDS: ClassVar[Any] = None CUBE_PARENT_FIELD: ClassVar[Any] = None @@ -223,9 +222,6 @@ class CubeField(Asset): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - cube_hierarchy: Union[RelatedCubeHierarchy, None, UnsetType] = UNSET """Hierarchy containing the field.""" @@ -531,9 +527,6 @@ class CubeFieldRelationshipAttributes(AssetRelationshipAttributes): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - cube_hierarchy: Union[RelatedCubeHierarchy, None, UnsetType] = UNSET """Hierarchy containing the field.""" @@ -626,7 +619,6 @@ class CubeFieldNested(AssetNested): "knowledge_linked_files", "mc_monitors", "mc_incidents", - "cube_dimensions", "cube_hierarchy", "cube_nested_fields", "cube_parent_field", @@ -844,7 +836,6 @@ def _cube_field_from_nested_bytes(data: bytes, serde: Serde) -> CubeField: CubeField.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") CubeField.MC_MONITORS = RelationField("mcMonitors") CubeField.MC_INCIDENTS = RelationField("mcIncidents") -CubeField.CUBE_DIMENSIONS = RelationField("cubeDimensions") CubeField.CUBE_HIERARCHY = RelationField("cubeHierarchy") CubeField.CUBE_NESTED_FIELDS = RelationField("cubeNestedFields") CubeField.CUBE_PARENT_FIELD = RelationField("cubeParentField") diff --git a/pyatlan_v9/model/assets/cube_hierarchy.py b/pyatlan_v9/model/assets/cube_hierarchy.py index 2993d7574..aa0351af8 100644 --- a/pyatlan_v9/model/assets/cube_hierarchy.py +++ b/pyatlan_v9/model/assets/cube_hierarchy.py @@ -95,7 +95,6 @@ class CubeHierarchy(Asset): KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None - CUBE_DIMENSIONS: ClassVar[Any] = None CUBE_DIMENSION: ClassVar[Any] = None CUBE_FIELDS: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None @@ -202,9 +201,6 @@ class CubeHierarchy(Asset): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - cube_dimension: Union[RelatedCubeDimension, None, UnsetType] = UNSET """Dimension containing the hierarchy.""" @@ -488,9 +484,6 @@ class CubeHierarchyRelationshipAttributes(AssetRelationshipAttributes): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - cube_dimension: Union[RelatedCubeDimension, None, UnsetType] = UNSET """Dimension containing the hierarchy.""" @@ -582,7 +575,6 @@ class CubeHierarchyNested(AssetNested): "knowledge_linked_files", "mc_monitors", "mc_incidents", - "cube_dimensions", "cube_dimension", "cube_fields", "partial_child_fields", @@ -784,7 +776,6 @@ def _cube_hierarchy_from_nested_bytes(data: bytes, serde: Serde) -> CubeHierarch CubeHierarchy.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") CubeHierarchy.MC_MONITORS = RelationField("mcMonitors") CubeHierarchy.MC_INCIDENTS = RelationField("mcIncidents") -CubeHierarchy.CUBE_DIMENSIONS = RelationField("cubeDimensions") CubeHierarchy.CUBE_DIMENSION = RelationField("cubeDimension") CubeHierarchy.CUBE_FIELDS = RelationField("cubeFields") CubeHierarchy.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") diff --git a/pyatlan_v9/model/assets/data_mesh_related.py b/pyatlan_v9/model/assets/data_mesh_related.py index 6a2babf95..add54caf2 100644 --- a/pyatlan_v9/model/assets/data_mesh_related.py +++ b/pyatlan_v9/model/assets/data_mesh_related.py @@ -147,7 +147,7 @@ class RelatedDataProduct(RelatedDataMesh): data_product_score_value: Union[float, None, UnsetType] = UNSET """Score of this data product.""" - data_mesh_score_updated_at: Union[int, None, UnsetType] = UNSET + data_product_score_updated_at: Union[int, None, UnsetType] = UNSET """Timestamp when the score of this data product was last updated.""" daap_visibility_users: Union[List[str], None, UnsetType] = UNSET diff --git a/pyatlan_v9/model/assets/data_product.py b/pyatlan_v9/model/assets/data_product.py index 49b96a30c..472985f34 100644 --- a/pyatlan_v9/model/assets/data_product.py +++ b/pyatlan_v9/model/assets/data_product.py @@ -89,7 +89,7 @@ class DataProduct(Asset): DATA_PRODUCT_ASSETS_DSL: ClassVar[Any] = None DATA_PRODUCT_ASSETS_PLAYBOOK_FILTER: ClassVar[Any] = None DATA_PRODUCT_SCORE_VALUE: ClassVar[Any] = None - DATA_MESH_SCORE_UPDATED_AT: ClassVar[Any] = None + DATA_PRODUCT_SCORE_UPDATED_AT: ClassVar[Any] = None DAAP_VISIBILITY_USERS: ClassVar[Any] = None DAAP_VISIBILITY_GROUPS: ClassVar[Any] = None DAAP_OUTPUT_PORT_GUIDS: ClassVar[Any] = None @@ -172,7 +172,7 @@ class DataProduct(Asset): data_product_score_value: Union[float, None, UnsetType] = UNSET """Score of this data product.""" - data_mesh_score_updated_at: Union[int, None, UnsetType] = UNSET + data_product_score_updated_at: Union[int, None, UnsetType] = UNSET """Timestamp when the score of this data product was last updated.""" daap_visibility_users: Union[List[str], None, UnsetType] = UNSET @@ -566,7 +566,7 @@ class DataProductAttributes(AssetAttributes): data_product_score_value: Union[float, None, UnsetType] = UNSET """Score of this data product.""" - data_mesh_score_updated_at: Union[int, None, UnsetType] = UNSET + data_product_score_updated_at: Union[int, None, UnsetType] = UNSET """Timestamp when the score of this data product was last updated.""" daap_visibility_users: Union[List[str], None, UnsetType] = UNSET @@ -798,7 +798,7 @@ def _populate_data_product_attrs( attrs.data_product_assets_dsl = obj.data_product_assets_dsl attrs.data_product_assets_playbook_filter = obj.data_product_assets_playbook_filter attrs.data_product_score_value = obj.data_product_score_value - attrs.data_mesh_score_updated_at = obj.data_mesh_score_updated_at + attrs.data_product_score_updated_at = obj.data_product_score_updated_at attrs.daap_visibility_users = obj.daap_visibility_users attrs.daap_visibility_groups = obj.daap_visibility_groups attrs.daap_output_port_guids = obj.daap_output_port_guids @@ -825,7 +825,7 @@ def _extract_data_product_attrs(attrs: DataProductAttributes) -> dict: attrs.data_product_assets_playbook_filter ) result["data_product_score_value"] = attrs.data_product_score_value - result["data_mesh_score_updated_at"] = attrs.data_mesh_score_updated_at + result["data_product_score_updated_at"] = attrs.data_product_score_updated_at result["daap_visibility_users"] = attrs.daap_visibility_users result["daap_visibility_groups"] = attrs.daap_visibility_groups result["daap_output_port_guids"] = attrs.daap_output_port_guids @@ -966,8 +966,8 @@ def _data_product_from_nested_bytes(data: bytes, serde: Serde) -> DataProduct: DataProduct.DATA_PRODUCT_SCORE_VALUE = NumericField( "dataProductScoreValue", "dataProductScoreValue" ) -DataProduct.DATA_MESH_SCORE_UPDATED_AT = NumericField( - "dataMeshScoreUpdatedAt", "dataMeshScoreUpdatedAt" +DataProduct.DATA_PRODUCT_SCORE_UPDATED_AT = NumericField( + "dataProductScoreUpdatedAt", "dataProductScoreUpdatedAt" ) DataProduct.DAAP_VISIBILITY_USERS = KeywordField( "daapVisibilityUsers", "daapVisibilityUsers" diff --git a/pyatlan_v9/model/assets/data_quality_rule.py b/pyatlan_v9/model/assets/data_quality_rule.py index 9fe58aa56..96c7e1574 100644 --- a/pyatlan_v9/model/assets/data_quality_rule.py +++ b/pyatlan_v9/model/assets/data_quality_rule.py @@ -69,6 +69,7 @@ ) from .gcp_dataplex_related import RelatedGCPDataplexAspectType from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile from .model_related import RelatedModelAttribute, RelatedModelEntity from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .partial_related import RelatedPartialField, RelatedPartialObject @@ -141,6 +142,7 @@ class DataQualityRule(Asset): DQ_RULE_REFERENCE_COLUMNS: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None @@ -321,6 +323,9 @@ class DataQualityRule(Asset): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -1341,6 +1346,9 @@ class DataQualityRuleRelationshipAttributes(AssetRelationshipAttributes): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -1434,6 +1442,7 @@ class DataQualityRuleNested(AssetNested): "dq_rule_reference_columns", "gcp_dataplex_aspect_type_metadata_entities", "meanings", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "partial_child_fields", @@ -1618,6 +1627,7 @@ def _data_quality_rule_from_nested(nested: DataQualityRuleNested) -> DataQuality updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -1762,6 +1772,7 @@ def _data_quality_rule_from_nested_bytes(data: bytes, serde: Serde) -> DataQuali "gcpDataplexAspectTypeMetadataEntities" ) DataQualityRule.MEANINGS = RelationField("meanings") +DataQualityRule.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") DataQualityRule.MC_MONITORS = RelationField("mcMonitors") DataQualityRule.MC_INCIDENTS = RelationField("mcIncidents") DataQualityRule.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") diff --git a/pyatlan_v9/model/assets/databricks_ai_model_context.py b/pyatlan_v9/model/assets/databricks_ai_model_context.py index 460cfe251..b67bf5eb9 100644 --- a/pyatlan_v9/model/assets/databricks_ai_model_context.py +++ b/pyatlan_v9/model/assets/databricks_ai_model_context.py @@ -84,7 +84,7 @@ class DatabricksAIModelContext(Asset): Instance of an ai model in databricks. """ - DATABRICKS_METASTORE_ID: ClassVar[Any] = None + DATABRICKS_AI_MODEL_CONTEXT_METASTORE_ID: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -177,7 +177,9 @@ class DatabricksAIModelContext(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_metastore_id: Union[str, None, UnsetType] = UNSET + databricks_ai_model_context_metastore_id: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelContextMetastoreId") + ) """The id of the model, common across versions.""" query_count: Union[int, None, UnsetType] = UNSET @@ -637,7 +639,9 @@ def from_json( class DatabricksAIModelContextAttributes(AssetAttributes): """DatabricksAIModelContext-specific attributes for nested API format.""" - databricks_metastore_id: Union[str, None, UnsetType] = UNSET + databricks_ai_model_context_metastore_id: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelContextMetastoreId") + ) """The id of the model, common across versions.""" query_count: Union[int, None, UnsetType] = UNSET @@ -1036,7 +1040,9 @@ def _populate_databricks_ai_model_context_attrs( ) -> None: """Populate DatabricksAIModelContext-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_metastore_id = obj.databricks_metastore_id + attrs.databricks_ai_model_context_metastore_id = ( + obj.databricks_ai_model_context_metastore_id + ) attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1096,7 +1102,9 @@ def _extract_databricks_ai_model_context_attrs( ) -> dict: """Extract all DatabricksAIModelContext attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_metastore_id"] = attrs.databricks_metastore_id + result["databricks_ai_model_context_metastore_id"] = ( + attrs.databricks_ai_model_context_metastore_id + ) result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1281,8 +1289,8 @@ def _databricks_ai_model_context_from_nested_bytes( RelationField, ) -DatabricksAIModelContext.DATABRICKS_METASTORE_ID = KeywordField( - "databricksMetastoreId", "databricksMetastoreId" +DatabricksAIModelContext.DATABRICKS_AI_MODEL_CONTEXT_METASTORE_ID = KeywordField( + "databricksAIModelContextMetastoreId", "databricksAIModelContextMetastoreId" ) DatabricksAIModelContext.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksAIModelContext.QUERY_USER_COUNT = NumericField( diff --git a/pyatlan_v9/model/assets/databricks_ai_model_version.py b/pyatlan_v9/model/assets/databricks_ai_model_version.py index 08d960e4f..2ed92ecfd 100644 --- a/pyatlan_v9/model/assets/databricks_ai_model_version.py +++ b/pyatlan_v9/model/assets/databricks_ai_model_version.py @@ -83,18 +83,18 @@ class DatabricksAIModelVersion(Asset): Instance of an ai model version in databricks. """ - DATABRICKS_ID: ClassVar[Any] = None - DATABRICKS_RUN_ID: ClassVar[Any] = None - DATABRICKS_RUN_NAME: ClassVar[Any] = None - DATABRICKS_RUN_START_TIME: ClassVar[Any] = None - DATABRICKS_RUN_END_TIME: ClassVar[Any] = None - DATABRICKS_STATUS: ClassVar[Any] = None - DATABRICKS_ALIASES: ClassVar[Any] = None - DATABRICKS_DATASET_COUNT: ClassVar[Any] = None - DATABRICKS_SOURCE: ClassVar[Any] = None - DATABRICKS_ARTIFACT_URI: ClassVar[Any] = None - DATABRICKS_METRICS: ClassVar[Any] = None - DATABRICKS_PARAMS: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_ID: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_RUN_ID: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_RUN_NAME: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_RUN_START_TIME: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_RUN_END_TIME: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_STATUS: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_ALIASES: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_DATASET_COUNT: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_SOURCE: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_ARTIFACT_URI: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_METRICS: ClassVar[Any] = None + DATABRICKS_AI_MODEL_VERSION_PARAMS: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -185,40 +185,64 @@ class DatabricksAIModelVersion(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_id: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_id: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionId" + ) """The id of the model, unique to every version.""" - databricks_run_id: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_run_id: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionRunId" + ) """The run id of the model.""" - databricks_run_name: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_run_name: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionRunName" + ) """The run name of the model.""" - databricks_run_start_time: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_run_start_time: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionRunStartTime") + ) """The run start time of the model.""" - databricks_run_end_time: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_run_end_time: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionRunEndTime") + ) """The run end time of the model.""" - databricks_status: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_status: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionStatus" + ) """The status of the model.""" - databricks_aliases: Union[List[str], None, UnsetType] = UNSET + databricks_ai_model_version_aliases: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionAliases") + ) """The aliases of the model.""" - databricks_dataset_count: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_dataset_count: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionDatasetCount") + ) """Number of datasets.""" - databricks_source: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_source: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionSource" + ) """Source artifact link for the model.""" - databricks_artifact_uri: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_artifact_uri: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionArtifactUri") + ) """Artifact uri for the model.""" - databricks_metrics: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + databricks_ai_model_version_metrics: Union[ + List[Dict[str, Any]], None, UnsetType + ] = msgspec.field(default=UNSET, name="databricksAIModelVersionMetrics") """Metrics for an individual experiment.""" - databricks_params: Union[Dict[str, str], None, UnsetType] = UNSET + databricks_ai_model_version_params: Union[Dict[str, str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionParams") + ) """Params with key mapped to value for an individual experiment.""" query_count: Union[int, None, UnsetType] = UNSET @@ -670,40 +694,64 @@ def from_json( class DatabricksAIModelVersionAttributes(AssetAttributes): """DatabricksAIModelVersion-specific attributes for nested API format.""" - databricks_id: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_id: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionId" + ) """The id of the model, unique to every version.""" - databricks_run_id: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_run_id: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionRunId" + ) """The run id of the model.""" - databricks_run_name: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_run_name: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionRunName" + ) """The run name of the model.""" - databricks_run_start_time: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_run_start_time: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionRunStartTime") + ) """The run start time of the model.""" - databricks_run_end_time: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_run_end_time: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionRunEndTime") + ) """The run end time of the model.""" - databricks_status: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_status: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionStatus" + ) """The status of the model.""" - databricks_aliases: Union[List[str], None, UnsetType] = UNSET + databricks_ai_model_version_aliases: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionAliases") + ) """The aliases of the model.""" - databricks_dataset_count: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_dataset_count: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionDatasetCount") + ) """Number of datasets.""" - databricks_source: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_source: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionSource" + ) """Source artifact link for the model.""" - databricks_artifact_uri: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_artifact_uri: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionArtifactUri") + ) """Artifact uri for the model.""" - databricks_metrics: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + databricks_ai_model_version_metrics: Union[ + List[Dict[str, Any]], None, UnsetType + ] = msgspec.field(default=UNSET, name="databricksAIModelVersionMetrics") """Metrics for an individual experiment.""" - databricks_params: Union[Dict[str, str], None, UnsetType] = UNSET + databricks_ai_model_version_params: Union[Dict[str, str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionParams") + ) """Params with key mapped to value for an individual experiment.""" query_count: Union[int, None, UnsetType] = UNSET @@ -1090,18 +1138,28 @@ def _populate_databricks_ai_model_version_attrs( ) -> None: """Populate DatabricksAIModelVersion-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_id = obj.databricks_id - attrs.databricks_run_id = obj.databricks_run_id - attrs.databricks_run_name = obj.databricks_run_name - attrs.databricks_run_start_time = obj.databricks_run_start_time - attrs.databricks_run_end_time = obj.databricks_run_end_time - attrs.databricks_status = obj.databricks_status - attrs.databricks_aliases = obj.databricks_aliases - attrs.databricks_dataset_count = obj.databricks_dataset_count - attrs.databricks_source = obj.databricks_source - attrs.databricks_artifact_uri = obj.databricks_artifact_uri - attrs.databricks_metrics = obj.databricks_metrics - attrs.databricks_params = obj.databricks_params + attrs.databricks_ai_model_version_id = obj.databricks_ai_model_version_id + attrs.databricks_ai_model_version_run_id = obj.databricks_ai_model_version_run_id + attrs.databricks_ai_model_version_run_name = ( + obj.databricks_ai_model_version_run_name + ) + attrs.databricks_ai_model_version_run_start_time = ( + obj.databricks_ai_model_version_run_start_time + ) + attrs.databricks_ai_model_version_run_end_time = ( + obj.databricks_ai_model_version_run_end_time + ) + attrs.databricks_ai_model_version_status = obj.databricks_ai_model_version_status + attrs.databricks_ai_model_version_aliases = obj.databricks_ai_model_version_aliases + attrs.databricks_ai_model_version_dataset_count = ( + obj.databricks_ai_model_version_dataset_count + ) + attrs.databricks_ai_model_version_source = obj.databricks_ai_model_version_source + attrs.databricks_ai_model_version_artifact_uri = ( + obj.databricks_ai_model_version_artifact_uri + ) + attrs.databricks_ai_model_version_metrics = obj.databricks_ai_model_version_metrics + attrs.databricks_ai_model_version_params = obj.databricks_ai_model_version_params attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1161,18 +1219,40 @@ def _extract_databricks_ai_model_version_attrs( ) -> dict: """Extract all DatabricksAIModelVersion attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_id"] = attrs.databricks_id - result["databricks_run_id"] = attrs.databricks_run_id - result["databricks_run_name"] = attrs.databricks_run_name - result["databricks_run_start_time"] = attrs.databricks_run_start_time - result["databricks_run_end_time"] = attrs.databricks_run_end_time - result["databricks_status"] = attrs.databricks_status - result["databricks_aliases"] = attrs.databricks_aliases - result["databricks_dataset_count"] = attrs.databricks_dataset_count - result["databricks_source"] = attrs.databricks_source - result["databricks_artifact_uri"] = attrs.databricks_artifact_uri - result["databricks_metrics"] = attrs.databricks_metrics - result["databricks_params"] = attrs.databricks_params + result["databricks_ai_model_version_id"] = attrs.databricks_ai_model_version_id + result["databricks_ai_model_version_run_id"] = ( + attrs.databricks_ai_model_version_run_id + ) + result["databricks_ai_model_version_run_name"] = ( + attrs.databricks_ai_model_version_run_name + ) + result["databricks_ai_model_version_run_start_time"] = ( + attrs.databricks_ai_model_version_run_start_time + ) + result["databricks_ai_model_version_run_end_time"] = ( + attrs.databricks_ai_model_version_run_end_time + ) + result["databricks_ai_model_version_status"] = ( + attrs.databricks_ai_model_version_status + ) + result["databricks_ai_model_version_aliases"] = ( + attrs.databricks_ai_model_version_aliases + ) + result["databricks_ai_model_version_dataset_count"] = ( + attrs.databricks_ai_model_version_dataset_count + ) + result["databricks_ai_model_version_source"] = ( + attrs.databricks_ai_model_version_source + ) + result["databricks_ai_model_version_artifact_uri"] = ( + attrs.databricks_ai_model_version_artifact_uri + ) + result["databricks_ai_model_version_metrics"] = ( + attrs.databricks_ai_model_version_metrics + ) + result["databricks_ai_model_version_params"] = ( + attrs.databricks_ai_model_version_params + ) result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1357,39 +1437,41 @@ def _databricks_ai_model_version_from_nested_bytes( RelationField, ) -DatabricksAIModelVersion.DATABRICKS_ID = NumericField("databricksId", "databricksId") -DatabricksAIModelVersion.DATABRICKS_RUN_ID = KeywordField( - "databricksRunId", "databricksRunId" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_ID = NumericField( + "databricksAIModelVersionId", "databricksAIModelVersionId" +) +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_RUN_ID = KeywordField( + "databricksAIModelVersionRunId", "databricksAIModelVersionRunId" ) -DatabricksAIModelVersion.DATABRICKS_RUN_NAME = KeywordField( - "databricksRunName", "databricksRunName" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_RUN_NAME = KeywordField( + "databricksAIModelVersionRunName", "databricksAIModelVersionRunName" ) -DatabricksAIModelVersion.DATABRICKS_RUN_START_TIME = NumericField( - "databricksRunStartTime", "databricksRunStartTime" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_RUN_START_TIME = NumericField( + "databricksAIModelVersionRunStartTime", "databricksAIModelVersionRunStartTime" ) -DatabricksAIModelVersion.DATABRICKS_RUN_END_TIME = NumericField( - "databricksRunEndTime", "databricksRunEndTime" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_RUN_END_TIME = NumericField( + "databricksAIModelVersionRunEndTime", "databricksAIModelVersionRunEndTime" ) -DatabricksAIModelVersion.DATABRICKS_STATUS = KeywordField( - "databricksStatus", "databricksStatus" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_STATUS = KeywordField( + "databricksAIModelVersionStatus", "databricksAIModelVersionStatus" ) -DatabricksAIModelVersion.DATABRICKS_ALIASES = KeywordField( - "databricksAliases", "databricksAliases" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_ALIASES = KeywordField( + "databricksAIModelVersionAliases", "databricksAIModelVersionAliases" ) -DatabricksAIModelVersion.DATABRICKS_DATASET_COUNT = NumericField( - "databricksDatasetCount", "databricksDatasetCount" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_DATASET_COUNT = NumericField( + "databricksAIModelVersionDatasetCount", "databricksAIModelVersionDatasetCount" ) -DatabricksAIModelVersion.DATABRICKS_SOURCE = KeywordField( - "databricksSource", "databricksSource" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_SOURCE = KeywordField( + "databricksAIModelVersionSource", "databricksAIModelVersionSource" ) -DatabricksAIModelVersion.DATABRICKS_ARTIFACT_URI = KeywordField( - "databricksArtifactUri", "databricksArtifactUri" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_ARTIFACT_URI = KeywordField( + "databricksAIModelVersionArtifactUri", "databricksAIModelVersionArtifactUri" ) -DatabricksAIModelVersion.DATABRICKS_METRICS = KeywordField( - "databricksMetrics", "databricksMetrics" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_METRICS = KeywordField( + "databricksAIModelVersionMetrics", "databricksAIModelVersionMetrics" ) -DatabricksAIModelVersion.DATABRICKS_PARAMS = KeywordField( - "databricksParams", "databricksParams" +DatabricksAIModelVersion.DATABRICKS_AI_MODEL_VERSION_PARAMS = KeywordField( + "databricksAIModelVersionParams", "databricksAIModelVersionParams" ) DatabricksAIModelVersion.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksAIModelVersion.QUERY_USER_COUNT = NumericField( diff --git a/pyatlan_v9/model/assets/databricks_dashboard.py b/pyatlan_v9/model/assets/databricks_dashboard.py index 3aa2e7d81..4a667724f 100644 --- a/pyatlan_v9/model/assets/databricks_dashboard.py +++ b/pyatlan_v9/model/assets/databricks_dashboard.py @@ -79,12 +79,12 @@ class DatabricksDashboard(Asset): Instance of a Databricks AI/BI dashboard in Atlan. """ - DATABRICKS_PATH: ClassVar[Any] = None - DATABRICKS_WORKSPACE_ID: ClassVar[Any] = None - DATABRICKS_WAREHOUSE_ID: ClassVar[Any] = None - DATABRICKS_ETAG: ClassVar[Any] = None - DATABRICKS_IS_GENIE_SPACE_ENABLED: ClassVar[Any] = None - DATABRICKS_LIFECYCLE_STATE: ClassVar[Any] = None + DATABRICKS_DASHBOARD_PATH: ClassVar[Any] = None + DATABRICKS_DASHBOARD_WORKSPACE_ID: ClassVar[Any] = None + DATABRICKS_DASHBOARD_WAREHOUSE_ID: ClassVar[Any] = None + DATABRICKS_DASHBOARD_ETAG: ClassVar[Any] = None + DATABRICKS_DASHBOARD_IS_GENIE_SPACE_ENABLED: ClassVar[Any] = None + DATABRICKS_DASHBOARD_LIFECYCLE_STATE: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -163,22 +163,22 @@ class DatabricksDashboard(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_dashboard_path: Union[str, None, UnsetType] = UNSET """Workspace path of the dashboard asset, including its file name. The parent folder path can be derived by dropping the last path segment.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_dashboard_workspace_id: Union[str, None, UnsetType] = UNSET """Identifier of the workspace containing the dashboard.""" - databricks_warehouse_id: Union[str, None, UnsetType] = UNSET + databricks_dashboard_warehouse_id: Union[str, None, UnsetType] = UNSET """Identifier of the SQL warehouse backing the dashboard.""" - databricks_etag: Union[str, None, UnsetType] = UNSET + databricks_dashboard_etag: Union[str, None, UnsetType] = UNSET """Entity tag used as a change token for the dashboard.""" - databricks_is_genie_space_enabled: Union[bool, None, UnsetType] = UNSET + databricks_dashboard_is_genie_space_enabled: Union[bool, None, UnsetType] = UNSET """Whether a Genie space is enabled for the dashboard.""" - databricks_lifecycle_state: Union[str, None, UnsetType] = UNSET + databricks_dashboard_lifecycle_state: Union[str, None, UnsetType] = UNSET """Lifecycle state of the dashboard.""" query_count: Union[int, None, UnsetType] = UNSET @@ -563,22 +563,22 @@ def from_json( class DatabricksDashboardAttributes(AssetAttributes): """DatabricksDashboard-specific attributes for nested API format.""" - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_dashboard_path: Union[str, None, UnsetType] = UNSET """Workspace path of the dashboard asset, including its file name. The parent folder path can be derived by dropping the last path segment.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_dashboard_workspace_id: Union[str, None, UnsetType] = UNSET """Identifier of the workspace containing the dashboard.""" - databricks_warehouse_id: Union[str, None, UnsetType] = UNSET + databricks_dashboard_warehouse_id: Union[str, None, UnsetType] = UNSET """Identifier of the SQL warehouse backing the dashboard.""" - databricks_etag: Union[str, None, UnsetType] = UNSET + databricks_dashboard_etag: Union[str, None, UnsetType] = UNSET """Entity tag used as a change token for the dashboard.""" - databricks_is_genie_space_enabled: Union[bool, None, UnsetType] = UNSET + databricks_dashboard_is_genie_space_enabled: Union[bool, None, UnsetType] = UNSET """Whether a Genie space is enabled for the dashboard.""" - databricks_lifecycle_state: Union[str, None, UnsetType] = UNSET + databricks_dashboard_lifecycle_state: Union[str, None, UnsetType] = UNSET """Lifecycle state of the dashboard.""" query_count: Union[int, None, UnsetType] = UNSET @@ -911,12 +911,16 @@ def _populate_databricks_dashboard_attrs( ) -> None: """Populate DatabricksDashboard-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_path = obj.databricks_path - attrs.databricks_workspace_id = obj.databricks_workspace_id - attrs.databricks_warehouse_id = obj.databricks_warehouse_id - attrs.databricks_etag = obj.databricks_etag - attrs.databricks_is_genie_space_enabled = obj.databricks_is_genie_space_enabled - attrs.databricks_lifecycle_state = obj.databricks_lifecycle_state + attrs.databricks_dashboard_path = obj.databricks_dashboard_path + attrs.databricks_dashboard_workspace_id = obj.databricks_dashboard_workspace_id + attrs.databricks_dashboard_warehouse_id = obj.databricks_dashboard_warehouse_id + attrs.databricks_dashboard_etag = obj.databricks_dashboard_etag + attrs.databricks_dashboard_is_genie_space_enabled = ( + obj.databricks_dashboard_is_genie_space_enabled + ) + attrs.databricks_dashboard_lifecycle_state = ( + obj.databricks_dashboard_lifecycle_state + ) attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -960,14 +964,20 @@ def _populate_databricks_dashboard_attrs( def _extract_databricks_dashboard_attrs(attrs: DatabricksDashboardAttributes) -> dict: """Extract all DatabricksDashboard attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_path"] = attrs.databricks_path - result["databricks_workspace_id"] = attrs.databricks_workspace_id - result["databricks_warehouse_id"] = attrs.databricks_warehouse_id - result["databricks_etag"] = attrs.databricks_etag - result["databricks_is_genie_space_enabled"] = ( - attrs.databricks_is_genie_space_enabled + result["databricks_dashboard_path"] = attrs.databricks_dashboard_path + result["databricks_dashboard_workspace_id"] = ( + attrs.databricks_dashboard_workspace_id + ) + result["databricks_dashboard_warehouse_id"] = ( + attrs.databricks_dashboard_warehouse_id + ) + result["databricks_dashboard_etag"] = attrs.databricks_dashboard_etag + result["databricks_dashboard_is_genie_space_enabled"] = ( + attrs.databricks_dashboard_is_genie_space_enabled + ) + result["databricks_dashboard_lifecycle_state"] = ( + attrs.databricks_dashboard_lifecycle_state ) - result["databricks_lifecycle_state"] = attrs.databricks_lifecycle_state result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1134,19 +1144,23 @@ def _databricks_dashboard_from_nested_bytes( RelationField, ) -DatabricksDashboard.DATABRICKS_PATH = KeywordField("databricksPath", "databricksPath") -DatabricksDashboard.DATABRICKS_WORKSPACE_ID = KeywordField( - "databricksWorkspaceId", "databricksWorkspaceId" +DatabricksDashboard.DATABRICKS_DASHBOARD_PATH = KeywordField( + "databricksDashboardPath", "databricksDashboardPath" +) +DatabricksDashboard.DATABRICKS_DASHBOARD_WORKSPACE_ID = KeywordField( + "databricksDashboardWorkspaceId", "databricksDashboardWorkspaceId" +) +DatabricksDashboard.DATABRICKS_DASHBOARD_WAREHOUSE_ID = KeywordField( + "databricksDashboardWarehouseId", "databricksDashboardWarehouseId" ) -DatabricksDashboard.DATABRICKS_WAREHOUSE_ID = KeywordField( - "databricksWarehouseId", "databricksWarehouseId" +DatabricksDashboard.DATABRICKS_DASHBOARD_ETAG = KeywordField( + "databricksDashboardEtag", "databricksDashboardEtag" ) -DatabricksDashboard.DATABRICKS_ETAG = KeywordField("databricksEtag", "databricksEtag") -DatabricksDashboard.DATABRICKS_IS_GENIE_SPACE_ENABLED = BooleanField( - "databricksIsGenieSpaceEnabled", "databricksIsGenieSpaceEnabled" +DatabricksDashboard.DATABRICKS_DASHBOARD_IS_GENIE_SPACE_ENABLED = BooleanField( + "databricksDashboardIsGenieSpaceEnabled", "databricksDashboardIsGenieSpaceEnabled" ) -DatabricksDashboard.DATABRICKS_LIFECYCLE_STATE = KeywordField( - "databricksLifecycleState", "databricksLifecycleState" +DatabricksDashboard.DATABRICKS_DASHBOARD_LIFECYCLE_STATE = KeywordField( + "databricksDashboardLifecycleState", "databricksDashboardLifecycleState" ) DatabricksDashboard.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksDashboard.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") diff --git a/pyatlan_v9/model/assets/databricks_genie_agent.py b/pyatlan_v9/model/assets/databricks_genie_agent.py index d5b026e3b..77dec9f54 100644 --- a/pyatlan_v9/model/assets/databricks_genie_agent.py +++ b/pyatlan_v9/model/assets/databricks_genie_agent.py @@ -80,10 +80,10 @@ class DatabricksGenieAgent(Asset): Instance of a Databricks Genie space in Atlan. A Genie space is a curated natural-language interface over a set of Databricks tables, published here as an agent asset for governance and discovery. """ - DATABRICKS_WORKSPACE_ID: ClassVar[Any] = None - DATABRICKS_WAREHOUSE_ID: ClassVar[Any] = None - DATABRICKS_PARENT_PATH: ClassVar[Any] = None - DATABRICKS_ETAG: ClassVar[Any] = None + DATABRICKS_GENIE_AGENT_WORKSPACE_ID: ClassVar[Any] = None + DATABRICKS_GENIE_AGENT_WAREHOUSE_ID: ClassVar[Any] = None + DATABRICKS_GENIE_AGENT_PARENT_PATH: ClassVar[Any] = None + DATABRICKS_GENIE_AGENT_ETAG: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -175,16 +175,16 @@ class DatabricksGenieAgent(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_workspace_id: Union[str, None, UnsetType] = UNSET """Identifier of the workspace containing the Genie space.""" - databricks_warehouse_id: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_warehouse_id: Union[str, None, UnsetType] = UNSET """Identifier of the SQL warehouse backing the Genie space.""" - databricks_parent_path: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_parent_path: Union[str, None, UnsetType] = UNSET """Workspace folder path containing the Genie space. It is descriptive only and creates no containment or hierarchy edge.""" - databricks_etag: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_etag: Union[str, None, UnsetType] = UNSET """Entity tag used as a change token for the Genie space. It is populated only by an enabled serialized-detail read, so it is null when that read is disabled, denied, or omitted by the source.""" query_count: Union[int, None, UnsetType] = UNSET @@ -608,16 +608,16 @@ def from_json( class DatabricksGenieAgentAttributes(AssetAttributes): """DatabricksGenieAgent-specific attributes for nested API format.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_workspace_id: Union[str, None, UnsetType] = UNSET """Identifier of the workspace containing the Genie space.""" - databricks_warehouse_id: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_warehouse_id: Union[str, None, UnsetType] = UNSET """Identifier of the SQL warehouse backing the Genie space.""" - databricks_parent_path: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_parent_path: Union[str, None, UnsetType] = UNSET """Workspace folder path containing the Genie space. It is descriptive only and creates no containment or hierarchy edge.""" - databricks_etag: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_etag: Union[str, None, UnsetType] = UNSET """Entity tag used as a change token for the Genie space. It is populated only by an enabled serialized-detail read, so it is null when that read is disabled, denied, or omitted by the source.""" query_count: Union[int, None, UnsetType] = UNSET @@ -991,10 +991,10 @@ def _populate_databricks_genie_agent_attrs( ) -> None: """Populate DatabricksGenieAgent-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_workspace_id = obj.databricks_workspace_id - attrs.databricks_warehouse_id = obj.databricks_warehouse_id - attrs.databricks_parent_path = obj.databricks_parent_path - attrs.databricks_etag = obj.databricks_etag + attrs.databricks_genie_agent_workspace_id = obj.databricks_genie_agent_workspace_id + attrs.databricks_genie_agent_warehouse_id = obj.databricks_genie_agent_warehouse_id + attrs.databricks_genie_agent_parent_path = obj.databricks_genie_agent_parent_path + attrs.databricks_genie_agent_etag = obj.databricks_genie_agent_etag attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1051,10 +1051,16 @@ def _extract_databricks_genie_agent_attrs( ) -> dict: """Extract all DatabricksGenieAgent attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_workspace_id"] = attrs.databricks_workspace_id - result["databricks_warehouse_id"] = attrs.databricks_warehouse_id - result["databricks_parent_path"] = attrs.databricks_parent_path - result["databricks_etag"] = attrs.databricks_etag + result["databricks_genie_agent_workspace_id"] = ( + attrs.databricks_genie_agent_workspace_id + ) + result["databricks_genie_agent_warehouse_id"] = ( + attrs.databricks_genie_agent_warehouse_id + ) + result["databricks_genie_agent_parent_path"] = ( + attrs.databricks_genie_agent_parent_path + ) + result["databricks_genie_agent_etag"] = attrs.databricks_genie_agent_etag result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1233,16 +1239,18 @@ def _databricks_genie_agent_from_nested_bytes( TextField, ) -DatabricksGenieAgent.DATABRICKS_WORKSPACE_ID = KeywordField( - "databricksWorkspaceId", "databricksWorkspaceId" +DatabricksGenieAgent.DATABRICKS_GENIE_AGENT_WORKSPACE_ID = KeywordField( + "databricksGenieAgentWorkspaceId", "databricksGenieAgentWorkspaceId" +) +DatabricksGenieAgent.DATABRICKS_GENIE_AGENT_WAREHOUSE_ID = KeywordField( + "databricksGenieAgentWarehouseId", "databricksGenieAgentWarehouseId" ) -DatabricksGenieAgent.DATABRICKS_WAREHOUSE_ID = KeywordField( - "databricksWarehouseId", "databricksWarehouseId" +DatabricksGenieAgent.DATABRICKS_GENIE_AGENT_PARENT_PATH = KeywordField( + "databricksGenieAgentParentPath", "databricksGenieAgentParentPath" ) -DatabricksGenieAgent.DATABRICKS_PARENT_PATH = KeywordField( - "databricksParentPath", "databricksParentPath" +DatabricksGenieAgent.DATABRICKS_GENIE_AGENT_ETAG = KeywordField( + "databricksGenieAgentEtag", "databricksGenieAgentEtag" ) -DatabricksGenieAgent.DATABRICKS_ETAG = KeywordField("databricksEtag", "databricksEtag") DatabricksGenieAgent.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksGenieAgent.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") DatabricksGenieAgent.QUERY_USER_MAP = KeywordField("queryUserMap", "queryUserMap") diff --git a/pyatlan_v9/model/assets/databricks_notebook.py b/pyatlan_v9/model/assets/databricks_notebook.py index 89c236aad..949058484 100644 --- a/pyatlan_v9/model/assets/databricks_notebook.py +++ b/pyatlan_v9/model/assets/databricks_notebook.py @@ -78,8 +78,8 @@ class DatabricksNotebook(Asset): Base class for all databricks notebook assets. """ - DATABRICKS_PATH: ClassVar[Any] = None - DATABRICKS_WORKSPACE_ID: ClassVar[Any] = None + DATABRICKS_NOTEBOOK_PATH: ClassVar[Any] = None + DATABRICKS_NOTEBOOK_WORKSPACE_ID: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -158,10 +158,10 @@ class DatabricksNotebook(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_notebook_path: Union[str, None, UnsetType] = UNSET """Path of the notebook.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_notebook_workspace_id: Union[str, None, UnsetType] = UNSET """Workspace Id of the notebook.""" query_count: Union[int, None, UnsetType] = UNSET @@ -537,10 +537,10 @@ def from_json( class DatabricksNotebookAttributes(AssetAttributes): """DatabricksNotebook-specific attributes for nested API format.""" - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_notebook_path: Union[str, None, UnsetType] = UNSET """Path of the notebook.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_notebook_workspace_id: Union[str, None, UnsetType] = UNSET """Workspace Id of the notebook.""" query_count: Union[int, None, UnsetType] = UNSET @@ -873,8 +873,8 @@ def _populate_databricks_notebook_attrs( ) -> None: """Populate DatabricksNotebook-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_path = obj.databricks_path - attrs.databricks_workspace_id = obj.databricks_workspace_id + attrs.databricks_notebook_path = obj.databricks_notebook_path + attrs.databricks_notebook_workspace_id = obj.databricks_notebook_workspace_id attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -918,8 +918,8 @@ def _populate_databricks_notebook_attrs( def _extract_databricks_notebook_attrs(attrs: DatabricksNotebookAttributes) -> dict: """Extract all DatabricksNotebook attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_path"] = attrs.databricks_path - result["databricks_workspace_id"] = attrs.databricks_workspace_id + result["databricks_notebook_path"] = attrs.databricks_notebook_path + result["databricks_notebook_workspace_id"] = attrs.databricks_notebook_workspace_id result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1086,9 +1086,11 @@ def _databricks_notebook_from_nested_bytes( RelationField, ) -DatabricksNotebook.DATABRICKS_PATH = KeywordField("databricksPath", "databricksPath") -DatabricksNotebook.DATABRICKS_WORKSPACE_ID = KeywordField( - "databricksWorkspaceId", "databricksWorkspaceId" +DatabricksNotebook.DATABRICKS_NOTEBOOK_PATH = KeywordField( + "databricksNotebookPath", "databricksNotebookPath" +) +DatabricksNotebook.DATABRICKS_NOTEBOOK_WORKSPACE_ID = KeywordField( + "databricksNotebookWorkspaceId", "databricksNotebookWorkspaceId" ) DatabricksNotebook.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksNotebook.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") diff --git a/pyatlan_v9/model/assets/databricks_related.py b/pyatlan_v9/model/assets/databricks_related.py index 42f03d91c..6b69dc13b 100644 --- a/pyatlan_v9/model/assets/databricks_related.py +++ b/pyatlan_v9/model/assets/databricks_related.py @@ -13,6 +13,7 @@ from typing import Any, Dict, List, Union +import msgspec from msgspec import UNSET, UnsetType from .referenceable_related import RelatedReferenceable @@ -60,13 +61,13 @@ class RelatedDatabricksVolume(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksVolume" so it serializes correctly - databricks_owner: Union[str, None, UnsetType] = UNSET + databricks_volume_owner: Union[str, None, UnsetType] = UNSET """User or group (principal) currently owning the volume.""" - databricks_external_location: Union[str, None, UnsetType] = UNSET + databricks_volume_external_location: Union[str, None, UnsetType] = UNSET """The storage location where the volume is created.""" - databricks_type: Union[str, None, UnsetType] = UNSET + databricks_volume_type: Union[str, None, UnsetType] = UNSET """Type of the volume.""" def __post_init__(self) -> None: @@ -85,13 +86,13 @@ class RelatedDatabricksVolumePath(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksVolumePath" so it serializes correctly - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_volume_path_path: Union[str, None, UnsetType] = UNSET """Path of data on the volume.""" - databricks_volume_qualified_name: Union[str, None, UnsetType] = UNSET + databricks_volume_path_volume_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the parent volume.""" - databricks_volume_name: Union[str, None, UnsetType] = UNSET + databricks_volume_path_volume_name: Union[str, None, UnsetType] = UNSET """Name of the parent volume.""" def __post_init__(self) -> None: @@ -157,7 +158,9 @@ class RelatedDatabricksAIModelContext(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksAIModelContext" so it serializes correctly - databricks_metastore_id: Union[str, None, UnsetType] = UNSET + databricks_ai_model_context_metastore_id: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelContextMetastoreId") + ) """The id of the model, common across versions.""" def __post_init__(self) -> None: @@ -176,40 +179,64 @@ class RelatedDatabricksAIModelVersion(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksAIModelVersion" so it serializes correctly - databricks_id: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_id: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionId" + ) """The id of the model, unique to every version.""" - databricks_run_id: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_run_id: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionRunId" + ) """The run id of the model.""" - databricks_run_name: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_run_name: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionRunName" + ) """The run name of the model.""" - databricks_run_start_time: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_run_start_time: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionRunStartTime") + ) """The run start time of the model.""" - databricks_run_end_time: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_run_end_time: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionRunEndTime") + ) """The run end time of the model.""" - databricks_status: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_status: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionStatus" + ) """The status of the model.""" - databricks_aliases: Union[List[str], None, UnsetType] = UNSET + databricks_ai_model_version_aliases: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionAliases") + ) """The aliases of the model.""" - databricks_dataset_count: Union[int, None, UnsetType] = UNSET + databricks_ai_model_version_dataset_count: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionDatasetCount") + ) """Number of datasets.""" - databricks_source: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_source: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="databricksAIModelVersionSource" + ) """Source artifact link for the model.""" - databricks_artifact_uri: Union[str, None, UnsetType] = UNSET + databricks_ai_model_version_artifact_uri: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionArtifactUri") + ) """Artifact uri for the model.""" - databricks_metrics: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + databricks_ai_model_version_metrics: Union[ + List[Dict[str, Any]], None, UnsetType + ] = msgspec.field(default=UNSET, name="databricksAIModelVersionMetrics") """Metrics for an individual experiment.""" - databricks_params: Union[Dict[str, str], None, UnsetType] = UNSET + databricks_ai_model_version_params: Union[Dict[str, str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="databricksAIModelVersionParams") + ) """Params with key mapped to value for an individual experiment.""" def __post_init__(self) -> None: @@ -244,10 +271,10 @@ class RelatedDatabricksNotebook(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksNotebook" so it serializes correctly - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_notebook_path: Union[str, None, UnsetType] = UNSET """Path of the notebook.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_notebook_workspace_id: Union[str, None, UnsetType] = UNSET """Workspace Id of the notebook.""" def __post_init__(self) -> None: @@ -282,22 +309,22 @@ class RelatedDatabricksDashboard(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksDashboard" so it serializes correctly - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_dashboard_path: Union[str, None, UnsetType] = UNSET """Workspace path of the dashboard asset, including its file name. The parent folder path can be derived by dropping the last path segment.""" - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_dashboard_workspace_id: Union[str, None, UnsetType] = UNSET """Identifier of the workspace containing the dashboard.""" - databricks_warehouse_id: Union[str, None, UnsetType] = UNSET + databricks_dashboard_warehouse_id: Union[str, None, UnsetType] = UNSET """Identifier of the SQL warehouse backing the dashboard.""" - databricks_etag: Union[str, None, UnsetType] = UNSET + databricks_dashboard_etag: Union[str, None, UnsetType] = UNSET """Entity tag used as a change token for the dashboard.""" - databricks_is_genie_space_enabled: Union[bool, None, UnsetType] = UNSET + databricks_dashboard_is_genie_space_enabled: Union[bool, None, UnsetType] = UNSET """Whether a Genie space is enabled for the dashboard.""" - databricks_lifecycle_state: Union[str, None, UnsetType] = UNSET + databricks_dashboard_lifecycle_state: Union[str, None, UnsetType] = UNSET """Lifecycle state of the dashboard.""" def __post_init__(self) -> None: @@ -316,16 +343,16 @@ class RelatedDatabricksGenieAgent(RelatedDatabricks): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DatabricksGenieAgent" so it serializes correctly - databricks_workspace_id: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_workspace_id: Union[str, None, UnsetType] = UNSET """Identifier of the workspace containing the Genie space.""" - databricks_warehouse_id: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_warehouse_id: Union[str, None, UnsetType] = UNSET """Identifier of the SQL warehouse backing the Genie space.""" - databricks_parent_path: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_parent_path: Union[str, None, UnsetType] = UNSET """Workspace folder path containing the Genie space. It is descriptive only and creates no containment or hierarchy edge.""" - databricks_etag: Union[str, None, UnsetType] = UNSET + databricks_genie_agent_etag: Union[str, None, UnsetType] = UNSET """Entity tag used as a change token for the Genie space. It is populated only by an enabled serialized-detail read, so it is null when that read is disabled, denied, or omitted by the source.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/databricks_volume.py b/pyatlan_v9/model/assets/databricks_volume.py index 24ac343f2..a107fba14 100644 --- a/pyatlan_v9/model/assets/databricks_volume.py +++ b/pyatlan_v9/model/assets/databricks_volume.py @@ -80,9 +80,9 @@ class DatabricksVolume(Asset): Represents a Databricks Volume, a storage object for managing and accessing data files within Databricks workspaces. """ - DATABRICKS_OWNER: ClassVar[Any] = None - DATABRICKS_EXTERNAL_LOCATION: ClassVar[Any] = None - DATABRICKS_TYPE: ClassVar[Any] = None + DATABRICKS_VOLUME_OWNER: ClassVar[Any] = None + DATABRICKS_VOLUME_EXTERNAL_LOCATION: ClassVar[Any] = None + DATABRICKS_VOLUME_TYPE: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -163,13 +163,13 @@ class DatabricksVolume(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_owner: Union[str, None, UnsetType] = UNSET + databricks_volume_owner: Union[str, None, UnsetType] = UNSET """User or group (principal) currently owning the volume.""" - databricks_external_location: Union[str, None, UnsetType] = UNSET + databricks_volume_external_location: Union[str, None, UnsetType] = UNSET """The storage location where the volume is created.""" - databricks_type: Union[str, None, UnsetType] = UNSET + databricks_volume_type: Union[str, None, UnsetType] = UNSET """Type of the volume.""" query_count: Union[int, None, UnsetType] = UNSET @@ -573,13 +573,13 @@ def from_json( class DatabricksVolumeAttributes(AssetAttributes): """DatabricksVolume-specific attributes for nested API format.""" - databricks_owner: Union[str, None, UnsetType] = UNSET + databricks_volume_owner: Union[str, None, UnsetType] = UNSET """User or group (principal) currently owning the volume.""" - databricks_external_location: Union[str, None, UnsetType] = UNSET + databricks_volume_external_location: Union[str, None, UnsetType] = UNSET """The storage location where the volume is created.""" - databricks_type: Union[str, None, UnsetType] = UNSET + databricks_volume_type: Union[str, None, UnsetType] = UNSET """Type of the volume.""" query_count: Union[int, None, UnsetType] = UNSET @@ -922,9 +922,9 @@ def _populate_databricks_volume_attrs( ) -> None: """Populate DatabricksVolume-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_owner = obj.databricks_owner - attrs.databricks_external_location = obj.databricks_external_location - attrs.databricks_type = obj.databricks_type + attrs.databricks_volume_owner = obj.databricks_volume_owner + attrs.databricks_volume_external_location = obj.databricks_volume_external_location + attrs.databricks_volume_type = obj.databricks_volume_type attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -968,9 +968,11 @@ def _populate_databricks_volume_attrs( def _extract_databricks_volume_attrs(attrs: DatabricksVolumeAttributes) -> dict: """Extract all DatabricksVolume attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_owner"] = attrs.databricks_owner - result["databricks_external_location"] = attrs.databricks_external_location - result["databricks_type"] = attrs.databricks_type + result["databricks_volume_owner"] = attrs.databricks_volume_owner + result["databricks_volume_external_location"] = ( + attrs.databricks_volume_external_location + ) + result["databricks_volume_type"] = attrs.databricks_volume_type result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1133,11 +1135,15 @@ def _databricks_volume_from_nested_bytes(data: bytes, serde: Serde) -> Databrick RelationField, ) -DatabricksVolume.DATABRICKS_OWNER = KeywordField("databricksOwner", "databricksOwner") -DatabricksVolume.DATABRICKS_EXTERNAL_LOCATION = KeywordField( - "databricksExternalLocation", "databricksExternalLocation" +DatabricksVolume.DATABRICKS_VOLUME_OWNER = KeywordField( + "databricksVolumeOwner", "databricksVolumeOwner" +) +DatabricksVolume.DATABRICKS_VOLUME_EXTERNAL_LOCATION = KeywordField( + "databricksVolumeExternalLocation", "databricksVolumeExternalLocation" +) +DatabricksVolume.DATABRICKS_VOLUME_TYPE = KeywordField( + "databricksVolumeType", "databricksVolumeType" ) -DatabricksVolume.DATABRICKS_TYPE = KeywordField("databricksType", "databricksType") DatabricksVolume.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksVolume.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") DatabricksVolume.QUERY_USER_MAP = KeywordField("queryUserMap", "queryUserMap") diff --git a/pyatlan_v9/model/assets/databricks_volume_path.py b/pyatlan_v9/model/assets/databricks_volume_path.py index caa11a0ef..ef039985e 100644 --- a/pyatlan_v9/model/assets/databricks_volume_path.py +++ b/pyatlan_v9/model/assets/databricks_volume_path.py @@ -79,9 +79,9 @@ class DatabricksVolumePath(Asset): Represents a path within a Databricks Volume, providing access to specific data files or directories. """ - DATABRICKS_PATH: ClassVar[Any] = None - DATABRICKS_VOLUME_QUALIFIED_NAME: ClassVar[Any] = None - DATABRICKS_VOLUME_NAME: ClassVar[Any] = None + DATABRICKS_VOLUME_PATH_PATH: ClassVar[Any] = None + DATABRICKS_VOLUME_PATH_VOLUME_QUALIFIED_NAME: ClassVar[Any] = None + DATABRICKS_VOLUME_PATH_VOLUME_NAME: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -161,13 +161,13 @@ class DatabricksVolumePath(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_volume_path_path: Union[str, None, UnsetType] = UNSET """Path of data on the volume.""" - databricks_volume_qualified_name: Union[str, None, UnsetType] = UNSET + databricks_volume_path_volume_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the parent volume.""" - databricks_volume_name: Union[str, None, UnsetType] = UNSET + databricks_volume_path_volume_name: Union[str, None, UnsetType] = UNSET """Name of the parent volume.""" query_count: Union[int, None, UnsetType] = UNSET @@ -471,12 +471,6 @@ def validate(self, for_creation: bool = False) -> None: errors.append("connection_qualified_name is required for creation") if self.databricks_volume is UNSET: errors.append("databricks_volume is required for creation") - if self.databricks_volume_name is UNSET: - errors.append("databricks_volume_name is required for creation") - if self.databricks_volume_qualified_name is UNSET: - errors.append( - "databricks_volume_qualified_name is required for creation" - ) if self.schema_name is UNSET: errors.append("schema_name is required for creation") if self.schema_qualified_name is UNSET: @@ -574,13 +568,13 @@ def from_json( class DatabricksVolumePathAttributes(AssetAttributes): """DatabricksVolumePath-specific attributes for nested API format.""" - databricks_path: Union[str, None, UnsetType] = UNSET + databricks_volume_path_path: Union[str, None, UnsetType] = UNSET """Path of data on the volume.""" - databricks_volume_qualified_name: Union[str, None, UnsetType] = UNSET + databricks_volume_path_volume_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the parent volume.""" - databricks_volume_name: Union[str, None, UnsetType] = UNSET + databricks_volume_path_volume_name: Union[str, None, UnsetType] = UNSET """Name of the parent volume.""" query_count: Union[int, None, UnsetType] = UNSET @@ -917,9 +911,11 @@ def _populate_databricks_volume_path_attrs( ) -> None: """Populate DatabricksVolumePath-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.databricks_path = obj.databricks_path - attrs.databricks_volume_qualified_name = obj.databricks_volume_qualified_name - attrs.databricks_volume_name = obj.databricks_volume_name + attrs.databricks_volume_path_path = obj.databricks_volume_path_path + attrs.databricks_volume_path_volume_qualified_name = ( + obj.databricks_volume_path_volume_qualified_name + ) + attrs.databricks_volume_path_volume_name = obj.databricks_volume_path_volume_name attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -965,9 +961,13 @@ def _extract_databricks_volume_path_attrs( ) -> dict: """Extract all DatabricksVolumePath attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["databricks_path"] = attrs.databricks_path - result["databricks_volume_qualified_name"] = attrs.databricks_volume_qualified_name - result["databricks_volume_name"] = attrs.databricks_volume_name + result["databricks_volume_path_path"] = attrs.databricks_volume_path_path + result["databricks_volume_path_volume_qualified_name"] = ( + attrs.databricks_volume_path_volume_qualified_name + ) + result["databricks_volume_path_volume_name"] = ( + attrs.databricks_volume_path_volume_name + ) result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1134,12 +1134,14 @@ def _databricks_volume_path_from_nested_bytes( RelationField, ) -DatabricksVolumePath.DATABRICKS_PATH = KeywordField("databricksPath", "databricksPath") -DatabricksVolumePath.DATABRICKS_VOLUME_QUALIFIED_NAME = KeywordField( - "databricksVolumeQualifiedName", "databricksVolumeQualifiedName" +DatabricksVolumePath.DATABRICKS_VOLUME_PATH_PATH = KeywordField( + "databricksVolumePathPath", "databricksVolumePathPath" +) +DatabricksVolumePath.DATABRICKS_VOLUME_PATH_VOLUME_QUALIFIED_NAME = KeywordField( + "databricksVolumePathVolumeQualifiedName", "databricksVolumePathVolumeQualifiedName" ) -DatabricksVolumePath.DATABRICKS_VOLUME_NAME = KeywordField( - "databricksVolumeName", "databricksVolumeName" +DatabricksVolumePath.DATABRICKS_VOLUME_PATH_VOLUME_NAME = KeywordField( + "databricksVolumePathVolumeName", "databricksVolumePathVolumeName" ) DatabricksVolumePath.QUERY_COUNT = NumericField("queryCount", "queryCount") DatabricksVolumePath.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") diff --git a/pyatlan_v9/model/assets/dynamo_db_related.py b/pyatlan_v9/model/assets/dynamo_db_related.py index e1a44d3fe..6f238232a 100644 --- a/pyatlan_v9/model/assets/dynamo_db_related.py +++ b/pyatlan_v9/model/assets/dynamo_db_related.py @@ -96,13 +96,13 @@ class RelatedDynamoDBTable(RelatedDynamoDB): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DynamoDBTable" so it serializes correctly - dynamo_dbgsi_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBGSICount" + dynamo_db_table_gsi_count: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="dynamoDBTableGSICount" ) """Represents the number of global secondary indexes on the table.""" - dynamo_dblsi_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBLSICount" + dynamo_db_table_lsi_count: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="dynamoDBTableLSICount" ) """Represents the number of local secondary indexes on the table.""" @@ -122,8 +122,8 @@ class RelatedDynamoDBSecondaryIndex(RelatedDynamoDB): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "DynamoDBSecondaryIndex" so it serializes correctly - dynamo_db_projection_type: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBProjectionType" + dynamo_db_secondary_index_projection_type: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="dynamoDBSecondaryIndexProjectionType") ) """Specifies attributes that are projected from the DynamoDB table into the index.""" diff --git a/pyatlan_v9/model/assets/dynamo_db_secondary_index.py b/pyatlan_v9/model/assets/dynamo_db_secondary_index.py index 614366da2..041487f03 100644 --- a/pyatlan_v9/model/assets/dynamo_db_secondary_index.py +++ b/pyatlan_v9/model/assets/dynamo_db_secondary_index.py @@ -85,7 +85,7 @@ class DynamoDBSecondaryIndex(Asset): Represents a DynamoDB secondary index asset in Atlan. """ - DYNAMO_DB_PROJECTION_TYPE: ClassVar[Any] = None + DYNAMO_DB_SECONDARY_INDEX_PROJECTION_TYPE: ClassVar[Any] = None DYNAMO_DB_STATUS: ClassVar[Any] = None DYNAMO_DB_PARTITION_KEY: ClassVar[Any] = None DYNAMO_DB_SORT_KEY: ClassVar[Any] = None @@ -203,8 +203,8 @@ class DynamoDBSecondaryIndex(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - dynamo_db_projection_type: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBProjectionType" + dynamo_db_secondary_index_projection_type: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="dynamoDBSecondaryIndexProjectionType") ) """Specifies attributes that are projected from the DynamoDB table into the index.""" @@ -712,8 +712,8 @@ def from_json( class DynamoDBSecondaryIndexAttributes(AssetAttributes): """DynamoDBSecondaryIndex-specific attributes for nested API format.""" - dynamo_db_projection_type: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBProjectionType" + dynamo_db_secondary_index_projection_type: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="dynamoDBSecondaryIndexProjectionType") ) """Specifies attributes that are projected from the DynamoDB table into the index.""" @@ -1182,7 +1182,9 @@ def _populate_dynamo_db_secondary_index_attrs( ) -> None: """Populate DynamoDBSecondaryIndex-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.dynamo_db_projection_type = obj.dynamo_db_projection_type + attrs.dynamo_db_secondary_index_projection_type = ( + obj.dynamo_db_secondary_index_projection_type + ) attrs.dynamo_db_status = obj.dynamo_db_status attrs.dynamo_db_partition_key = obj.dynamo_db_partition_key attrs.dynamo_db_sort_key = obj.dynamo_db_sort_key @@ -1261,7 +1263,9 @@ def _extract_dynamo_db_secondary_index_attrs( ) -> dict: """Extract all DynamoDBSecondaryIndex attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["dynamo_db_projection_type"] = attrs.dynamo_db_projection_type + result["dynamo_db_secondary_index_projection_type"] = ( + attrs.dynamo_db_secondary_index_projection_type + ) result["dynamo_db_status"] = attrs.dynamo_db_status result["dynamo_db_partition_key"] = attrs.dynamo_db_partition_key result["dynamo_db_sort_key"] = attrs.dynamo_db_sort_key @@ -1461,8 +1465,8 @@ def _dynamo_db_secondary_index_from_nested_bytes( RelationField, ) -DynamoDBSecondaryIndex.DYNAMO_DB_PROJECTION_TYPE = KeywordField( - "dynamoDBProjectionType", "dynamoDBProjectionType" +DynamoDBSecondaryIndex.DYNAMO_DB_SECONDARY_INDEX_PROJECTION_TYPE = KeywordField( + "dynamoDBSecondaryIndexProjectionType", "dynamoDBSecondaryIndexProjectionType" ) DynamoDBSecondaryIndex.DYNAMO_DB_STATUS = KeywordField( "dynamoDBStatus", "dynamoDBStatus" diff --git a/pyatlan_v9/model/assets/dynamo_db_table.py b/pyatlan_v9/model/assets/dynamo_db_table.py index b384c4a07..ff577ac7d 100644 --- a/pyatlan_v9/model/assets/dynamo_db_table.py +++ b/pyatlan_v9/model/assets/dynamo_db_table.py @@ -90,8 +90,8 @@ class DynamoDBTable(Asset): Represents a DynamoDB table asset in Atlan. """ - DYNAMO_DBGSI_COUNT: ClassVar[Any] = None - DYNAMO_DBLSI_COUNT: ClassVar[Any] = None + DYNAMO_DB_TABLE_GSI_COUNT: ClassVar[Any] = None + DYNAMO_DB_TABLE_LSI_COUNT: ClassVar[Any] = None DYNAMO_DB_STATUS: ClassVar[Any] = None DYNAMO_DB_PARTITION_KEY: ClassVar[Any] = None DYNAMO_DB_SORT_KEY: ClassVar[Any] = None @@ -212,13 +212,13 @@ class DynamoDBTable(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - dynamo_dbgsi_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBGSICount" + dynamo_db_table_gsi_count: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="dynamoDBTableGSICount" ) """Represents the number of global secondary indexes on the table.""" - dynamo_dblsi_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBLSICount" + dynamo_db_table_lsi_count: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="dynamoDBTableLSICount" ) """Represents the number of local secondary indexes on the table.""" @@ -737,13 +737,13 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> DynamoDBTab class DynamoDBTableAttributes(AssetAttributes): """DynamoDBTable-specific attributes for nested API format.""" - dynamo_dbgsi_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBGSICount" + dynamo_db_table_gsi_count: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="dynamoDBTableGSICount" ) """Represents the number of global secondary indexes on the table.""" - dynamo_dblsi_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="dynamoDBLSICount" + dynamo_db_table_lsi_count: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="dynamoDBTableLSICount" ) """Represents the number of local secondary indexes on the table.""" @@ -1230,8 +1230,8 @@ def _populate_dynamo_db_table_attrs( ) -> None: """Populate DynamoDBTable-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.dynamo_dbgsi_count = obj.dynamo_dbgsi_count - attrs.dynamo_dblsi_count = obj.dynamo_dblsi_count + attrs.dynamo_db_table_gsi_count = obj.dynamo_db_table_gsi_count + attrs.dynamo_db_table_lsi_count = obj.dynamo_db_table_lsi_count attrs.dynamo_db_status = obj.dynamo_db_status attrs.dynamo_db_partition_key = obj.dynamo_db_partition_key attrs.dynamo_db_sort_key = obj.dynamo_db_sort_key @@ -1308,8 +1308,8 @@ def _populate_dynamo_db_table_attrs( def _extract_dynamo_db_table_attrs(attrs: DynamoDBTableAttributes) -> dict: """Extract all DynamoDBTable attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["dynamo_dbgsi_count"] = attrs.dynamo_dbgsi_count - result["dynamo_dblsi_count"] = attrs.dynamo_dblsi_count + result["dynamo_db_table_gsi_count"] = attrs.dynamo_db_table_gsi_count + result["dynamo_db_table_lsi_count"] = attrs.dynamo_db_table_lsi_count result["dynamo_db_status"] = attrs.dynamo_db_status result["dynamo_db_partition_key"] = attrs.dynamo_db_partition_key result["dynamo_db_sort_key"] = attrs.dynamo_db_sort_key @@ -1503,8 +1503,12 @@ def _dynamo_db_table_from_nested_bytes(data: bytes, serde: Serde) -> DynamoDBTab RelationField, ) -DynamoDBTable.DYNAMO_DBGSI_COUNT = NumericField("dynamoDBGSICount", "dynamoDBGSICount") -DynamoDBTable.DYNAMO_DBLSI_COUNT = NumericField("dynamoDBLSICount", "dynamoDBLSICount") +DynamoDBTable.DYNAMO_DB_TABLE_GSI_COUNT = NumericField( + "dynamoDBTableGSICount", "dynamoDBTableGSICount" +) +DynamoDBTable.DYNAMO_DB_TABLE_LSI_COUNT = NumericField( + "dynamoDBTableLSICount", "dynamoDBTableLSICount" +) DynamoDBTable.DYNAMO_DB_STATUS = KeywordField("dynamoDBStatus", "dynamoDBStatus") DynamoDBTable.DYNAMO_DB_PARTITION_KEY = KeywordField( "dynamoDBPartitionKey", "dynamoDBPartitionKey" diff --git a/pyatlan_v9/model/assets/entity.py b/pyatlan_v9/model/assets/entity.py index c37568320..37887fc44 100644 --- a/pyatlan_v9/model/assets/entity.py +++ b/pyatlan_v9/model/assets/entity.py @@ -18,8 +18,6 @@ import msgspec from msgspec import UNSET, UnsetType -from .related_entity import SaveSemantic - class AtlasClassification( msgspec.Struct, kw_only=True, omit_defaults=True, rename="camel" @@ -31,8 +29,8 @@ class AtlasClassification( propagation settings and validity periods. """ - type_name: Union[Any, UnsetType] = UNSET - """The name of the classification type (str or AtlanTagName after translation).""" + type_name: Union[str, UnsetType] = UNSET + """The name of the classification type.""" entity_guid: Union[str, UnsetType] = UNSET """The GUID of the entity this classification is assigned to.""" @@ -52,18 +50,6 @@ class AtlasClassification( attributes: Union[Dict[str, Any], UnsetType] = UNSET """Custom attributes for this classification.""" - source_tag_attachments: Union[List[Any], None, UnsetType] = UNSET - """Source tag attachments extracted by the AtlanTagName translator.""" - - tag_id: Union[str, None, UnsetType] = UNSET - """Original tag ID before translation to a human-readable name.""" - - restrict_propagation_through_lineage: Union[bool, None, UnsetType] = UNSET - """Whether propagation through lineage is restricted.""" - - restrict_propagation_through_hierarchy: Union[bool, None, UnsetType] = UNSET - """Whether propagation through hierarchy is restricted.""" - class TermAssignment(msgspec.Struct, kw_only=True, omit_defaults=True, rename="camel"): """ @@ -198,18 +184,3 @@ class Entity(msgspec.Struct, kw_only=True, omit_defaults=True, rename="camel"): home_id: Union[str, UnsetType] = UNSET """Home identifier for distributed Atlas systems.""" - - # Lineage-specific fields (only populated in lineage API responses) - depth: Union[int, None, UnsetType] = UNSET - """Depth of this asset within lineage. Only available in assets retrieved via lineage.""" - - immediate_upstream: Union[List[Any], None, UnsetType] = UNSET - """Assets immediately upstream of this asset within lineage.""" - - immediate_downstream: Union[List[Any], None, UnsetType] = UNSET - """Assets immediately downstream of this asset within lineage.""" - - # Internal SDK fields (not sent to API) - semantic: Union[SaveSemantic, None, UnsetType] = UNSET - """Save semantic for relationship operations (REPLACE, APPEND, REMOVE). - Not serialized to JSON - used internally by ref_by_guid/ref_by_qualified_name.""" diff --git a/pyatlan_v9/model/assets/fabric_related.py b/pyatlan_v9/model/assets/fabric_related.py index c4306f8b3..3b817be2f 100644 --- a/pyatlan_v9/model/assets/fabric_related.py +++ b/pyatlan_v9/model/assets/fabric_related.py @@ -29,6 +29,7 @@ "RelatedFabricSemanticModel", "RelatedFabricSemanticModelTable", "RelatedFabricSemanticModelTableColumn", + "RelatedFabricSemanticModelMeasure", "RelatedFabricPage", "RelatedFabricActivity", "RelatedFabricVisual", @@ -219,6 +220,46 @@ def __post_init__(self) -> None: self.type_name = "FabricSemanticModelTableColumn" +class RelatedFabricSemanticModelMeasure(RelatedFabric): + """ + Related entity reference for FabricSemanticModelMeasure assets. + + Extends RelatedFabric with FabricSemanticModelMeasure-specific attributes. + """ + + # type_name inherited from parent with default=UNSET + # __post_init__ sets it to "FabricSemanticModelMeasure" so it serializes correctly + + fabric_semantic_model_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the Fabric semantic model that contains this asset.""" + + fabric_semantic_model_table_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the Fabric semantic model table that contains this asset.""" + + fabric_semantic_model_table_name: Union[str, None, UnsetType] = UNSET + """Name of the Fabric semantic model table that contains this asset.""" + + fabric_measure_expression: Union[str, None, UnsetType] = UNSET + """DAX expression for this measure.""" + + fabric_format_string: Union[str, None, UnsetType] = UNSET + """Format string applied to the values of this measure.""" + + fabric_display_folder: Union[str, None, UnsetType] = UNSET + """Display folder in which this measure is grouped within its table.""" + + fabric_is_hidden: Union[bool, None, UnsetType] = UNSET + """Whether this measure is hidden in the semantic model (true) or visible (false).""" + + fabric_is_external_measure: Union[bool, None, UnsetType] = UNSET + """Whether this measure is an external measure (true) or defined within the semantic model (false).""" + + def __post_init__(self) -> None: + RelatedReferenceable.__post_init__(self) + if self.type_name is UNSET: + self.type_name = "FabricSemanticModelMeasure" + + class RelatedFabricPage(RelatedFabric): """ Related entity reference for FabricPage assets. diff --git a/pyatlan_v9/model/assets/fabric_semantic_model_measure.py b/pyatlan_v9/model/assets/fabric_semantic_model_measure.py new file mode 100644 index 000000000..b59fdf0ce --- /dev/null +++ b/pyatlan_v9/model/assets/fabric_semantic_model_measure.py @@ -0,0 +1,769 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# ruff: noqa: ARG002 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +FabricSemanticModelMeasure asset model with flattened inheritance. + +This module provides: +- FabricSemanticModelMeasure: Flat asset class (easy to use) +- FabricSemanticModelMeasureAttributes: Nested attributes struct (extends AssetAttributes) +- FabricSemanticModelMeasureNested: Nested API format struct +""" + +from __future__ import annotations + +import re +from typing import Any, ClassVar, Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .airflow_related import RelatedAirflowTask +from .anomalo_related import RelatedAnomaloCheck +from .app_related import RelatedApplication, RelatedApplicationField +from .asset import ( + _ASSET_REL_FIELDS, + Asset, + AssetAttributes, + AssetNested, + AssetRelationshipAttributes, + _extract_asset_attrs, + _populate_asset_attrs, +) +from .context_related import RelatedContextRepository +from .data_contract_related import RelatedDataContract +from .data_mesh_related import RelatedDataProduct +from .data_quality_related import RelatedDataQualityRule, RelatedMetric +from .gcp_dataplex_related import RelatedGCPDataplexAspectType +from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile +from .model_related import RelatedModelAttribute, RelatedModelEntity +from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor +from .partial_related import RelatedPartialField, RelatedPartialObject +from .process_related import RelatedProcess +from .referenceable_related import RelatedReferenceable +from .resource_related import RelatedFile, RelatedLink, RelatedReadme +from .schema_registry_related import RelatedSchemaRegistrySubject +from .soda_related import RelatedSodaCheck +from .spark_related import RelatedSparkJob +from pyatlan_v9.model.conversion_utils import categorize_relationships, merge_relationships +from pyatlan_v9.model.serde import Serde, get_serde +from pyatlan_v9.model.transform import register_asset + +from .fabric_related import RelatedFabricSemanticModelMeasure, RelatedFabricSemanticModelTable, RelatedFabricSemanticModelTableColumn + +# ============================================================================= +# FLAT ASSET CLASS +# ============================================================================= + +@register_asset +class FabricSemanticModelMeasure(Asset): + """ + Instance of a Microsoft Fabric semantic model measure in Atlan. Measures define DAX calculations within a semantic model table. + """ + + FABRIC_SEMANTIC_MODEL_QUALIFIED_NAME: ClassVar[Any] = None + FABRIC_SEMANTIC_MODEL_TABLE_QUALIFIED_NAME: ClassVar[Any] = None + FABRIC_SEMANTIC_MODEL_TABLE_NAME: ClassVar[Any] = None + FABRIC_MEASURE_EXPRESSION: ClassVar[Any] = None + FABRIC_FORMAT_STRING: ClassVar[Any] = None + FABRIC_DISPLAY_FOLDER: ClassVar[Any] = None + FABRIC_IS_HIDDEN: ClassVar[Any] = None + FABRIC_IS_EXTERNAL_MEASURE: ClassVar[Any] = None + FABRIC_COLUMN_COUNT: ClassVar[Any] = None + FABRIC_DATA_TYPE: ClassVar[Any] = None + FABRIC_ORDINAL: ClassVar[Any] = None + CATALOG_DATASET_GUID: ClassVar[Any] = None + INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None + OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None + ANOMALO_CHECKS: ClassVar[Any] = None + APPLICATION: ClassVar[Any] = None + APPLICATION_FIELD: ClassVar[Any] = None + CONTEXT_REPOSITORIES: ClassVar[Any] = None + DATA_CONTRACT_LATEST: ClassVar[Any] = None + DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None + OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None + MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None + METRICS: ClassVar[Any] = None + DQ_BASE_DATASET_RULES: ClassVar[Any] = None + DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None + FABRIC_SEMANTIC_MODEL_TABLE: ClassVar[Any] = None + FABRIC_SEMANTIC_MODEL_TABLE_COLUMNS: ClassVar[Any] = None + GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None + MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None + MC_MONITORS: ClassVar[Any] = None + MC_INCIDENTS: ClassVar[Any] = None + PARTIAL_CHILD_FIELDS: ClassVar[Any] = None + PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None + INPUT_TO_PROCESSES: ClassVar[Any] = None + OUTPUT_FROM_PROCESSES: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None + FILES: ClassVar[Any] = None + LINKS: ClassVar[Any] = None + README: ClassVar[Any] = None + SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None + SODA_CHECKS: ClassVar[Any] = None + INPUT_TO_SPARK_JOBS: ClassVar[Any] = None + OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None + + fabric_semantic_model_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the Fabric semantic model that contains this asset.""" + + fabric_semantic_model_table_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the Fabric semantic model table that contains this asset.""" + + fabric_semantic_model_table_name: Union[str, None, UnsetType] = UNSET + """Name of the Fabric semantic model table that contains this asset.""" + + fabric_measure_expression: Union[str, None, UnsetType] = UNSET + """DAX expression for this measure.""" + + fabric_format_string: Union[str, None, UnsetType] = UNSET + """Format string applied to the values of this measure.""" + + fabric_display_folder: Union[str, None, UnsetType] = UNSET + """Display folder in which this measure is grouped within its table.""" + + fabric_is_hidden: Union[bool, None, UnsetType] = UNSET + """Whether this measure is hidden in the semantic model (true) or visible (false).""" + + fabric_is_external_measure: Union[bool, None, UnsetType] = UNSET + """Whether this measure is an external measure (true) or defined within the semantic model (false).""" + + fabric_column_count: Union[int, None, UnsetType] = UNSET + """Number of columns in this asset.""" + + fabric_data_type: Union[str, None, UnsetType] = UNSET + """Data type of this asset.""" + + fabric_ordinal: Union[int, None, UnsetType] = UNSET + """Order/position of this asset within its parent.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + fabric_semantic_model_table: Union[RelatedFabricSemanticModelTable, None, UnsetType] = UNSET + """Semantic model table containing the measure.""" + + fabric_semantic_model_table_columns: Union[List[RelatedFabricSemanticModelTableColumn], None, UnsetType] = UNSET + """Semantic model table columns referenced by the DAX expression of this measure.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + def __post_init__(self) -> None: + self.type_name = "FabricSemanticModelMeasure" + + # ========================================================================= + # SDK Methods + # ========================================================================= + + _QUALIFIED_NAME_PATTERN: ClassVar[re.Pattern] = re.compile( + r"^.+/[^/]+/[^/]+/[^/]+/[^/]+$" + ) + + def validate(self, for_creation: bool = False) -> None: + """ + Dry-run validation of this FabricSemanticModelMeasure instance. + + Checks that required fields (type_name, name, qualified_name) are set. + When ``for_creation=True``, also checks hierarchy-specific fields + (parent references, denormalized attributes) needed to create this asset. + + This is purely opt-in and is NOT called by any serde path — only by + explicit user invocation (e.g., validating JSONL before sending to Atlan). + + Args: + for_creation: If True, also validate fields required for asset creation. + + Raises: + ValueError: If any required fields are missing or invalid. + """ + errors: list[str] = [] + if self.type_name is UNSET: + errors.append("type_name is required") + if self.name is UNSET: + errors.append("name is required") + if self.qualified_name is UNSET or self.qualified_name is None: + errors.append("qualified_name is required") + elif not self._QUALIFIED_NAME_PATTERN.match(self.qualified_name): + errors.append( + f"qualified_name '{self.qualified_name}' does not match expected " + f"pattern: {self._QUALIFIED_NAME_PATTERN.pattern}" + ) + if for_creation: + if self.connection_qualified_name is UNSET: + errors.append("connection_qualified_name is required for creation") + if self.fabric_semantic_model_table is UNSET: + errors.append("fabric_semantic_model_table is required for creation") + if self.fabric_semantic_model_table_name is UNSET: + errors.append("fabric_semantic_model_table_name is required for creation") + if self.fabric_semantic_model_table_qualified_name is UNSET: + errors.append("fabric_semantic_model_table_qualified_name is required for creation") + if self.fabric_semantic_model_qualified_name is UNSET: + errors.append("fabric_semantic_model_qualified_name is required for creation") + if errors: + raise ValueError(f"FabricSemanticModelMeasure validation failed: {errors}") + + def minimize(self) -> "FabricSemanticModelMeasure": + """ + Return a minimal copy of this FabricSemanticModelMeasure with only updater-required fields. + + Calls :meth:`validate` first to ensure the instance is valid, then + returns a new FabricSemanticModelMeasure with only the fields needed for an update + (qualified_name, name, and any type-specific additional fields). + + Returns: + A new FabricSemanticModelMeasure instance with only the minimum required fields. + """ + self.validate() + return FabricSemanticModelMeasure(qualified_name=self.qualified_name, name=self.name) + + def relate(self) -> "RelatedFabricSemanticModelMeasure": + """ + Create a :class:`RelatedFabricSemanticModelMeasure` reference from this instance. + + Returns a lightweight reference suitable for use in relationship + attributes. Prefers ``guid`` if set, otherwise falls back to + ``qualified_name``. + + Returns: + A RelatedFabricSemanticModelMeasure reference to this asset. + """ + if self.guid is not UNSET: + return RelatedFabricSemanticModelMeasure(guid=self.guid) + return RelatedFabricSemanticModelMeasure(qualified_name=self.qualified_name) + + # ========================================================================= + # Optimized Serialization Methods (override Asset base class) + # ========================================================================= + + def to_json(self, nested: bool = True, serde: Serde | None = None) -> str: + """ + Convert to JSON string using optimized nested struct serialization. + + Args: + nested: If True (default), use nested API format. If False, use flat format. + serde: Optional Serde instance for encoder reuse. Uses shared singleton if None. + + Returns: + JSON string representation + """ + if serde is None: + serde = get_serde() + if nested: + return self.to_nested_bytes(serde).decode("utf-8") + else: + return serde.encode(self).decode("utf-8") + + def to_nested_bytes(self, serde: Serde | None = None) -> bytes: + """Serialize to Atlas nested-format JSON bytes (pure msgspec, no dict intermediate).""" + if serde is None: + serde = get_serde() + return _fabric_semantic_model_measure_to_nested_bytes(self, serde) + + @staticmethod + def from_json(json_data: str | bytes, serde: Serde | None = None) -> FabricSemanticModelMeasure: + """ + Create from JSON string or bytes using optimized nested struct deserialization. + + Args: + json_data: JSON string or bytes to deserialize + serde: Optional Serde instance for decoder reuse. Uses shared singleton if None. + + Returns: + FabricSemanticModelMeasure instance + """ + if isinstance(json_data, str): + json_data = json_data.encode("utf-8") + if serde is None: + serde = get_serde() + return _fabric_semantic_model_measure_from_nested_bytes(json_data, serde) + + +# ============================================================================= +# NESTED FORMAT CLASSES +# ============================================================================= + +class FabricSemanticModelMeasureAttributes(AssetAttributes): + """FabricSemanticModelMeasure-specific attributes for nested API format.""" + + fabric_semantic_model_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the Fabric semantic model that contains this asset.""" + + fabric_semantic_model_table_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the Fabric semantic model table that contains this asset.""" + + fabric_semantic_model_table_name: Union[str, None, UnsetType] = UNSET + """Name of the Fabric semantic model table that contains this asset.""" + + fabric_measure_expression: Union[str, None, UnsetType] = UNSET + """DAX expression for this measure.""" + + fabric_format_string: Union[str, None, UnsetType] = UNSET + """Format string applied to the values of this measure.""" + + fabric_display_folder: Union[str, None, UnsetType] = UNSET + """Display folder in which this measure is grouped within its table.""" + + fabric_is_hidden: Union[bool, None, UnsetType] = UNSET + """Whether this measure is hidden in the semantic model (true) or visible (false).""" + + fabric_is_external_measure: Union[bool, None, UnsetType] = UNSET + """Whether this measure is an external measure (true) or defined within the semantic model (false).""" + + fabric_column_count: Union[int, None, UnsetType] = UNSET + """Number of columns in this asset.""" + + fabric_data_type: Union[str, None, UnsetType] = UNSET + """Data type of this asset.""" + + fabric_ordinal: Union[int, None, UnsetType] = UNSET + """Order/position of this asset within its parent.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + +class FabricSemanticModelMeasureRelationshipAttributes(AssetRelationshipAttributes): + """FabricSemanticModelMeasure-specific relationship attributes for nested API format.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + fabric_semantic_model_table: Union[RelatedFabricSemanticModelTable, None, UnsetType] = UNSET + """Semantic model table containing the measure.""" + + fabric_semantic_model_table_columns: Union[List[RelatedFabricSemanticModelTableColumn], None, UnsetType] = UNSET + """Semantic model table columns referenced by the DAX expression of this measure.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + +class FabricSemanticModelMeasureNested(AssetNested): + """FabricSemanticModelMeasure in nested API format for high-performance serialization.""" + + attributes: Union[FabricSemanticModelMeasureAttributes, UnsetType] = UNSET + relationship_attributes: Union[FabricSemanticModelMeasureRelationshipAttributes, UnsetType] = UNSET + append_relationship_attributes: Union[FabricSemanticModelMeasureRelationshipAttributes, UnsetType] = UNSET + remove_relationship_attributes: Union[FabricSemanticModelMeasureRelationshipAttributes, UnsetType] = UNSET + +# ============================================================================= +# CONVERSION HELPERS & CONSTANTS +# ============================================================================= + +_FABRIC_SEMANTIC_MODEL_MEASURE_REL_FIELDS: List[str] = [ + *_ASSET_REL_FIELDS, + "input_to_airflow_tasks", + "output_from_airflow_tasks", + "anomalo_checks", + "application", + "application_field", + "context_repositories", + "data_contract_latest", + "data_contract_latest_certified", + "output_port_data_products", + "input_port_data_products", + "model_implemented_entities", + "model_implemented_attributes", + "metrics", + "dq_base_dataset_rules", + "dq_reference_dataset_rules", + "fabric_semantic_model_table", + "fabric_semantic_model_table_columns", + "gcp_dataplex_aspect_type_metadata_entities", + "meanings", + "knowledge_linked_files", + "mc_monitors", + "mc_incidents", + "partial_child_fields", + "partial_child_objects", + "input_to_processes", + "output_from_processes", + "user_def_relationship_to", + "user_def_relationship_from", + "files", + "links", + "readme", + "schema_registry_subjects", + "soda_checks", + "input_to_spark_jobs", + "output_from_spark_jobs", +] + +def _populate_fabric_semantic_model_measure_attrs(attrs: FabricSemanticModelMeasureAttributes, obj: FabricSemanticModelMeasure) -> None: + """Populate FabricSemanticModelMeasure-specific attributes on the attrs struct.""" + _populate_asset_attrs(attrs, obj) + attrs.fabric_semantic_model_qualified_name = obj.fabric_semantic_model_qualified_name + attrs.fabric_semantic_model_table_qualified_name = obj.fabric_semantic_model_table_qualified_name + attrs.fabric_semantic_model_table_name = obj.fabric_semantic_model_table_name + attrs.fabric_measure_expression = obj.fabric_measure_expression + attrs.fabric_format_string = obj.fabric_format_string + attrs.fabric_display_folder = obj.fabric_display_folder + attrs.fabric_is_hidden = obj.fabric_is_hidden + attrs.fabric_is_external_measure = obj.fabric_is_external_measure + attrs.fabric_column_count = obj.fabric_column_count + attrs.fabric_data_type = obj.fabric_data_type + attrs.fabric_ordinal = obj.fabric_ordinal + attrs.catalog_dataset_guid = obj.catalog_dataset_guid + +def _extract_fabric_semantic_model_measure_attrs(attrs: FabricSemanticModelMeasureAttributes) -> dict: + """Extract all FabricSemanticModelMeasure attributes from the attrs struct into a flat dict.""" + result = _extract_asset_attrs(attrs) + result["fabric_semantic_model_qualified_name"] = attrs.fabric_semantic_model_qualified_name + result["fabric_semantic_model_table_qualified_name"] = attrs.fabric_semantic_model_table_qualified_name + result["fabric_semantic_model_table_name"] = attrs.fabric_semantic_model_table_name + result["fabric_measure_expression"] = attrs.fabric_measure_expression + result["fabric_format_string"] = attrs.fabric_format_string + result["fabric_display_folder"] = attrs.fabric_display_folder + result["fabric_is_hidden"] = attrs.fabric_is_hidden + result["fabric_is_external_measure"] = attrs.fabric_is_external_measure + result["fabric_column_count"] = attrs.fabric_column_count + result["fabric_data_type"] = attrs.fabric_data_type + result["fabric_ordinal"] = attrs.fabric_ordinal + result["catalog_dataset_guid"] = attrs.catalog_dataset_guid + return result + +# ============================================================================= +# CONVERSION FUNCTIONS +# ============================================================================= + + +def _fabric_semantic_model_measure_to_nested(fabric_semantic_model_measure: FabricSemanticModelMeasure) -> FabricSemanticModelMeasureNested: + """Convert flat FabricSemanticModelMeasure to nested format.""" + attrs = FabricSemanticModelMeasureAttributes() + _populate_fabric_semantic_model_measure_attrs(attrs, fabric_semantic_model_measure) + # Categorize relationships by save semantic (REPLACE, APPEND, REMOVE) + replace_rels, append_rels, remove_rels = categorize_relationships( + fabric_semantic_model_measure, _FABRIC_SEMANTIC_MODEL_MEASURE_REL_FIELDS, FabricSemanticModelMeasureRelationshipAttributes + ) + return FabricSemanticModelMeasureNested( + guid=fabric_semantic_model_measure.guid, + type_name=fabric_semantic_model_measure.type_name, + status=fabric_semantic_model_measure.status, + version=fabric_semantic_model_measure.version, + create_time=fabric_semantic_model_measure.create_time, + update_time=fabric_semantic_model_measure.update_time, + created_by=fabric_semantic_model_measure.created_by, + updated_by=fabric_semantic_model_measure.updated_by, + classifications=fabric_semantic_model_measure.classifications, + classification_names=fabric_semantic_model_measure.classification_names, + meanings=fabric_semantic_model_measure.meanings, + labels=fabric_semantic_model_measure.labels, + business_attributes=fabric_semantic_model_measure.business_attributes, + custom_attributes=fabric_semantic_model_measure.custom_attributes, + pending_tasks=fabric_semantic_model_measure.pending_tasks, + proxy=fabric_semantic_model_measure.proxy, + is_incomplete=fabric_semantic_model_measure.is_incomplete, + provenance_type=fabric_semantic_model_measure.provenance_type, + home_id=fabric_semantic_model_measure.home_id, + depth=fabric_semantic_model_measure.depth, + immediate_upstream=fabric_semantic_model_measure.immediate_upstream, + immediate_downstream=fabric_semantic_model_measure.immediate_downstream, + attributes=attrs, + relationship_attributes=replace_rels, + append_relationship_attributes=append_rels, + remove_relationship_attributes=remove_rels, + ) + +def _fabric_semantic_model_measure_from_nested(nested: FabricSemanticModelMeasureNested) -> FabricSemanticModelMeasure: + """Convert nested format to flat FabricSemanticModelMeasure.""" + attrs = nested.attributes if nested.attributes is not UNSET else FabricSemanticModelMeasureAttributes() + # Merge relationships from all three buckets + merged_rels = merge_relationships( + nested.relationship_attributes, + nested.append_relationship_attributes, + nested.remove_relationship_attributes, + _FABRIC_SEMANTIC_MODEL_MEASURE_REL_FIELDS, + FabricSemanticModelMeasureRelationshipAttributes + ) + return FabricSemanticModelMeasure( + guid=nested.guid, + type_name=nested.type_name, + status=nested.status, + version=nested.version, + create_time=nested.create_time, + update_time=nested.update_time, + created_by=nested.created_by, + updated_by=nested.updated_by, + classifications=nested.classifications, + classification_names=nested.classification_names, + meanings=nested.meanings, + labels=nested.labels, + business_attributes=nested.business_attributes, + custom_attributes=nested.custom_attributes, + pending_tasks=nested.pending_tasks, + proxy=nested.proxy, + is_incomplete=nested.is_incomplete, + provenance_type=nested.provenance_type, + home_id=nested.home_id, + depth=nested.depth, + immediate_upstream=nested.immediate_upstream, + immediate_downstream=nested.immediate_downstream, + **_extract_fabric_semantic_model_measure_attrs(attrs), + # Merged relationship attributes + **merged_rels, + ) + +def _fabric_semantic_model_measure_to_nested_bytes(fabric_semantic_model_measure: FabricSemanticModelMeasure, serde: Serde) -> bytes: + """Convert flat FabricSemanticModelMeasure to nested JSON bytes.""" + return serde.encode(_fabric_semantic_model_measure_to_nested(fabric_semantic_model_measure)) + + +def _fabric_semantic_model_measure_from_nested_bytes(data: bytes, serde: Serde) -> FabricSemanticModelMeasure: + """Convert nested JSON bytes to flat FabricSemanticModelMeasure.""" + nested = serde.decode(data, FabricSemanticModelMeasureNested) + return _fabric_semantic_model_measure_from_nested(nested) + +# --------------------------------------------------------------------------- +# Deferred field descriptor initialization +# --------------------------------------------------------------------------- +from pyatlan.model.fields.atlan_fields import ( # noqa: E402 + BooleanField, + KeywordField, + NumericField, + RelationField, + TextField, +) + +FabricSemanticModelMeasure.FABRIC_SEMANTIC_MODEL_QUALIFIED_NAME = KeywordField("fabricSemanticModelQualifiedName", "fabricSemanticModelQualifiedName") +FabricSemanticModelMeasure.FABRIC_SEMANTIC_MODEL_TABLE_QUALIFIED_NAME = KeywordField("fabricSemanticModelTableQualifiedName", "fabricSemanticModelTableQualifiedName") +FabricSemanticModelMeasure.FABRIC_SEMANTIC_MODEL_TABLE_NAME = KeywordField("fabricSemanticModelTableName", "fabricSemanticModelTableName") +FabricSemanticModelMeasure.FABRIC_MEASURE_EXPRESSION = TextField("fabricMeasureExpression", "fabricMeasureExpression") +FabricSemanticModelMeasure.FABRIC_FORMAT_STRING = KeywordField("fabricFormatString", "fabricFormatString") +FabricSemanticModelMeasure.FABRIC_DISPLAY_FOLDER = KeywordField("fabricDisplayFolder", "fabricDisplayFolder") +FabricSemanticModelMeasure.FABRIC_IS_HIDDEN = BooleanField("fabricIsHidden", "fabricIsHidden") +FabricSemanticModelMeasure.FABRIC_IS_EXTERNAL_MEASURE = BooleanField("fabricIsExternalMeasure", "fabricIsExternalMeasure") +FabricSemanticModelMeasure.FABRIC_COLUMN_COUNT = NumericField("fabricColumnCount", "fabricColumnCount") +FabricSemanticModelMeasure.FABRIC_DATA_TYPE = KeywordField("fabricDataType", "fabricDataType") +FabricSemanticModelMeasure.FABRIC_ORDINAL = NumericField("fabricOrdinal", "fabricOrdinal") +FabricSemanticModelMeasure.CATALOG_DATASET_GUID = KeywordField("catalogDatasetGuid", "catalogDatasetGuid") +FabricSemanticModelMeasure.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") +FabricSemanticModelMeasure.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") +FabricSemanticModelMeasure.ANOMALO_CHECKS = RelationField("anomaloChecks") +FabricSemanticModelMeasure.APPLICATION = RelationField("application") +FabricSemanticModelMeasure.APPLICATION_FIELD = RelationField("applicationField") +FabricSemanticModelMeasure.CONTEXT_REPOSITORIES = RelationField("contextRepositories") +FabricSemanticModelMeasure.DATA_CONTRACT_LATEST = RelationField("dataContractLatest") +FabricSemanticModelMeasure.DATA_CONTRACT_LATEST_CERTIFIED = RelationField("dataContractLatestCertified") +FabricSemanticModelMeasure.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") +FabricSemanticModelMeasure.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") +FabricSemanticModelMeasure.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") +FabricSemanticModelMeasure.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") +FabricSemanticModelMeasure.METRICS = RelationField("metrics") +FabricSemanticModelMeasure.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") +FabricSemanticModelMeasure.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") +FabricSemanticModelMeasure.FABRIC_SEMANTIC_MODEL_TABLE = RelationField("fabricSemanticModelTable") +FabricSemanticModelMeasure.FABRIC_SEMANTIC_MODEL_TABLE_COLUMNS = RelationField("fabricSemanticModelTableColumns") +FabricSemanticModelMeasure.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField("gcpDataplexAspectTypeMetadataEntities") +FabricSemanticModelMeasure.MEANINGS = RelationField("meanings") +FabricSemanticModelMeasure.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") +FabricSemanticModelMeasure.MC_MONITORS = RelationField("mcMonitors") +FabricSemanticModelMeasure.MC_INCIDENTS = RelationField("mcIncidents") +FabricSemanticModelMeasure.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") +FabricSemanticModelMeasure.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") +FabricSemanticModelMeasure.INPUT_TO_PROCESSES = RelationField("inputToProcesses") +FabricSemanticModelMeasure.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") +FabricSemanticModelMeasure.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") +FabricSemanticModelMeasure.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") +FabricSemanticModelMeasure.FILES = RelationField("files") +FabricSemanticModelMeasure.LINKS = RelationField("links") +FabricSemanticModelMeasure.README = RelationField("readme") +FabricSemanticModelMeasure.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") +FabricSemanticModelMeasure.SODA_CHECKS = RelationField("sodaChecks") +FabricSemanticModelMeasure.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") +FabricSemanticModelMeasure.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/fabric_semantic_model_table.py b/pyatlan_v9/model/assets/fabric_semantic_model_table.py index 66d396ffc..b00a6d53c 100644 --- a/pyatlan_v9/model/assets/fabric_semantic_model_table.py +++ b/pyatlan_v9/model/assets/fabric_semantic_model_table.py @@ -44,6 +44,7 @@ from .data_quality_related import RelatedDataQualityRule, RelatedMetric from .fabric_related import ( RelatedFabricSemanticModel, + RelatedFabricSemanticModelMeasure, RelatedFabricSemanticModelTable, RelatedFabricSemanticModelTableColumn, ) @@ -93,6 +94,7 @@ class FabricSemanticModelTable(Asset): DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None FABRIC_SEMANTIC_MODEL: ClassVar[Any] = None FABRIC_SEMANTIC_MODEL_TABLE_COLUMNS: ClassVar[Any] = None + FABRIC_SEMANTIC_MODEL_MEASURES: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None @@ -184,6 +186,11 @@ class FabricSemanticModelTable(Asset): ] = UNSET """Individual semantic model table columns contained in the semantic model table.""" + fabric_semantic_model_measures: Union[ + List[RelatedFabricSemanticModelMeasure], None, UnsetType + ] = UNSET + """Individual semantic model measures contained in the semantic model table.""" + gcp_dataplex_aspect_type_metadata_entities: Union[ List[RelatedGCPDataplexAspectType], None, UnsetType ] = UNSET @@ -460,6 +467,11 @@ class FabricSemanticModelTableRelationshipAttributes(AssetRelationshipAttributes ] = UNSET """Individual semantic model table columns contained in the semantic model table.""" + fabric_semantic_model_measures: Union[ + List[RelatedFabricSemanticModelMeasure], None, UnsetType + ] = UNSET + """Individual semantic model measures contained in the semantic model table.""" + gcp_dataplex_aspect_type_metadata_entities: Union[ List[RelatedGCPDataplexAspectType], None, UnsetType ] = UNSET @@ -559,6 +571,7 @@ class FabricSemanticModelTableNested(AssetNested): "dq_reference_dataset_rules", "fabric_semantic_model", "fabric_semantic_model_table_columns", + "fabric_semantic_model_measures", "gcp_dataplex_aspect_type_metadata_entities", "meanings", "knowledge_linked_files", @@ -774,6 +787,9 @@ def _fabric_semantic_model_table_from_nested_bytes( FabricSemanticModelTable.FABRIC_SEMANTIC_MODEL_TABLE_COLUMNS = RelationField( "fabricSemanticModelTableColumns" ) +FabricSemanticModelTable.FABRIC_SEMANTIC_MODEL_MEASURES = RelationField( + "fabricSemanticModelMeasures" +) FabricSemanticModelTable.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField( "gcpDataplexAspectTypeMetadataEntities" ) diff --git a/pyatlan_v9/model/assets/fabric_semantic_model_table_column.py b/pyatlan_v9/model/assets/fabric_semantic_model_table_column.py index b55ed314d..e16fbb42c 100644 --- a/pyatlan_v9/model/assets/fabric_semantic_model_table_column.py +++ b/pyatlan_v9/model/assets/fabric_semantic_model_table_column.py @@ -43,6 +43,7 @@ from .data_mesh_related import RelatedDataProduct from .data_quality_related import RelatedDataQualityRule, RelatedMetric from .fabric_related import ( + RelatedFabricSemanticModelMeasure, RelatedFabricSemanticModelTable, RelatedFabricSemanticModelTableColumn, ) @@ -92,6 +93,7 @@ class FabricSemanticModelTableColumn(Asset): DQ_BASE_DATASET_RULES: ClassVar[Any] = None DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None FABRIC_SEMANTIC_MODEL_TABLE: ClassVar[Any] = None + FABRIC_SEMANTIC_MODEL_MEASURES: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None @@ -183,6 +185,11 @@ class FabricSemanticModelTableColumn(Asset): ] = UNSET """Semantic model table containing the column.""" + fabric_semantic_model_measures: Union[ + List[RelatedFabricSemanticModelMeasure], None, UnsetType + ] = UNSET + """Semantic model measures whose DAX expressions reference this column.""" + gcp_dataplex_aspect_type_metadata_entities: Union[ List[RelatedGCPDataplexAspectType], None, UnsetType ] = UNSET @@ -465,6 +472,11 @@ class FabricSemanticModelTableColumnRelationshipAttributes(AssetRelationshipAttr ] = UNSET """Semantic model table containing the column.""" + fabric_semantic_model_measures: Union[ + List[RelatedFabricSemanticModelMeasure], None, UnsetType + ] = UNSET + """Semantic model measures whose DAX expressions reference this column.""" + gcp_dataplex_aspect_type_metadata_entities: Union[ List[RelatedGCPDataplexAspectType], None, UnsetType ] = UNSET @@ -563,6 +575,7 @@ class FabricSemanticModelTableColumnNested(AssetNested): "dq_base_dataset_rules", "dq_reference_dataset_rules", "fabric_semantic_model_table", + "fabric_semantic_model_measures", "gcp_dataplex_aspect_type_metadata_entities", "meanings", "knowledge_linked_files", @@ -798,6 +811,9 @@ def _fabric_semantic_model_table_column_from_nested_bytes( FabricSemanticModelTableColumn.FABRIC_SEMANTIC_MODEL_TABLE = RelationField( "fabricSemanticModelTable" ) +FabricSemanticModelTableColumn.FABRIC_SEMANTIC_MODEL_MEASURES = RelationField( + "fabricSemanticModelMeasures" +) FabricSemanticModelTableColumn.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = ( RelationField("gcpDataplexAspectTypeMetadataEntities") ) diff --git a/pyatlan_v9/model/assets/fivetran_connector.py b/pyatlan_v9/model/assets/fivetran_connector.py index 7d0e52e39..ccdea51e3 100644 --- a/pyatlan_v9/model/assets/fivetran_connector.py +++ b/pyatlan_v9/model/assets/fivetran_connector.py @@ -67,44 +67,50 @@ class FivetranConnector(Asset): Instance of a Fivetran connector asset in Atlan. """ - FIVETRAN_LAST_SYNC_ID: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_STARTED_AT: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_FINISHED_AT: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_REASON: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_TASK_TYPE: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_RESCHEDULED_AT: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_TABLES_SYNCED: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_EXTRACT_TIME_SECONDS: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_EXTRACT_VOLUME_MEGABYTES: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_LOAD_TIME_SECONDS: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_LOAD_VOLUME_MEGABYTES: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_PROCESS_TIME_SECONDS: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_PROCESS_VOLUME_MEGABYTES: ClassVar[Any] = None - FIVETRAN_LAST_SYNC_TOTAL_TIME_SECONDS: ClassVar[Any] = None - FIVETRAN_NAME: ClassVar[Any] = None - FIVETRAN_TYPE: ClassVar[Any] = None - FIVETRAN_URL: ClassVar[Any] = None - FIVETRAN_DESTINATION_NAME: ClassVar[Any] = None - FIVETRAN_DESTINATION_TYPE: ClassVar[Any] = None - FIVETRAN_DESTINATION_URL: ClassVar[Any] = None - FIVETRAN_SYNC_SETUP_ON: ClassVar[Any] = None - FIVETRAN_SYNC_FREQUENCY: ClassVar[Any] = None - FIVETRAN_SYNC_PAUSED: ClassVar[Any] = None - FIVETRAN_SYNC_SETUP_USER_FULL_NAME: ClassVar[Any] = None - FIVETRAN_SYNC_SETUP_USER_EMAIL: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_FREE: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_PAID: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_TOTAL: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_FREE: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_PAID: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_TOTAL: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_FREE_PERCENTAGE_OF_ACCOUNT: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_PAID_PERCENTAGE_OF_ACCOUNT: ClassVar[Any] = None - FIVETRAN_MONTHLY_ACTIVE_ROWS_TOTAL_PERCENTAGE_OF_ACCOUNT: ClassVar[Any] = None - FIVETRAN_TOTAL_TABLES_SYNCED: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_ID: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_STARTED_AT: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_FINISHED_AT: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_REASON: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_TASK_TYPE: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_RESCHEDULED_AT: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_TABLES_SYNCED: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_TIME_SECONDS: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_VOLUME_MEGABYTES: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_TIME_SECONDS: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_VOLUME_MEGABYTES: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_TIME_SECONDS: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_VOLUME_MEGABYTES: ClassVar[Any] = None + FIVETRAN_CONNECTOR_LAST_SYNC_TOTAL_TIME_SECONDS: ClassVar[Any] = None + FIVETRAN_CONNECTOR_NAME: ClassVar[Any] = None + FIVETRAN_CONNECTOR_TYPE: ClassVar[Any] = None + FIVETRAN_CONNECTOR_URL: ClassVar[Any] = None + FIVETRAN_CONNECTOR_DESTINATION_NAME: ClassVar[Any] = None + FIVETRAN_CONNECTOR_DESTINATION_TYPE: ClassVar[Any] = None + FIVETRAN_CONNECTOR_DESTINATION_URL: ClassVar[Any] = None + FIVETRAN_CONNECTOR_SYNC_SETUP_ON: ClassVar[Any] = None + FIVETRAN_CONNECTOR_SYNC_FREQUENCY: ClassVar[Any] = None + FIVETRAN_CONNECTOR_SYNC_PAUSED: ClassVar[Any] = None + FIVETRAN_CONNECTOR_SYNC_SETUP_USER_FULL_NAME: ClassVar[Any] = None + FIVETRAN_CONNECTOR_SYNC_SETUP_USER_EMAIL: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_FREE: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_PAID: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_TOTAL: ClassVar[Any] = None + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE_PERCENTAGE_OF_ACCOUNT: ClassVar[Any] = ( + None + ) + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID_PERCENTAGE_OF_ACCOUNT: ClassVar[Any] = ( + None + ) + FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL_PERCENTAGE_OF_ACCOUNT: ClassVar[ + Any + ] = None + FIVETRAN_CONNECTOR_TOTAL_TABLES_SYNCED: ClassVar[Any] = None FIVETRAN_CONNECTOR_TOP_TABLES_BY_MAR: ClassVar[Any] = None - FIVETRAN_USAGE_COST: ClassVar[Any] = None - FIVETRAN_CREDITS_USED: ClassVar[Any] = None + FIVETRAN_CONNECTOR_USAGE_COST: ClassVar[Any] = None + FIVETRAN_CONNECTOR_CREDITS_USED: ClassVar[Any] = None FIVETRAN_WORKFLOW_NAME: ClassVar[Any] = None FIVETRAN_LAST_SYNC_STATUS: ClassVar[Any] = None FIVETRAN_LAST_SYNC_RECORDS_UPDATED: ClassVar[Any] = None @@ -144,125 +150,139 @@ class FivetranConnector(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - fivetran_last_sync_id: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_id: Union[str, None, UnsetType] = UNSET """ID of the latest sync""" - fivetran_last_sync_started_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_started_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds""" - fivetran_last_sync_finished_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_finished_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds""" - fivetran_last_sync_reason: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_reason: Union[str, None, UnsetType] = UNSET """Failure reason for the latest sync on Fivetran. If status is FAILURE, this is the description of the reason why the sync failed. If status is FAILURE_WITH_TASK, this is the description of the Error. If status is RESCHEDULED, this is the description of the reason why the sync is rescheduled.""" - fivetran_last_sync_task_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_task_type: Union[str, None, UnsetType] = UNSET """Failure task type for the latest sync on Fivetran. If status is FAILURE_WITH_TASK or RESCHEDULED, this field displays the type of the Error that caused the failure or rescheduling, respectively, e.g., reconnect, update_service_account, etc.""" - fivetran_last_sync_rescheduled_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_rescheduled_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran""" - fivetran_last_sync_tables_synced: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_tables_synced: Union[int, None, UnsetType] = UNSET """Number of tables synced in the latest sync on Fivetran""" - fivetran_last_sync_extract_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_extract_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Extract time in seconds in the latest sync on fivetran""" - fivetran_last_sync_extract_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_extract_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Extracted data volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_load_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_load_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Load time in seconds in the latest sync on Fivetran""" - fivetran_last_sync_load_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_load_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Loaded data volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_process_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_process_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Process time in seconds in the latest sync on Fivetran""" - fivetran_last_sync_process_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_process_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Process volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_total_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_total_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Total sync time in seconds in the latest sync on Fivetran""" - fivetran_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_name: Union[str, None, UnsetType] = UNSET """Connector name added by the user on Fivetran""" - fivetran_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_type: Union[str, None, UnsetType] = UNSET """Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc.""" - fivetran_url: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="fivetranURL" + fivetran_connector_url: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="fivetranConnectorURL" ) """URL to open the connector details on Fivetran""" - fivetran_destination_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_destination_name: Union[str, None, UnsetType] = UNSET """Destination name added by the user on Fivetran""" - fivetran_destination_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_destination_type: Union[str, None, UnsetType] = UNSET """Type of destination on Fivetran. Eg: redshift, bigquery etc.""" - fivetran_destination_url: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="fivetranDestinationURL" + fivetran_connector_destination_url: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="fivetranConnectorDestinationURL" ) """URL to open the destination details on Fivetran""" - fivetran_sync_setup_on: Union[int, None, UnsetType] = UNSET + fivetran_connector_sync_setup_on: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds""" - fivetran_sync_frequency: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_frequency: Union[str, None, UnsetType] = UNSET """Sync frequency for the connector in number of hours. Eg: Every 6 hours""" - fivetran_sync_paused: Union[bool, None, UnsetType] = UNSET + fivetran_connector_sync_paused: Union[bool, None, UnsetType] = UNSET """Boolean to indicate whether the sync for this connector is paused or not""" - fivetran_sync_setup_user_full_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_setup_user_full_name: Union[str, None, UnsetType] = UNSET """Full name of the user who setup the connector on Fivetran""" - fivetran_sync_setup_user_email: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_setup_user_email: Union[str, None, UnsetType] = UNSET """Email ID of the user who setpu the connector on Fivetran""" - fivetran_monthly_active_rows_free: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_free: Union[int, None, UnsetType] = UNSET """Free Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_paid: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_paid: Union[int, None, UnsetType] = UNSET """Paid Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_total: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_total: Union[int, None, UnsetType] = UNSET """Total Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_change_percentage_free: Union[ + fivetran_connector_monthly_active_rows_change_percentage_free: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of free MAR compared to the previous month""" - fivetran_monthly_active_rows_change_percentage_paid: Union[ + fivetran_connector_monthly_active_rows_change_percentage_paid: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of paid MAR compared to the previous month""" - fivetran_monthly_active_rows_change_percentage_total: Union[ + fivetran_connector_monthly_active_rows_change_percentage_total: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of total MAR compared to the previous month""" - fivetran_monthly_active_rows_free_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_free_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total free MAR used by this connector""" - fivetran_monthly_active_rows_paid_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_paid_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total paid MAR used by this connector""" - fivetran_monthly_active_rows_total_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_total_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total MAR used by this connector""" - fivetran_total_tables_synced: Union[int, None, UnsetType] = UNSET + fivetran_connector_total_tables_synced: Union[int, None, UnsetType] = UNSET """Total number of tables synced by this connector""" fivetran_connector_top_tables_by_mar: Union[str, None, UnsetType] = msgspec.field( @@ -270,10 +290,10 @@ class FivetranConnector(Asset): ) """Total five tables sorted by MAR synced by this connector""" - fivetran_usage_cost: Union[float, None, UnsetType] = UNSET + fivetran_connector_usage_cost: Union[float, None, UnsetType] = UNSET """Total usage cost by this destination""" - fivetran_credits_used: Union[float, None, UnsetType] = UNSET + fivetran_connector_credits_used: Union[float, None, UnsetType] = UNSET """Total credits used by this destination""" fivetran_workflow_name: Union[str, None, UnsetType] = UNSET @@ -520,125 +540,139 @@ def from_json( class FivetranConnectorAttributes(AssetAttributes): """FivetranConnector-specific attributes for nested API format.""" - fivetran_last_sync_id: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_id: Union[str, None, UnsetType] = UNSET """ID of the latest sync""" - fivetran_last_sync_started_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_started_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds""" - fivetran_last_sync_finished_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_finished_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds""" - fivetran_last_sync_reason: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_reason: Union[str, None, UnsetType] = UNSET """Failure reason for the latest sync on Fivetran. If status is FAILURE, this is the description of the reason why the sync failed. If status is FAILURE_WITH_TASK, this is the description of the Error. If status is RESCHEDULED, this is the description of the reason why the sync is rescheduled.""" - fivetran_last_sync_task_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_task_type: Union[str, None, UnsetType] = UNSET """Failure task type for the latest sync on Fivetran. If status is FAILURE_WITH_TASK or RESCHEDULED, this field displays the type of the Error that caused the failure or rescheduling, respectively, e.g., reconnect, update_service_account, etc.""" - fivetran_last_sync_rescheduled_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_rescheduled_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran""" - fivetran_last_sync_tables_synced: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_tables_synced: Union[int, None, UnsetType] = UNSET """Number of tables synced in the latest sync on Fivetran""" - fivetran_last_sync_extract_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_extract_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Extract time in seconds in the latest sync on fivetran""" - fivetran_last_sync_extract_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_extract_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Extracted data volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_load_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_load_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Load time in seconds in the latest sync on Fivetran""" - fivetran_last_sync_load_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_load_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Loaded data volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_process_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_process_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Process time in seconds in the latest sync on Fivetran""" - fivetran_last_sync_process_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_process_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Process volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_total_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_total_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Total sync time in seconds in the latest sync on Fivetran""" - fivetran_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_name: Union[str, None, UnsetType] = UNSET """Connector name added by the user on Fivetran""" - fivetran_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_type: Union[str, None, UnsetType] = UNSET """Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc.""" - fivetran_url: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="fivetranURL" + fivetran_connector_url: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="fivetranConnectorURL" ) """URL to open the connector details on Fivetran""" - fivetran_destination_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_destination_name: Union[str, None, UnsetType] = UNSET """Destination name added by the user on Fivetran""" - fivetran_destination_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_destination_type: Union[str, None, UnsetType] = UNSET """Type of destination on Fivetran. Eg: redshift, bigquery etc.""" - fivetran_destination_url: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="fivetranDestinationURL" + fivetran_connector_destination_url: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="fivetranConnectorDestinationURL" ) """URL to open the destination details on Fivetran""" - fivetran_sync_setup_on: Union[int, None, UnsetType] = UNSET + fivetran_connector_sync_setup_on: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds""" - fivetran_sync_frequency: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_frequency: Union[str, None, UnsetType] = UNSET """Sync frequency for the connector in number of hours. Eg: Every 6 hours""" - fivetran_sync_paused: Union[bool, None, UnsetType] = UNSET + fivetran_connector_sync_paused: Union[bool, None, UnsetType] = UNSET """Boolean to indicate whether the sync for this connector is paused or not""" - fivetran_sync_setup_user_full_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_setup_user_full_name: Union[str, None, UnsetType] = UNSET """Full name of the user who setup the connector on Fivetran""" - fivetran_sync_setup_user_email: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_setup_user_email: Union[str, None, UnsetType] = UNSET """Email ID of the user who setpu the connector on Fivetran""" - fivetran_monthly_active_rows_free: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_free: Union[int, None, UnsetType] = UNSET """Free Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_paid: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_paid: Union[int, None, UnsetType] = UNSET """Paid Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_total: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_total: Union[int, None, UnsetType] = UNSET """Total Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_change_percentage_free: Union[ + fivetran_connector_monthly_active_rows_change_percentage_free: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of free MAR compared to the previous month""" - fivetran_monthly_active_rows_change_percentage_paid: Union[ + fivetran_connector_monthly_active_rows_change_percentage_paid: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of paid MAR compared to the previous month""" - fivetran_monthly_active_rows_change_percentage_total: Union[ + fivetran_connector_monthly_active_rows_change_percentage_total: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of total MAR compared to the previous month""" - fivetran_monthly_active_rows_free_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_free_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total free MAR used by this connector""" - fivetran_monthly_active_rows_paid_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_paid_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total paid MAR used by this connector""" - fivetran_monthly_active_rows_total_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_total_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total MAR used by this connector""" - fivetran_total_tables_synced: Union[int, None, UnsetType] = UNSET + fivetran_connector_total_tables_synced: Union[int, None, UnsetType] = UNSET """Total number of tables synced by this connector""" fivetran_connector_top_tables_by_mar: Union[str, None, UnsetType] = msgspec.field( @@ -646,10 +680,10 @@ class FivetranConnectorAttributes(AssetAttributes): ) """Total five tables sorted by MAR synced by this connector""" - fivetran_usage_cost: Union[float, None, UnsetType] = UNSET + fivetran_connector_usage_cost: Union[float, None, UnsetType] = UNSET """Total usage cost by this destination""" - fivetran_credits_used: Union[float, None, UnsetType] = UNSET + fivetran_connector_credits_used: Union[float, None, UnsetType] = UNSET """Total credits used by this destination""" fivetran_workflow_name: Union[str, None, UnsetType] = UNSET @@ -844,72 +878,94 @@ def _populate_fivetran_connector_attrs( ) -> None: """Populate FivetranConnector-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.fivetran_last_sync_id = obj.fivetran_last_sync_id - attrs.fivetran_last_sync_started_at = obj.fivetran_last_sync_started_at - attrs.fivetran_last_sync_finished_at = obj.fivetran_last_sync_finished_at - attrs.fivetran_last_sync_reason = obj.fivetran_last_sync_reason - attrs.fivetran_last_sync_task_type = obj.fivetran_last_sync_task_type - attrs.fivetran_last_sync_rescheduled_at = obj.fivetran_last_sync_rescheduled_at - attrs.fivetran_last_sync_tables_synced = obj.fivetran_last_sync_tables_synced - attrs.fivetran_last_sync_extract_time_seconds = ( - obj.fivetran_last_sync_extract_time_seconds - ) - attrs.fivetran_last_sync_extract_volume_megabytes = ( - obj.fivetran_last_sync_extract_volume_megabytes - ) - attrs.fivetran_last_sync_load_time_seconds = ( - obj.fivetran_last_sync_load_time_seconds - ) - attrs.fivetran_last_sync_load_volume_megabytes = ( - obj.fivetran_last_sync_load_volume_megabytes - ) - attrs.fivetran_last_sync_process_time_seconds = ( - obj.fivetran_last_sync_process_time_seconds - ) - attrs.fivetran_last_sync_process_volume_megabytes = ( - obj.fivetran_last_sync_process_volume_megabytes - ) - attrs.fivetran_last_sync_total_time_seconds = ( - obj.fivetran_last_sync_total_time_seconds - ) - attrs.fivetran_name = obj.fivetran_name - attrs.fivetran_type = obj.fivetran_type - attrs.fivetran_url = obj.fivetran_url - attrs.fivetran_destination_name = obj.fivetran_destination_name - attrs.fivetran_destination_type = obj.fivetran_destination_type - attrs.fivetran_destination_url = obj.fivetran_destination_url - attrs.fivetran_sync_setup_on = obj.fivetran_sync_setup_on - attrs.fivetran_sync_frequency = obj.fivetran_sync_frequency - attrs.fivetran_sync_paused = obj.fivetran_sync_paused - attrs.fivetran_sync_setup_user_full_name = obj.fivetran_sync_setup_user_full_name - attrs.fivetran_sync_setup_user_email = obj.fivetran_sync_setup_user_email - attrs.fivetran_monthly_active_rows_free = obj.fivetran_monthly_active_rows_free - attrs.fivetran_monthly_active_rows_paid = obj.fivetran_monthly_active_rows_paid - attrs.fivetran_monthly_active_rows_total = obj.fivetran_monthly_active_rows_total - attrs.fivetran_monthly_active_rows_change_percentage_free = ( - obj.fivetran_monthly_active_rows_change_percentage_free - ) - attrs.fivetran_monthly_active_rows_change_percentage_paid = ( - obj.fivetran_monthly_active_rows_change_percentage_paid - ) - attrs.fivetran_monthly_active_rows_change_percentage_total = ( - obj.fivetran_monthly_active_rows_change_percentage_total - ) - attrs.fivetran_monthly_active_rows_free_percentage_of_account = ( - obj.fivetran_monthly_active_rows_free_percentage_of_account - ) - attrs.fivetran_monthly_active_rows_paid_percentage_of_account = ( - obj.fivetran_monthly_active_rows_paid_percentage_of_account - ) - attrs.fivetran_monthly_active_rows_total_percentage_of_account = ( - obj.fivetran_monthly_active_rows_total_percentage_of_account - ) - attrs.fivetran_total_tables_synced = obj.fivetran_total_tables_synced + attrs.fivetran_connector_last_sync_id = obj.fivetran_connector_last_sync_id + attrs.fivetran_connector_last_sync_started_at = ( + obj.fivetran_connector_last_sync_started_at + ) + attrs.fivetran_connector_last_sync_finished_at = ( + obj.fivetran_connector_last_sync_finished_at + ) + attrs.fivetran_connector_last_sync_reason = obj.fivetran_connector_last_sync_reason + attrs.fivetran_connector_last_sync_task_type = ( + obj.fivetran_connector_last_sync_task_type + ) + attrs.fivetran_connector_last_sync_rescheduled_at = ( + obj.fivetran_connector_last_sync_rescheduled_at + ) + attrs.fivetran_connector_last_sync_tables_synced = ( + obj.fivetran_connector_last_sync_tables_synced + ) + attrs.fivetran_connector_last_sync_extract_time_seconds = ( + obj.fivetran_connector_last_sync_extract_time_seconds + ) + attrs.fivetran_connector_last_sync_extract_volume_megabytes = ( + obj.fivetran_connector_last_sync_extract_volume_megabytes + ) + attrs.fivetran_connector_last_sync_load_time_seconds = ( + obj.fivetran_connector_last_sync_load_time_seconds + ) + attrs.fivetran_connector_last_sync_load_volume_megabytes = ( + obj.fivetran_connector_last_sync_load_volume_megabytes + ) + attrs.fivetran_connector_last_sync_process_time_seconds = ( + obj.fivetran_connector_last_sync_process_time_seconds + ) + attrs.fivetran_connector_last_sync_process_volume_megabytes = ( + obj.fivetran_connector_last_sync_process_volume_megabytes + ) + attrs.fivetran_connector_last_sync_total_time_seconds = ( + obj.fivetran_connector_last_sync_total_time_seconds + ) + attrs.fivetran_connector_name = obj.fivetran_connector_name + attrs.fivetran_connector_type = obj.fivetran_connector_type + attrs.fivetran_connector_url = obj.fivetran_connector_url + attrs.fivetran_connector_destination_name = obj.fivetran_connector_destination_name + attrs.fivetran_connector_destination_type = obj.fivetran_connector_destination_type + attrs.fivetran_connector_destination_url = obj.fivetran_connector_destination_url + attrs.fivetran_connector_sync_setup_on = obj.fivetran_connector_sync_setup_on + attrs.fivetran_connector_sync_frequency = obj.fivetran_connector_sync_frequency + attrs.fivetran_connector_sync_paused = obj.fivetran_connector_sync_paused + attrs.fivetran_connector_sync_setup_user_full_name = ( + obj.fivetran_connector_sync_setup_user_full_name + ) + attrs.fivetran_connector_sync_setup_user_email = ( + obj.fivetran_connector_sync_setup_user_email + ) + attrs.fivetran_connector_monthly_active_rows_free = ( + obj.fivetran_connector_monthly_active_rows_free + ) + attrs.fivetran_connector_monthly_active_rows_paid = ( + obj.fivetran_connector_monthly_active_rows_paid + ) + attrs.fivetran_connector_monthly_active_rows_total = ( + obj.fivetran_connector_monthly_active_rows_total + ) + attrs.fivetran_connector_monthly_active_rows_change_percentage_free = ( + obj.fivetran_connector_monthly_active_rows_change_percentage_free + ) + attrs.fivetran_connector_monthly_active_rows_change_percentage_paid = ( + obj.fivetran_connector_monthly_active_rows_change_percentage_paid + ) + attrs.fivetran_connector_monthly_active_rows_change_percentage_total = ( + obj.fivetran_connector_monthly_active_rows_change_percentage_total + ) + attrs.fivetran_connector_monthly_active_rows_free_percentage_of_account = ( + obj.fivetran_connector_monthly_active_rows_free_percentage_of_account + ) + attrs.fivetran_connector_monthly_active_rows_paid_percentage_of_account = ( + obj.fivetran_connector_monthly_active_rows_paid_percentage_of_account + ) + attrs.fivetran_connector_monthly_active_rows_total_percentage_of_account = ( + obj.fivetran_connector_monthly_active_rows_total_percentage_of_account + ) + attrs.fivetran_connector_total_tables_synced = ( + obj.fivetran_connector_total_tables_synced + ) attrs.fivetran_connector_top_tables_by_mar = ( obj.fivetran_connector_top_tables_by_mar ) - attrs.fivetran_usage_cost = obj.fivetran_usage_cost - attrs.fivetran_credits_used = obj.fivetran_credits_used + attrs.fivetran_connector_usage_cost = obj.fivetran_connector_usage_cost + attrs.fivetran_connector_credits_used = obj.fivetran_connector_credits_used attrs.fivetran_workflow_name = obj.fivetran_workflow_name attrs.fivetran_last_sync_status = obj.fivetran_last_sync_status attrs.fivetran_last_sync_records_updated = obj.fivetran_last_sync_records_updated @@ -919,82 +975,104 @@ def _populate_fivetran_connector_attrs( def _extract_fivetran_connector_attrs(attrs: FivetranConnectorAttributes) -> dict: """Extract all FivetranConnector attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["fivetran_last_sync_id"] = attrs.fivetran_last_sync_id - result["fivetran_last_sync_started_at"] = attrs.fivetran_last_sync_started_at - result["fivetran_last_sync_finished_at"] = attrs.fivetran_last_sync_finished_at - result["fivetran_last_sync_reason"] = attrs.fivetran_last_sync_reason - result["fivetran_last_sync_task_type"] = attrs.fivetran_last_sync_task_type - result["fivetran_last_sync_rescheduled_at"] = ( - attrs.fivetran_last_sync_rescheduled_at + result["fivetran_connector_last_sync_id"] = attrs.fivetran_connector_last_sync_id + result["fivetran_connector_last_sync_started_at"] = ( + attrs.fivetran_connector_last_sync_started_at + ) + result["fivetran_connector_last_sync_finished_at"] = ( + attrs.fivetran_connector_last_sync_finished_at + ) + result["fivetran_connector_last_sync_reason"] = ( + attrs.fivetran_connector_last_sync_reason ) - result["fivetran_last_sync_tables_synced"] = attrs.fivetran_last_sync_tables_synced - result["fivetran_last_sync_extract_time_seconds"] = ( - attrs.fivetran_last_sync_extract_time_seconds + result["fivetran_connector_last_sync_task_type"] = ( + attrs.fivetran_connector_last_sync_task_type ) - result["fivetran_last_sync_extract_volume_megabytes"] = ( - attrs.fivetran_last_sync_extract_volume_megabytes + result["fivetran_connector_last_sync_rescheduled_at"] = ( + attrs.fivetran_connector_last_sync_rescheduled_at ) - result["fivetran_last_sync_load_time_seconds"] = ( - attrs.fivetran_last_sync_load_time_seconds + result["fivetran_connector_last_sync_tables_synced"] = ( + attrs.fivetran_connector_last_sync_tables_synced ) - result["fivetran_last_sync_load_volume_megabytes"] = ( - attrs.fivetran_last_sync_load_volume_megabytes + result["fivetran_connector_last_sync_extract_time_seconds"] = ( + attrs.fivetran_connector_last_sync_extract_time_seconds ) - result["fivetran_last_sync_process_time_seconds"] = ( - attrs.fivetran_last_sync_process_time_seconds + result["fivetran_connector_last_sync_extract_volume_megabytes"] = ( + attrs.fivetran_connector_last_sync_extract_volume_megabytes ) - result["fivetran_last_sync_process_volume_megabytes"] = ( - attrs.fivetran_last_sync_process_volume_megabytes + result["fivetran_connector_last_sync_load_time_seconds"] = ( + attrs.fivetran_connector_last_sync_load_time_seconds ) - result["fivetran_last_sync_total_time_seconds"] = ( - attrs.fivetran_last_sync_total_time_seconds + result["fivetran_connector_last_sync_load_volume_megabytes"] = ( + attrs.fivetran_connector_last_sync_load_volume_megabytes ) - result["fivetran_name"] = attrs.fivetran_name - result["fivetran_type"] = attrs.fivetran_type - result["fivetran_url"] = attrs.fivetran_url - result["fivetran_destination_name"] = attrs.fivetran_destination_name - result["fivetran_destination_type"] = attrs.fivetran_destination_type - result["fivetran_destination_url"] = attrs.fivetran_destination_url - result["fivetran_sync_setup_on"] = attrs.fivetran_sync_setup_on - result["fivetran_sync_frequency"] = attrs.fivetran_sync_frequency - result["fivetran_sync_paused"] = attrs.fivetran_sync_paused - result["fivetran_sync_setup_user_full_name"] = ( - attrs.fivetran_sync_setup_user_full_name + result["fivetran_connector_last_sync_process_time_seconds"] = ( + attrs.fivetran_connector_last_sync_process_time_seconds ) - result["fivetran_sync_setup_user_email"] = attrs.fivetran_sync_setup_user_email - result["fivetran_monthly_active_rows_free"] = ( - attrs.fivetran_monthly_active_rows_free + result["fivetran_connector_last_sync_process_volume_megabytes"] = ( + attrs.fivetran_connector_last_sync_process_volume_megabytes ) - result["fivetran_monthly_active_rows_paid"] = ( - attrs.fivetran_monthly_active_rows_paid + result["fivetran_connector_last_sync_total_time_seconds"] = ( + attrs.fivetran_connector_last_sync_total_time_seconds ) - result["fivetran_monthly_active_rows_total"] = ( - attrs.fivetran_monthly_active_rows_total + result["fivetran_connector_name"] = attrs.fivetran_connector_name + result["fivetran_connector_type"] = attrs.fivetran_connector_type + result["fivetran_connector_url"] = attrs.fivetran_connector_url + result["fivetran_connector_destination_name"] = ( + attrs.fivetran_connector_destination_name ) - result["fivetran_monthly_active_rows_change_percentage_free"] = ( - attrs.fivetran_monthly_active_rows_change_percentage_free + result["fivetran_connector_destination_type"] = ( + attrs.fivetran_connector_destination_type ) - result["fivetran_monthly_active_rows_change_percentage_paid"] = ( - attrs.fivetran_monthly_active_rows_change_percentage_paid + result["fivetran_connector_destination_url"] = ( + attrs.fivetran_connector_destination_url ) - result["fivetran_monthly_active_rows_change_percentage_total"] = ( - attrs.fivetran_monthly_active_rows_change_percentage_total + result["fivetran_connector_sync_setup_on"] = attrs.fivetran_connector_sync_setup_on + result["fivetran_connector_sync_frequency"] = ( + attrs.fivetran_connector_sync_frequency ) - result["fivetran_monthly_active_rows_free_percentage_of_account"] = ( - attrs.fivetran_monthly_active_rows_free_percentage_of_account + result["fivetran_connector_sync_paused"] = attrs.fivetran_connector_sync_paused + result["fivetran_connector_sync_setup_user_full_name"] = ( + attrs.fivetran_connector_sync_setup_user_full_name ) - result["fivetran_monthly_active_rows_paid_percentage_of_account"] = ( - attrs.fivetran_monthly_active_rows_paid_percentage_of_account + result["fivetran_connector_sync_setup_user_email"] = ( + attrs.fivetran_connector_sync_setup_user_email ) - result["fivetran_monthly_active_rows_total_percentage_of_account"] = ( - attrs.fivetran_monthly_active_rows_total_percentage_of_account + result["fivetran_connector_monthly_active_rows_free"] = ( + attrs.fivetran_connector_monthly_active_rows_free + ) + result["fivetran_connector_monthly_active_rows_paid"] = ( + attrs.fivetran_connector_monthly_active_rows_paid + ) + result["fivetran_connector_monthly_active_rows_total"] = ( + attrs.fivetran_connector_monthly_active_rows_total + ) + result["fivetran_connector_monthly_active_rows_change_percentage_free"] = ( + attrs.fivetran_connector_monthly_active_rows_change_percentage_free + ) + result["fivetran_connector_monthly_active_rows_change_percentage_paid"] = ( + attrs.fivetran_connector_monthly_active_rows_change_percentage_paid + ) + result["fivetran_connector_monthly_active_rows_change_percentage_total"] = ( + attrs.fivetran_connector_monthly_active_rows_change_percentage_total + ) + result["fivetran_connector_monthly_active_rows_free_percentage_of_account"] = ( + attrs.fivetran_connector_monthly_active_rows_free_percentage_of_account + ) + result["fivetran_connector_monthly_active_rows_paid_percentage_of_account"] = ( + attrs.fivetran_connector_monthly_active_rows_paid_percentage_of_account + ) + result["fivetran_connector_monthly_active_rows_total_percentage_of_account"] = ( + attrs.fivetran_connector_monthly_active_rows_total_percentage_of_account + ) + result["fivetran_connector_total_tables_synced"] = ( + attrs.fivetran_connector_total_tables_synced ) - result["fivetran_total_tables_synced"] = attrs.fivetran_total_tables_synced result["fivetran_connector_top_tables_by_mar"] = ( attrs.fivetran_connector_top_tables_by_mar ) - result["fivetran_usage_cost"] = attrs.fivetran_usage_cost - result["fivetran_credits_used"] = attrs.fivetran_credits_used + result["fivetran_connector_usage_cost"] = attrs.fivetran_connector_usage_cost + result["fivetran_connector_credits_used"] = attrs.fivetran_connector_credits_used result["fivetran_workflow_name"] = attrs.fivetran_workflow_name result["fivetran_last_sync_status"] = attrs.fivetran_last_sync_status result["fivetran_last_sync_records_updated"] = ( @@ -1123,125 +1201,146 @@ def _fivetran_connector_from_nested_bytes( RelationField, ) -FivetranConnector.FIVETRAN_LAST_SYNC_ID = KeywordField( - "fivetranLastSyncId", "fivetranLastSyncId" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_ID = KeywordField( + "fivetranConnectorLastSyncId", "fivetranConnectorLastSyncId" ) -FivetranConnector.FIVETRAN_LAST_SYNC_STARTED_AT = NumericField( - "fivetranLastSyncStartedAt", "fivetranLastSyncStartedAt" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_STARTED_AT = NumericField( + "fivetranConnectorLastSyncStartedAt", "fivetranConnectorLastSyncStartedAt" ) -FivetranConnector.FIVETRAN_LAST_SYNC_FINISHED_AT = NumericField( - "fivetranLastSyncFinishedAt", "fivetranLastSyncFinishedAt" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_FINISHED_AT = NumericField( + "fivetranConnectorLastSyncFinishedAt", "fivetranConnectorLastSyncFinishedAt" ) -FivetranConnector.FIVETRAN_LAST_SYNC_REASON = KeywordTextField( - "fivetranLastSyncReason", "fivetranLastSyncReason", "fivetranLastSyncReason.text" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_REASON = KeywordTextField( + "fivetranConnectorLastSyncReason", + "fivetranConnectorLastSyncReason", + "fivetranConnectorLastSyncReason.text", ) -FivetranConnector.FIVETRAN_LAST_SYNC_TASK_TYPE = KeywordField( - "fivetranLastSyncTaskType", "fivetranLastSyncTaskType" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_TASK_TYPE = KeywordField( + "fivetranConnectorLastSyncTaskType", "fivetranConnectorLastSyncTaskType" ) -FivetranConnector.FIVETRAN_LAST_SYNC_RESCHEDULED_AT = NumericField( - "fivetranLastSyncRescheduledAt", "fivetranLastSyncRescheduledAt" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_RESCHEDULED_AT = NumericField( + "fivetranConnectorLastSyncRescheduledAt", "fivetranConnectorLastSyncRescheduledAt" ) -FivetranConnector.FIVETRAN_LAST_SYNC_TABLES_SYNCED = NumericField( - "fivetranLastSyncTablesSynced", "fivetranLastSyncTablesSynced" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_TABLES_SYNCED = NumericField( + "fivetranConnectorLastSyncTablesSynced", "fivetranConnectorLastSyncTablesSynced" ) -FivetranConnector.FIVETRAN_LAST_SYNC_EXTRACT_TIME_SECONDS = NumericField( - "fivetranLastSyncExtractTimeSeconds", "fivetranLastSyncExtractTimeSeconds" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_TIME_SECONDS = NumericField( + "fivetranConnectorLastSyncExtractTimeSeconds", + "fivetranConnectorLastSyncExtractTimeSeconds", ) -FivetranConnector.FIVETRAN_LAST_SYNC_EXTRACT_VOLUME_MEGABYTES = NumericField( - "fivetranLastSyncExtractVolumeMegabytes", "fivetranLastSyncExtractVolumeMegabytes" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_VOLUME_MEGABYTES = NumericField( + "fivetranConnectorLastSyncExtractVolumeMegabytes", + "fivetranConnectorLastSyncExtractVolumeMegabytes", ) -FivetranConnector.FIVETRAN_LAST_SYNC_LOAD_TIME_SECONDS = NumericField( - "fivetranLastSyncLoadTimeSeconds", "fivetranLastSyncLoadTimeSeconds" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_TIME_SECONDS = NumericField( + "fivetranConnectorLastSyncLoadTimeSeconds", + "fivetranConnectorLastSyncLoadTimeSeconds", ) -FivetranConnector.FIVETRAN_LAST_SYNC_LOAD_VOLUME_MEGABYTES = NumericField( - "fivetranLastSyncLoadVolumeMegabytes", "fivetranLastSyncLoadVolumeMegabytes" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_VOLUME_MEGABYTES = NumericField( + "fivetranConnectorLastSyncLoadVolumeMegabytes", + "fivetranConnectorLastSyncLoadVolumeMegabytes", ) -FivetranConnector.FIVETRAN_LAST_SYNC_PROCESS_TIME_SECONDS = NumericField( - "fivetranLastSyncProcessTimeSeconds", "fivetranLastSyncProcessTimeSeconds" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_TIME_SECONDS = NumericField( + "fivetranConnectorLastSyncProcessTimeSeconds", + "fivetranConnectorLastSyncProcessTimeSeconds", ) -FivetranConnector.FIVETRAN_LAST_SYNC_PROCESS_VOLUME_MEGABYTES = NumericField( - "fivetranLastSyncProcessVolumeMegabytes", "fivetranLastSyncProcessVolumeMegabytes" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_VOLUME_MEGABYTES = NumericField( + "fivetranConnectorLastSyncProcessVolumeMegabytes", + "fivetranConnectorLastSyncProcessVolumeMegabytes", ) -FivetranConnector.FIVETRAN_LAST_SYNC_TOTAL_TIME_SECONDS = NumericField( - "fivetranLastSyncTotalTimeSeconds", "fivetranLastSyncTotalTimeSeconds" +FivetranConnector.FIVETRAN_CONNECTOR_LAST_SYNC_TOTAL_TIME_SECONDS = NumericField( + "fivetranConnectorLastSyncTotalTimeSeconds", + "fivetranConnectorLastSyncTotalTimeSeconds", ) -FivetranConnector.FIVETRAN_NAME = KeywordField("fivetranName", "fivetranName") -FivetranConnector.FIVETRAN_TYPE = KeywordField("fivetranType", "fivetranType") -FivetranConnector.FIVETRAN_URL = KeywordField("fivetranURL", "fivetranURL") -FivetranConnector.FIVETRAN_DESTINATION_NAME = KeywordField( - "fivetranDestinationName", "fivetranDestinationName" +FivetranConnector.FIVETRAN_CONNECTOR_NAME = KeywordField( + "fivetranConnectorName", "fivetranConnectorName" ) -FivetranConnector.FIVETRAN_DESTINATION_TYPE = KeywordField( - "fivetranDestinationType", "fivetranDestinationType" +FivetranConnector.FIVETRAN_CONNECTOR_TYPE = KeywordField( + "fivetranConnectorType", "fivetranConnectorType" ) -FivetranConnector.FIVETRAN_DESTINATION_URL = KeywordField( - "fivetranDestinationURL", "fivetranDestinationURL" +FivetranConnector.FIVETRAN_CONNECTOR_URL = KeywordField( + "fivetranConnectorURL", "fivetranConnectorURL" ) -FivetranConnector.FIVETRAN_SYNC_SETUP_ON = NumericField( - "fivetranSyncSetupOn", "fivetranSyncSetupOn" +FivetranConnector.FIVETRAN_CONNECTOR_DESTINATION_NAME = KeywordField( + "fivetranConnectorDestinationName", "fivetranConnectorDestinationName" ) -FivetranConnector.FIVETRAN_SYNC_FREQUENCY = KeywordField( - "fivetranSyncFrequency", "fivetranSyncFrequency" +FivetranConnector.FIVETRAN_CONNECTOR_DESTINATION_TYPE = KeywordField( + "fivetranConnectorDestinationType", "fivetranConnectorDestinationType" ) -FivetranConnector.FIVETRAN_SYNC_PAUSED = BooleanField( - "fivetranSyncPaused", "fivetranSyncPaused" +FivetranConnector.FIVETRAN_CONNECTOR_DESTINATION_URL = KeywordField( + "fivetranConnectorDestinationURL", "fivetranConnectorDestinationURL" ) -FivetranConnector.FIVETRAN_SYNC_SETUP_USER_FULL_NAME = KeywordField( - "fivetranSyncSetupUserFullName", "fivetranSyncSetupUserFullName" +FivetranConnector.FIVETRAN_CONNECTOR_SYNC_SETUP_ON = NumericField( + "fivetranConnectorSyncSetupOn", "fivetranConnectorSyncSetupOn" ) -FivetranConnector.FIVETRAN_SYNC_SETUP_USER_EMAIL = KeywordField( - "fivetranSyncSetupUserEmail", "fivetranSyncSetupUserEmail" +FivetranConnector.FIVETRAN_CONNECTOR_SYNC_FREQUENCY = KeywordField( + "fivetranConnectorSyncFrequency", "fivetranConnectorSyncFrequency" ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_FREE = NumericField( - "fivetranMonthlyActiveRowsFree", "fivetranMonthlyActiveRowsFree" +FivetranConnector.FIVETRAN_CONNECTOR_SYNC_PAUSED = BooleanField( + "fivetranConnectorSyncPaused", "fivetranConnectorSyncPaused" ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_PAID = NumericField( - "fivetranMonthlyActiveRowsPaid", "fivetranMonthlyActiveRowsPaid" +FivetranConnector.FIVETRAN_CONNECTOR_SYNC_SETUP_USER_FULL_NAME = KeywordField( + "fivetranConnectorSyncSetupUserFullName", "fivetranConnectorSyncSetupUserFullName" ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_TOTAL = NumericField( - "fivetranMonthlyActiveRowsTotal", "fivetranMonthlyActiveRowsTotal" +FivetranConnector.FIVETRAN_CONNECTOR_SYNC_SETUP_USER_EMAIL = KeywordField( + "fivetranConnectorSyncSetupUserEmail", "fivetranConnectorSyncSetupUserEmail" ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_FREE = NumericField( - "fivetranMonthlyActiveRowsChangePercentageFree", - "fivetranMonthlyActiveRowsChangePercentageFree", +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE = NumericField( + "fivetranConnectorMonthlyActiveRowsFree", "fivetranConnectorMonthlyActiveRowsFree" ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_PAID = NumericField( - "fivetranMonthlyActiveRowsChangePercentagePaid", - "fivetranMonthlyActiveRowsChangePercentagePaid", +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID = NumericField( + "fivetranConnectorMonthlyActiveRowsPaid", "fivetranConnectorMonthlyActiveRowsPaid" ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_TOTAL = NumericField( - "fivetranMonthlyActiveRowsChangePercentageTotal", - "fivetranMonthlyActiveRowsChangePercentageTotal", +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL = NumericField( + "fivetranConnectorMonthlyActiveRowsTotal", "fivetranConnectorMonthlyActiveRowsTotal" +) +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_FREE = ( + NumericField( + "fivetranConnectorMonthlyActiveRowsChangePercentageFree", + "fivetranConnectorMonthlyActiveRowsChangePercentageFree", + ) +) +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_PAID = ( + NumericField( + "fivetranConnectorMonthlyActiveRowsChangePercentagePaid", + "fivetranConnectorMonthlyActiveRowsChangePercentagePaid", + ) +) +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_TOTAL = ( + NumericField( + "fivetranConnectorMonthlyActiveRowsChangePercentageTotal", + "fivetranConnectorMonthlyActiveRowsChangePercentageTotal", + ) ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_FREE_PERCENTAGE_OF_ACCOUNT = ( +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE_PERCENTAGE_OF_ACCOUNT = ( NumericField( - "fivetranMonthlyActiveRowsFreePercentageOfAccount", - "fivetranMonthlyActiveRowsFreePercentageOfAccount", + "fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount", + "fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount", ) ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_PAID_PERCENTAGE_OF_ACCOUNT = ( +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID_PERCENTAGE_OF_ACCOUNT = ( NumericField( - "fivetranMonthlyActiveRowsPaidPercentageOfAccount", - "fivetranMonthlyActiveRowsPaidPercentageOfAccount", + "fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount", + "fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount", ) ) -FivetranConnector.FIVETRAN_MONTHLY_ACTIVE_ROWS_TOTAL_PERCENTAGE_OF_ACCOUNT = ( +FivetranConnector.FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL_PERCENTAGE_OF_ACCOUNT = ( NumericField( - "fivetranMonthlyActiveRowsTotalPercentageOfAccount", - "fivetranMonthlyActiveRowsTotalPercentageOfAccount", + "fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount", + "fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount", ) ) -FivetranConnector.FIVETRAN_TOTAL_TABLES_SYNCED = NumericField( - "fivetranTotalTablesSynced", "fivetranTotalTablesSynced" +FivetranConnector.FIVETRAN_CONNECTOR_TOTAL_TABLES_SYNCED = NumericField( + "fivetranConnectorTotalTablesSynced", "fivetranConnectorTotalTablesSynced" ) FivetranConnector.FIVETRAN_CONNECTOR_TOP_TABLES_BY_MAR = KeywordField( "fivetranConnectorTopTablesByMAR", "fivetranConnectorTopTablesByMAR" ) -FivetranConnector.FIVETRAN_USAGE_COST = NumericField( - "fivetranUsageCost", "fivetranUsageCost" +FivetranConnector.FIVETRAN_CONNECTOR_USAGE_COST = NumericField( + "fivetranConnectorUsageCost", "fivetranConnectorUsageCost" ) -FivetranConnector.FIVETRAN_CREDITS_USED = NumericField( - "fivetranCreditsUsed", "fivetranCreditsUsed" +FivetranConnector.FIVETRAN_CONNECTOR_CREDITS_USED = NumericField( + "fivetranConnectorCreditsUsed", "fivetranConnectorCreditsUsed" ) FivetranConnector.FIVETRAN_WORKFLOW_NAME = KeywordField( "fivetranWorkflowName", "fivetranWorkflowName" diff --git a/pyatlan_v9/model/assets/fivetran_related.py b/pyatlan_v9/model/assets/fivetran_related.py index 57de1138f..a83a03dbf 100644 --- a/pyatlan_v9/model/assets/fivetran_related.py +++ b/pyatlan_v9/model/assets/fivetran_related.py @@ -60,125 +60,139 @@ class RelatedFivetranConnector(RelatedFivetran): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "FivetranConnector" so it serializes correctly - fivetran_last_sync_id: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_id: Union[str, None, UnsetType] = UNSET """ID of the latest sync""" - fivetran_last_sync_started_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_started_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds""" - fivetran_last_sync_finished_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_finished_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds""" - fivetran_last_sync_reason: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_reason: Union[str, None, UnsetType] = UNSET """Failure reason for the latest sync on Fivetran. If status is FAILURE, this is the description of the reason why the sync failed. If status is FAILURE_WITH_TASK, this is the description of the Error. If status is RESCHEDULED, this is the description of the reason why the sync is rescheduled.""" - fivetran_last_sync_task_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_last_sync_task_type: Union[str, None, UnsetType] = UNSET """Failure task type for the latest sync on Fivetran. If status is FAILURE_WITH_TASK or RESCHEDULED, this field displays the type of the Error that caused the failure or rescheduling, respectively, e.g., reconnect, update_service_account, etc.""" - fivetran_last_sync_rescheduled_at: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_rescheduled_at: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran""" - fivetran_last_sync_tables_synced: Union[int, None, UnsetType] = UNSET + fivetran_connector_last_sync_tables_synced: Union[int, None, UnsetType] = UNSET """Number of tables synced in the latest sync on Fivetran""" - fivetran_last_sync_extract_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_extract_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Extract time in seconds in the latest sync on fivetran""" - fivetran_last_sync_extract_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_extract_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Extracted data volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_load_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_load_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Load time in seconds in the latest sync on Fivetran""" - fivetran_last_sync_load_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_load_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Loaded data volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_process_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_process_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Process time in seconds in the latest sync on Fivetran""" - fivetran_last_sync_process_volume_megabytes: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_process_volume_megabytes: Union[ + float, None, UnsetType + ] = UNSET """Process volume in metabytes in the latest sync on Fivetran""" - fivetran_last_sync_total_time_seconds: Union[float, None, UnsetType] = UNSET + fivetran_connector_last_sync_total_time_seconds: Union[float, None, UnsetType] = ( + UNSET + ) """Total sync time in seconds in the latest sync on Fivetran""" - fivetran_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_name: Union[str, None, UnsetType] = UNSET """Connector name added by the user on Fivetran""" - fivetran_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_type: Union[str, None, UnsetType] = UNSET """Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc.""" - fivetran_url: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="fivetranURL" + fivetran_connector_url: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="fivetranConnectorURL" ) """URL to open the connector details on Fivetran""" - fivetran_destination_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_destination_name: Union[str, None, UnsetType] = UNSET """Destination name added by the user on Fivetran""" - fivetran_destination_type: Union[str, None, UnsetType] = UNSET + fivetran_connector_destination_type: Union[str, None, UnsetType] = UNSET """Type of destination on Fivetran. Eg: redshift, bigquery etc.""" - fivetran_destination_url: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="fivetranDestinationURL" + fivetran_connector_destination_url: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="fivetranConnectorDestinationURL" ) """URL to open the destination details on Fivetran""" - fivetran_sync_setup_on: Union[int, None, UnsetType] = UNSET + fivetran_connector_sync_setup_on: Union[int, None, UnsetType] = UNSET """Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds""" - fivetran_sync_frequency: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_frequency: Union[str, None, UnsetType] = UNSET """Sync frequency for the connector in number of hours. Eg: Every 6 hours""" - fivetran_sync_paused: Union[bool, None, UnsetType] = UNSET + fivetran_connector_sync_paused: Union[bool, None, UnsetType] = UNSET """Boolean to indicate whether the sync for this connector is paused or not""" - fivetran_sync_setup_user_full_name: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_setup_user_full_name: Union[str, None, UnsetType] = UNSET """Full name of the user who setup the connector on Fivetran""" - fivetran_sync_setup_user_email: Union[str, None, UnsetType] = UNSET + fivetran_connector_sync_setup_user_email: Union[str, None, UnsetType] = UNSET """Email ID of the user who setpu the connector on Fivetran""" - fivetran_monthly_active_rows_free: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_free: Union[int, None, UnsetType] = UNSET """Free Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_paid: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_paid: Union[int, None, UnsetType] = UNSET """Paid Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_total: Union[int, None, UnsetType] = UNSET + fivetran_connector_monthly_active_rows_total: Union[int, None, UnsetType] = UNSET """Total Monthly Active Rows used by the connector in the past month""" - fivetran_monthly_active_rows_change_percentage_free: Union[ + fivetran_connector_monthly_active_rows_change_percentage_free: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of free MAR compared to the previous month""" - fivetran_monthly_active_rows_change_percentage_paid: Union[ + fivetran_connector_monthly_active_rows_change_percentage_paid: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of paid MAR compared to the previous month""" - fivetran_monthly_active_rows_change_percentage_total: Union[ + fivetran_connector_monthly_active_rows_change_percentage_total: Union[ float, None, UnsetType ] = UNSET """Increase in the percentage of total MAR compared to the previous month""" - fivetran_monthly_active_rows_free_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_free_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total free MAR used by this connector""" - fivetran_monthly_active_rows_paid_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_paid_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total paid MAR used by this connector""" - fivetran_monthly_active_rows_total_percentage_of_account: Union[ + fivetran_connector_monthly_active_rows_total_percentage_of_account: Union[ float, None, UnsetType ] = UNSET """Percentage of the account's total MAR used by this connector""" - fivetran_total_tables_synced: Union[int, None, UnsetType] = UNSET + fivetran_connector_total_tables_synced: Union[int, None, UnsetType] = UNSET """Total number of tables synced by this connector""" fivetran_connector_top_tables_by_mar: Union[str, None, UnsetType] = msgspec.field( @@ -186,10 +200,10 @@ class RelatedFivetranConnector(RelatedFivetran): ) """Total five tables sorted by MAR synced by this connector""" - fivetran_usage_cost: Union[float, None, UnsetType] = UNSET + fivetran_connector_usage_cost: Union[float, None, UnsetType] = UNSET """Total usage cost by this destination""" - fivetran_credits_used: Union[float, None, UnsetType] = UNSET + fivetran_connector_credits_used: Union[float, None, UnsetType] = UNSET """Total credits used by this destination""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/function.py b/pyatlan_v9/model/assets/function.py index c67cdc381..ace45a307 100644 --- a/pyatlan_v9/model/assets/function.py +++ b/pyatlan_v9/model/assets/function.py @@ -81,19 +81,19 @@ class Function(Asset): """ FUNCTION_DEFINITION: ClassVar[Any] = None - SQL_RETURN_TYPE: ClassVar[Any] = None - SQL_ARGUMENTS: ClassVar[Any] = None - SQL_LANGUAGE: ClassVar[Any] = None - SQL_TYPE: ClassVar[Any] = None - SQL_IS_EXTERNAL: ClassVar[Any] = None - SQL_IS_DMF: ClassVar[Any] = None - SQL_IS_SECURE: ClassVar[Any] = None - SQL_IS_MEMOIZABLE: ClassVar[Any] = None - SQL_RUNTIME_VERSION: ClassVar[Any] = None - SQL_EXTERNAL_ACCESS_INTEGRATIONS: ClassVar[Any] = None - SQL_SECRETS: ClassVar[Any] = None - SQL_PACKAGES: ClassVar[Any] = None - SQL_INSTALLED_PACKAGES: ClassVar[Any] = None + FUNCTION_RETURN_TYPE: ClassVar[Any] = None + FUNCTION_ARGUMENTS: ClassVar[Any] = None + FUNCTION_LANGUAGE: ClassVar[Any] = None + FUNCTION_TYPE: ClassVar[Any] = None + FUNCTION_IS_EXTERNAL: ClassVar[Any] = None + FUNCTION_IS_DMF: ClassVar[Any] = None + FUNCTION_IS_SECURE: ClassVar[Any] = None + FUNCTION_IS_MEMOIZABLE: ClassVar[Any] = None + FUNCTION_RUNTIME_VERSION: ClassVar[Any] = None + FUNCTION_EXTERNAL_ACCESS_INTEGRATIONS: ClassVar[Any] = None + FUNCTION_SECRETS: ClassVar[Any] = None + FUNCTION_PACKAGES: ClassVar[Any] = None + FUNCTION_INSTALLED_PACKAGES: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -111,6 +111,7 @@ class Function(Asset): IS_PROFILED: ClassVar[Any] = None LAST_PROFILED_AT: ClassVar[Any] = None SQL_AI_MODEL_CONTEXT_QUALIFIED_NAME: ClassVar[Any] = None + SQL_IS_SECURE: ClassVar[Any] = None SQL_HAS_AI_INSIGHTS: ClassVar[Any] = None SQL_AI_INSIGHTS_LAST_ANALYZED_AT: ClassVar[Any] = None SQL_AI_INSIGHTS_POPULAR_BUSINESS_QUESTION_COUNT: ClassVar[Any] = None @@ -177,45 +178,45 @@ class Function(Asset): function_definition: Union[str, None, UnsetType] = UNSET """Code or set of statements that determine the output of the function.""" - sql_return_type: Union[str, None, UnsetType] = UNSET + function_return_type: Union[str, None, UnsetType] = UNSET """Data type of the value returned by the function.""" - sql_arguments: Union[List[str], None, UnsetType] = UNSET + function_arguments: Union[List[str], None, UnsetType] = UNSET """Arguments that are passed in to the function.""" - sql_language: Union[str, None, UnsetType] = UNSET + function_language: Union[str, None, UnsetType] = UNSET """Programming language in which the function is written.""" - sql_type: Union[str, None, UnsetType] = UNSET + function_type: Union[str, None, UnsetType] = UNSET """Type of function.""" - sql_is_external: Union[bool, None, UnsetType] = UNSET + function_is_external: Union[bool, None, UnsetType] = UNSET """Whether the function is stored or executed externally (true) or internally (false).""" - sql_is_dmf: Union[bool, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlIsDMF" + function_is_dmf: Union[bool, None, UnsetType] = msgspec.field( + default=UNSET, name="functionIsDMF" ) """Whether the function is a data metric function.""" - sql_is_secure: Union[bool, None, UnsetType] = UNSET - """Whether this asset is secure (true) or not (false).""" + function_is_secure: Union[bool, None, UnsetType] = UNSET + """Whether sensitive information of the function is omitted for unauthorized users (true) or not (false).""" - sql_is_memoizable: Union[bool, None, UnsetType] = UNSET + function_is_memoizable: Union[bool, None, UnsetType] = UNSET """Whether the function must re-compute if there are no underlying changes in the values (false) or not (true).""" - sql_runtime_version: Union[str, None, UnsetType] = UNSET + function_runtime_version: Union[str, None, UnsetType] = UNSET """Version of the language runtime used by the function.""" - sql_external_access_integrations: Union[str, None, UnsetType] = UNSET + function_external_access_integrations: Union[str, None, UnsetType] = UNSET """Names of external access integrations used by the function.""" - sql_secrets: Union[str, None, UnsetType] = UNSET + function_secrets: Union[str, None, UnsetType] = UNSET """Secret variables used by the function.""" - sql_packages: Union[str, None, UnsetType] = UNSET + function_packages: Union[str, None, UnsetType] = UNSET """Packages requested by the function.""" - sql_installed_packages: Union[str, None, UnsetType] = UNSET + function_installed_packages: Union[str, None, UnsetType] = UNSET """Packages actually installed for the function.""" query_count: Union[int, None, UnsetType] = UNSET @@ -271,6 +272,9 @@ class Function(Asset): ) """Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context.""" + sql_is_secure: Union[bool, None, UnsetType] = UNSET + """Whether this asset is secure (true) or not (false).""" + sql_has_ai_insights: Union[bool, None, UnsetType] = UNSET """Whether this asset has any AI insights data available.""" @@ -622,45 +626,45 @@ class FunctionAttributes(AssetAttributes): function_definition: Union[str, None, UnsetType] = UNSET """Code or set of statements that determine the output of the function.""" - sql_return_type: Union[str, None, UnsetType] = UNSET + function_return_type: Union[str, None, UnsetType] = UNSET """Data type of the value returned by the function.""" - sql_arguments: Union[List[str], None, UnsetType] = UNSET + function_arguments: Union[List[str], None, UnsetType] = UNSET """Arguments that are passed in to the function.""" - sql_language: Union[str, None, UnsetType] = UNSET + function_language: Union[str, None, UnsetType] = UNSET """Programming language in which the function is written.""" - sql_type: Union[str, None, UnsetType] = UNSET + function_type: Union[str, None, UnsetType] = UNSET """Type of function.""" - sql_is_external: Union[bool, None, UnsetType] = UNSET + function_is_external: Union[bool, None, UnsetType] = UNSET """Whether the function is stored or executed externally (true) or internally (false).""" - sql_is_dmf: Union[bool, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlIsDMF" + function_is_dmf: Union[bool, None, UnsetType] = msgspec.field( + default=UNSET, name="functionIsDMF" ) """Whether the function is a data metric function.""" - sql_is_secure: Union[bool, None, UnsetType] = UNSET - """Whether this asset is secure (true) or not (false).""" + function_is_secure: Union[bool, None, UnsetType] = UNSET + """Whether sensitive information of the function is omitted for unauthorized users (true) or not (false).""" - sql_is_memoizable: Union[bool, None, UnsetType] = UNSET + function_is_memoizable: Union[bool, None, UnsetType] = UNSET """Whether the function must re-compute if there are no underlying changes in the values (false) or not (true).""" - sql_runtime_version: Union[str, None, UnsetType] = UNSET + function_runtime_version: Union[str, None, UnsetType] = UNSET """Version of the language runtime used by the function.""" - sql_external_access_integrations: Union[str, None, UnsetType] = UNSET + function_external_access_integrations: Union[str, None, UnsetType] = UNSET """Names of external access integrations used by the function.""" - sql_secrets: Union[str, None, UnsetType] = UNSET + function_secrets: Union[str, None, UnsetType] = UNSET """Secret variables used by the function.""" - sql_packages: Union[str, None, UnsetType] = UNSET + function_packages: Union[str, None, UnsetType] = UNSET """Packages requested by the function.""" - sql_installed_packages: Union[str, None, UnsetType] = UNSET + function_installed_packages: Union[str, None, UnsetType] = UNSET """Packages actually installed for the function.""" query_count: Union[int, None, UnsetType] = UNSET @@ -716,6 +720,9 @@ class FunctionAttributes(AssetAttributes): ) """Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context.""" + sql_is_secure: Union[bool, None, UnsetType] = UNSET + """Whether this asset is secure (true) or not (false).""" + sql_has_ai_insights: Union[bool, None, UnsetType] = UNSET """Whether this asset has any AI insights data available.""" @@ -1001,19 +1008,21 @@ def _populate_function_attrs(attrs: FunctionAttributes, obj: Function) -> None: """Populate Function-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) attrs.function_definition = obj.function_definition - attrs.sql_return_type = obj.sql_return_type - attrs.sql_arguments = obj.sql_arguments - attrs.sql_language = obj.sql_language - attrs.sql_type = obj.sql_type - attrs.sql_is_external = obj.sql_is_external - attrs.sql_is_dmf = obj.sql_is_dmf - attrs.sql_is_secure = obj.sql_is_secure - attrs.sql_is_memoizable = obj.sql_is_memoizable - attrs.sql_runtime_version = obj.sql_runtime_version - attrs.sql_external_access_integrations = obj.sql_external_access_integrations - attrs.sql_secrets = obj.sql_secrets - attrs.sql_packages = obj.sql_packages - attrs.sql_installed_packages = obj.sql_installed_packages + attrs.function_return_type = obj.function_return_type + attrs.function_arguments = obj.function_arguments + attrs.function_language = obj.function_language + attrs.function_type = obj.function_type + attrs.function_is_external = obj.function_is_external + attrs.function_is_dmf = obj.function_is_dmf + attrs.function_is_secure = obj.function_is_secure + attrs.function_is_memoizable = obj.function_is_memoizable + attrs.function_runtime_version = obj.function_runtime_version + attrs.function_external_access_integrations = ( + obj.function_external_access_integrations + ) + attrs.function_secrets = obj.function_secrets + attrs.function_packages = obj.function_packages + attrs.function_installed_packages = obj.function_installed_packages attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1031,6 +1040,7 @@ def _populate_function_attrs(attrs: FunctionAttributes, obj: Function) -> None: attrs.is_profiled = obj.is_profiled attrs.last_profiled_at = obj.last_profiled_at attrs.sql_ai_model_context_qualified_name = obj.sql_ai_model_context_qualified_name + attrs.sql_is_secure = obj.sql_is_secure attrs.sql_has_ai_insights = obj.sql_has_ai_insights attrs.sql_ai_insights_last_analyzed_at = obj.sql_ai_insights_last_analyzed_at attrs.sql_ai_insights_popular_business_question_count = ( @@ -1057,19 +1067,21 @@ def _extract_function_attrs(attrs: FunctionAttributes) -> dict: """Extract all Function attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) result["function_definition"] = attrs.function_definition - result["sql_return_type"] = attrs.sql_return_type - result["sql_arguments"] = attrs.sql_arguments - result["sql_language"] = attrs.sql_language - result["sql_type"] = attrs.sql_type - result["sql_is_external"] = attrs.sql_is_external - result["sql_is_dmf"] = attrs.sql_is_dmf - result["sql_is_secure"] = attrs.sql_is_secure - result["sql_is_memoizable"] = attrs.sql_is_memoizable - result["sql_runtime_version"] = attrs.sql_runtime_version - result["sql_external_access_integrations"] = attrs.sql_external_access_integrations - result["sql_secrets"] = attrs.sql_secrets - result["sql_packages"] = attrs.sql_packages - result["sql_installed_packages"] = attrs.sql_installed_packages + result["function_return_type"] = attrs.function_return_type + result["function_arguments"] = attrs.function_arguments + result["function_language"] = attrs.function_language + result["function_type"] = attrs.function_type + result["function_is_external"] = attrs.function_is_external + result["function_is_dmf"] = attrs.function_is_dmf + result["function_is_secure"] = attrs.function_is_secure + result["function_is_memoizable"] = attrs.function_is_memoizable + result["function_runtime_version"] = attrs.function_runtime_version + result["function_external_access_integrations"] = ( + attrs.function_external_access_integrations + ) + result["function_secrets"] = attrs.function_secrets + result["function_packages"] = attrs.function_packages + result["function_installed_packages"] = attrs.function_installed_packages result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1089,6 +1101,7 @@ def _extract_function_attrs(attrs: FunctionAttributes) -> dict: result["sql_ai_model_context_qualified_name"] = ( attrs.sql_ai_model_context_qualified_name ) + result["sql_is_secure"] = attrs.sql_is_secure result["sql_has_ai_insights"] = attrs.sql_has_ai_insights result["sql_ai_insights_last_analyzed_at"] = attrs.sql_ai_insights_last_analyzed_at result["sql_ai_insights_popular_business_question_count"] = ( @@ -1224,24 +1237,26 @@ def _function_from_nested_bytes(data: bytes, serde: Serde) -> Function: ) Function.FUNCTION_DEFINITION = KeywordField("functionDefinition", "functionDefinition") -Function.SQL_RETURN_TYPE = KeywordField("sqlReturnType", "sqlReturnType") -Function.SQL_ARGUMENTS = KeywordField("sqlArguments", "sqlArguments") -Function.SQL_LANGUAGE = KeywordField("sqlLanguage", "sqlLanguage") -Function.SQL_TYPE = KeywordField("sqlType", "sqlType") -Function.SQL_IS_EXTERNAL = BooleanField("sqlIsExternal", "sqlIsExternal") -Function.SQL_IS_DMF = BooleanField("sqlIsDMF", "sqlIsDMF") -Function.SQL_IS_SECURE = BooleanField("sqlIsSecure", "sqlIsSecure") -Function.SQL_IS_MEMOIZABLE = BooleanField("sqlIsMemoizable", "sqlIsMemoizable") -Function.SQL_RUNTIME_VERSION = KeywordTextField( - "sqlRuntimeVersion", "sqlRuntimeVersion", "sqlRuntimeVersion.text" +Function.FUNCTION_RETURN_TYPE = KeywordField("functionReturnType", "functionReturnType") +Function.FUNCTION_ARGUMENTS = KeywordField("functionArguments", "functionArguments") +Function.FUNCTION_LANGUAGE = KeywordField("functionLanguage", "functionLanguage") +Function.FUNCTION_TYPE = KeywordField("functionType", "functionType") +Function.FUNCTION_IS_EXTERNAL = BooleanField("functionIsExternal", "functionIsExternal") +Function.FUNCTION_IS_DMF = BooleanField("functionIsDMF", "functionIsDMF") +Function.FUNCTION_IS_SECURE = BooleanField("functionIsSecure", "functionIsSecure") +Function.FUNCTION_IS_MEMOIZABLE = BooleanField( + "functionIsMemoizable", "functionIsMemoizable" ) -Function.SQL_EXTERNAL_ACCESS_INTEGRATIONS = KeywordField( - "sqlExternalAccessIntegrations", "sqlExternalAccessIntegrations" +Function.FUNCTION_RUNTIME_VERSION = KeywordTextField( + "functionRuntimeVersion", "functionRuntimeVersion", "functionRuntimeVersion.text" ) -Function.SQL_SECRETS = KeywordField("sqlSecrets", "sqlSecrets") -Function.SQL_PACKAGES = KeywordField("sqlPackages", "sqlPackages") -Function.SQL_INSTALLED_PACKAGES = KeywordField( - "sqlInstalledPackages", "sqlInstalledPackages" +Function.FUNCTION_EXTERNAL_ACCESS_INTEGRATIONS = KeywordField( + "functionExternalAccessIntegrations", "functionExternalAccessIntegrations" +) +Function.FUNCTION_SECRETS = KeywordField("functionSecrets", "functionSecrets") +Function.FUNCTION_PACKAGES = KeywordField("functionPackages", "functionPackages") +Function.FUNCTION_INSTALLED_PACKAGES = KeywordField( + "functionInstalledPackages", "functionInstalledPackages" ) Function.QUERY_COUNT = NumericField("queryCount", "queryCount") Function.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") @@ -1272,6 +1287,7 @@ def _function_from_nested_bytes(data: bytes, serde: Serde) -> Function: Function.SQL_AI_MODEL_CONTEXT_QUALIFIED_NAME = KeywordField( "sqlAIModelContextQualifiedName", "sqlAIModelContextQualifiedName" ) +Function.SQL_IS_SECURE = BooleanField("sqlIsSecure", "sqlIsSecure") Function.SQL_HAS_AI_INSIGHTS = BooleanField("sqlHasAiInsights", "sqlHasAiInsights") Function.SQL_AI_INSIGHTS_LAST_ANALYZED_AT = NumericField( "sqlAiInsightsLastAnalyzedAt", "sqlAiInsightsLastAnalyzedAt" diff --git a/pyatlan_v9/model/assets/gcp_dataplex.py b/pyatlan_v9/model/assets/gcp_dataplex.py index bc327a270..fdf6c40a0 100644 --- a/pyatlan_v9/model/assets/gcp_dataplex.py +++ b/pyatlan_v9/model/assets/gcp_dataplex.py @@ -25,7 +25,6 @@ from pyatlan_v9.model.serde import Serde, get_serde from pyatlan_v9.model.transform import register_asset -from .airflow_related import RelatedAirflowTask from .anomalo_related import RelatedAnomaloCheck from .app_related import RelatedApplication, RelatedApplicationField from .asset import ( @@ -44,15 +43,11 @@ from .gcp_dataplex_related import RelatedGCPDataplex, RelatedGCPDataplexAspectType from .gtc_related import RelatedAtlasGlossaryTerm from .knowledge_related import RelatedKnowledgeFile -from .model_related import RelatedModelAttribute, RelatedModelEntity from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor -from .partial_related import RelatedPartialField, RelatedPartialObject -from .process_related import RelatedProcess from .referenceable_related import RelatedReferenceable from .resource_related import RelatedFile, RelatedLink, RelatedReadme from .schema_registry_related import RelatedSchemaRegistrySubject from .soda_related import RelatedSodaCheck -from .spark_related import RelatedSparkJob # ============================================================================= # FLAT ASSET CLASS @@ -65,7 +60,6 @@ class GCPDataplex(Asset): Base class for GCP Dataplex Aspect Type assets. """ - CATALOG_DATASET_GUID: ClassVar[Any] = None GOOGLE_SERVICE: ClassVar[Any] = None GOOGLE_PROJECT_NAME: ClassVar[Any] = None GOOGLE_PROJECT_ID: ClassVar[Any] = None @@ -75,8 +69,6 @@ class GCPDataplex(Asset): GOOGLE_LABELS: ClassVar[Any] = None GOOGLE_TAGS: ClassVar[Any] = None CLOUD_UNIFORM_RESOURCE_NAME: ClassVar[Any] = None - INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None - OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None ANOMALO_CHECKS: ClassVar[Any] = None APPLICATION: ClassVar[Any] = None APPLICATION_FIELD: ClassVar[Any] = None @@ -85,8 +77,6 @@ class GCPDataplex(Asset): DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None - MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None - MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None METRICS: ClassVar[Any] = None DQ_BASE_DATASET_RULES: ClassVar[Any] = None DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None @@ -95,10 +85,6 @@ class GCPDataplex(Asset): KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None - PARTIAL_CHILD_FIELDS: ClassVar[Any] = None - PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None - INPUT_TO_PROCESSES: ClassVar[Any] = None - OUTPUT_FROM_PROCESSES: ClassVar[Any] = None USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None FILES: ClassVar[Any] = None @@ -106,11 +92,6 @@ class GCPDataplex(Asset): README: ClassVar[Any] = None SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None SODA_CHECKS: ClassVar[Any] = None - INPUT_TO_SPARK_JOBS: ClassVar[Any] = None - OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - - catalog_dataset_guid: Union[str, None, UnsetType] = UNSET - """Unique identifier of the dataset this asset belongs to.""" google_service: Union[str, None, UnsetType] = UNSET """Service in Google in which the asset exists.""" @@ -139,12 +120,6 @@ class GCPDataplex(Asset): cloud_uniform_resource_name: Union[str, None, UnsetType] = UNSET """Uniform resource name (URN) for the asset: AWS ARN, Google Cloud URI, Azure resource ID, Oracle OCID, and so on.""" - input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks to which this asset provides input.""" - - output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks from which this asset is output.""" - anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET """Checks that run on this asset.""" @@ -169,14 +144,6 @@ class GCPDataplex(Asset): input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET """Data products for which this asset is an input port.""" - model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET - """Entities implemented by this asset.""" - - model_implemented_attributes: Union[ - List[RelatedModelAttribute], None, UnsetType - ] = UNSET - """Attributes implemented by this asset.""" - metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET """""" @@ -205,18 +172,6 @@ class GCPDataplex(Asset): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET - """Partial fields contained in the asset.""" - - partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET - """Partial objects contained in the asset.""" - - input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes to which this asset provides input.""" - - output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes from which this asset is produced as output.""" - user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET """""" @@ -242,12 +197,6 @@ class GCPDataplex(Asset): soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET """""" - input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - - output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - def __post_init__(self) -> None: self.type_name = "GCPDataplex" @@ -366,9 +315,6 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> GCPDataplex class GCPDataplexAttributes(AssetAttributes): """GCPDataplex-specific attributes for nested API format.""" - catalog_dataset_guid: Union[str, None, UnsetType] = UNSET - """Unique identifier of the dataset this asset belongs to.""" - google_service: Union[str, None, UnsetType] = UNSET """Service in Google in which the asset exists.""" @@ -400,12 +346,6 @@ class GCPDataplexAttributes(AssetAttributes): class GCPDataplexRelationshipAttributes(AssetRelationshipAttributes): """GCPDataplex-specific relationship attributes for nested API format.""" - input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks to which this asset provides input.""" - - output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks from which this asset is output.""" - anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET """Checks that run on this asset.""" @@ -430,14 +370,6 @@ class GCPDataplexRelationshipAttributes(AssetRelationshipAttributes): input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET """Data products for which this asset is an input port.""" - model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET - """Entities implemented by this asset.""" - - model_implemented_attributes: Union[ - List[RelatedModelAttribute], None, UnsetType - ] = UNSET - """Attributes implemented by this asset.""" - metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET """""" @@ -466,18 +398,6 @@ class GCPDataplexRelationshipAttributes(AssetRelationshipAttributes): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET - """Partial fields contained in the asset.""" - - partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET - """Partial objects contained in the asset.""" - - input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes to which this asset provides input.""" - - output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes from which this asset is produced as output.""" - user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET """""" @@ -503,12 +423,6 @@ class GCPDataplexRelationshipAttributes(AssetRelationshipAttributes): soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET """""" - input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - - output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - class GCPDataplexNested(AssetNested): """GCPDataplex in nested API format for high-performance serialization.""" @@ -529,8 +443,6 @@ class GCPDataplexNested(AssetNested): _GCP_DATAPLEX_REL_FIELDS: List[str] = [ *_ASSET_REL_FIELDS, - "input_to_airflow_tasks", - "output_from_airflow_tasks", "anomalo_checks", "application", "application_field", @@ -539,8 +451,6 @@ class GCPDataplexNested(AssetNested): "data_contract_latest_certified", "output_port_data_products", "input_port_data_products", - "model_implemented_entities", - "model_implemented_attributes", "metrics", "dq_base_dataset_rules", "dq_reference_dataset_rules", @@ -549,10 +459,6 @@ class GCPDataplexNested(AssetNested): "knowledge_linked_files", "mc_monitors", "mc_incidents", - "partial_child_fields", - "partial_child_objects", - "input_to_processes", - "output_from_processes", "user_def_relationship_to", "user_def_relationship_from", "files", @@ -560,8 +466,6 @@ class GCPDataplexNested(AssetNested): "readme", "schema_registry_subjects", "soda_checks", - "input_to_spark_jobs", - "output_from_spark_jobs", ] @@ -570,7 +474,6 @@ def _populate_gcp_dataplex_attrs( ) -> None: """Populate GCPDataplex-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.catalog_dataset_guid = obj.catalog_dataset_guid attrs.google_service = obj.google_service attrs.google_project_name = obj.google_project_name attrs.google_project_id = obj.google_project_id @@ -585,7 +488,6 @@ def _populate_gcp_dataplex_attrs( def _extract_gcp_dataplex_attrs(attrs: GCPDataplexAttributes) -> dict: """Extract all GCPDataplex attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["catalog_dataset_guid"] = attrs.catalog_dataset_guid result["google_service"] = attrs.google_service result["google_project_name"] = attrs.google_project_name result["google_project_id"] = attrs.google_project_id @@ -704,9 +606,6 @@ def _gcp_dataplex_from_nested_bytes(data: bytes, serde: Serde) -> GCPDataplex: RelationField, ) -GCPDataplex.CATALOG_DATASET_GUID = KeywordField( - "catalogDatasetGuid", "catalogDatasetGuid" -) GCPDataplex.GOOGLE_SERVICE = KeywordField("googleService", "googleService") GCPDataplex.GOOGLE_PROJECT_NAME = KeywordTextField( "googleProjectName", "googleProjectName", "googleProjectName.text" @@ -726,8 +625,6 @@ def _gcp_dataplex_from_nested_bytes(data: bytes, serde: Serde) -> GCPDataplex: GCPDataplex.CLOUD_UNIFORM_RESOURCE_NAME = KeywordField( "cloudUniformResourceName", "cloudUniformResourceName" ) -GCPDataplex.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") -GCPDataplex.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") GCPDataplex.ANOMALO_CHECKS = RelationField("anomaloChecks") GCPDataplex.APPLICATION = RelationField("application") GCPDataplex.APPLICATION_FIELD = RelationField("applicationField") @@ -738,8 +635,6 @@ def _gcp_dataplex_from_nested_bytes(data: bytes, serde: Serde) -> GCPDataplex: ) GCPDataplex.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") GCPDataplex.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") -GCPDataplex.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") -GCPDataplex.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") GCPDataplex.METRICS = RelationField("metrics") GCPDataplex.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") GCPDataplex.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") @@ -750,10 +645,6 @@ def _gcp_dataplex_from_nested_bytes(data: bytes, serde: Serde) -> GCPDataplex: GCPDataplex.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") GCPDataplex.MC_MONITORS = RelationField("mcMonitors") GCPDataplex.MC_INCIDENTS = RelationField("mcIncidents") -GCPDataplex.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") -GCPDataplex.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") -GCPDataplex.INPUT_TO_PROCESSES = RelationField("inputToProcesses") -GCPDataplex.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") GCPDataplex.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") GCPDataplex.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") GCPDataplex.FILES = RelationField("files") @@ -761,5 +652,3 @@ def _gcp_dataplex_from_nested_bytes(data: bytes, serde: Serde) -> GCPDataplex: GCPDataplex.README = RelationField("readme") GCPDataplex.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") GCPDataplex.SODA_CHECKS = RelationField("sodaChecks") -GCPDataplex.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") -GCPDataplex.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/gcp_dataplex_aspect_type.py b/pyatlan_v9/model/assets/gcp_dataplex_aspect_type.py index c9a038df7..5e04e61bf 100644 --- a/pyatlan_v9/model/assets/gcp_dataplex_aspect_type.py +++ b/pyatlan_v9/model/assets/gcp_dataplex_aspect_type.py @@ -25,7 +25,6 @@ from pyatlan_v9.model.serde import Serde, get_serde from pyatlan_v9.model.transform import register_asset -from .airflow_related import RelatedAirflowTask from .anomalo_related import RelatedAnomaloCheck from .app_related import RelatedApplication, RelatedApplicationField from .asset import ( @@ -45,15 +44,11 @@ from .gcp_dataplex_related import RelatedGCPDataplexAspectType from .gtc_related import RelatedAtlasGlossaryTerm from .knowledge_related import RelatedKnowledgeFile -from .model_related import RelatedModelAttribute, RelatedModelEntity from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor -from .partial_related import RelatedPartialField, RelatedPartialObject -from .process_related import RelatedProcess from .referenceable_related import RelatedReferenceable from .resource_related import RelatedFile, RelatedLink, RelatedReadme from .schema_registry_related import RelatedSchemaRegistrySubject from .soda_related import RelatedSodaCheck -from .spark_related import RelatedSparkJob # ============================================================================= # FLAT ASSET CLASS @@ -71,7 +66,6 @@ class GCPDataplexAspectType(Asset): GCP_DATAPLEX_ASPECT_TYPE_LOCATION: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_TEMPLATE: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_LABELS: ClassVar[Any] = None - CATALOG_DATASET_GUID: ClassVar[Any] = None GOOGLE_SERVICE: ClassVar[Any] = None GOOGLE_PROJECT_NAME: ClassVar[Any] = None GOOGLE_PROJECT_ID: ClassVar[Any] = None @@ -81,8 +75,6 @@ class GCPDataplexAspectType(Asset): GOOGLE_LABELS: ClassVar[Any] = None GOOGLE_TAGS: ClassVar[Any] = None CLOUD_UNIFORM_RESOURCE_NAME: ClassVar[Any] = None - INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None - OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None ANOMALO_CHECKS: ClassVar[Any] = None APPLICATION: ClassVar[Any] = None APPLICATION_FIELD: ClassVar[Any] = None @@ -91,8 +83,6 @@ class GCPDataplexAspectType(Asset): DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None - MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None - MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None METRICS: ClassVar[Any] = None DQ_BASE_DATASET_RULES: ClassVar[Any] = None DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None @@ -102,10 +92,6 @@ class GCPDataplexAspectType(Asset): KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None - PARTIAL_CHILD_FIELDS: ClassVar[Any] = None - PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None - INPUT_TO_PROCESSES: ClassVar[Any] = None - OUTPUT_FROM_PROCESSES: ClassVar[Any] = None USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None FILES: ClassVar[Any] = None @@ -113,11 +99,9 @@ class GCPDataplexAspectType(Asset): README: ClassVar[Any] = None SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None SODA_CHECKS: ClassVar[Any] = None - INPUT_TO_SPARK_JOBS: ClassVar[Any] = None - OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None gcp_dataplex_aspect_type_resource_name: Union[str, None, UnsetType] = UNSET - """Full GCP resource name of this Aspect Type (e.g. projects/{project}/locations/{location}/aspectTypes/{id}). Used to match against assetGCPDataplexAspectType on BigQuery entry assets.""" + """Full GCP resource name of this Aspect Type, for example: projects/{project}/locations/{location}/aspectTypes/{id}. Used to match against assetGCPDataplexAspectType on BigQuery entry assets.""" gcp_dataplex_aspect_type_project: Union[str, None, UnsetType] = UNSET """GCP project in which this Aspect Type is defined.""" @@ -131,9 +115,6 @@ class GCPDataplexAspectType(Asset): gcp_dataplex_aspect_type_labels: Union[Dict[str, str], None, UnsetType] = UNSET """GCP labels attached to this Aspect Type resource.""" - catalog_dataset_guid: Union[str, None, UnsetType] = UNSET - """Unique identifier of the dataset this asset belongs to.""" - google_service: Union[str, None, UnsetType] = UNSET """Service in Google in which the asset exists.""" @@ -161,12 +142,6 @@ class GCPDataplexAspectType(Asset): cloud_uniform_resource_name: Union[str, None, UnsetType] = UNSET """Uniform resource name (URN) for the asset: AWS ARN, Google Cloud URI, Azure resource ID, Oracle OCID, and so on.""" - input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks to which this asset provides input.""" - - output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks from which this asset is output.""" - anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET """Checks that run on this asset.""" @@ -191,14 +166,6 @@ class GCPDataplexAspectType(Asset): input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET """Data products for which this asset is an input port.""" - model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET - """Entities implemented by this asset.""" - - model_implemented_attributes: Union[ - List[RelatedModelAttribute], None, UnsetType - ] = UNSET - """Attributes implemented by this asset.""" - metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET """""" @@ -230,18 +197,6 @@ class GCPDataplexAspectType(Asset): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET - """Partial fields contained in the asset.""" - - partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET - """Partial objects contained in the asset.""" - - input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes to which this asset provides input.""" - - output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes from which this asset is produced as output.""" - user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET """""" @@ -267,12 +222,6 @@ class GCPDataplexAspectType(Asset): soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET """""" - input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - - output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - def __post_init__(self) -> None: self.type_name = "GCPDataplexAspectType" @@ -394,7 +343,7 @@ class GCPDataplexAspectTypeAttributes(AssetAttributes): """GCPDataplexAspectType-specific attributes for nested API format.""" gcp_dataplex_aspect_type_resource_name: Union[str, None, UnsetType] = UNSET - """Full GCP resource name of this Aspect Type (e.g. projects/{project}/locations/{location}/aspectTypes/{id}). Used to match against assetGCPDataplexAspectType on BigQuery entry assets.""" + """Full GCP resource name of this Aspect Type, for example: projects/{project}/locations/{location}/aspectTypes/{id}. Used to match against assetGCPDataplexAspectType on BigQuery entry assets.""" gcp_dataplex_aspect_type_project: Union[str, None, UnsetType] = UNSET """GCP project in which this Aspect Type is defined.""" @@ -408,9 +357,6 @@ class GCPDataplexAspectTypeAttributes(AssetAttributes): gcp_dataplex_aspect_type_labels: Union[Dict[str, str], None, UnsetType] = UNSET """GCP labels attached to this Aspect Type resource.""" - catalog_dataset_guid: Union[str, None, UnsetType] = UNSET - """Unique identifier of the dataset this asset belongs to.""" - google_service: Union[str, None, UnsetType] = UNSET """Service in Google in which the asset exists.""" @@ -442,12 +388,6 @@ class GCPDataplexAspectTypeAttributes(AssetAttributes): class GCPDataplexAspectTypeRelationshipAttributes(AssetRelationshipAttributes): """GCPDataplexAspectType-specific relationship attributes for nested API format.""" - input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks to which this asset provides input.""" - - output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET - """Tasks from which this asset is output.""" - anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET """Checks that run on this asset.""" @@ -472,14 +412,6 @@ class GCPDataplexAspectTypeRelationshipAttributes(AssetRelationshipAttributes): input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET """Data products for which this asset is an input port.""" - model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET - """Entities implemented by this asset.""" - - model_implemented_attributes: Union[ - List[RelatedModelAttribute], None, UnsetType - ] = UNSET - """Attributes implemented by this asset.""" - metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET """""" @@ -511,18 +443,6 @@ class GCPDataplexAspectTypeRelationshipAttributes(AssetRelationshipAttributes): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET - """Partial fields contained in the asset.""" - - partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET - """Partial objects contained in the asset.""" - - input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes to which this asset provides input.""" - - output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET - """Processes from which this asset is produced as output.""" - user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET """""" @@ -548,12 +468,6 @@ class GCPDataplexAspectTypeRelationshipAttributes(AssetRelationshipAttributes): soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET """""" - input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - - output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET - """""" - class GCPDataplexAspectTypeNested(AssetNested): """GCPDataplexAspectType in nested API format for high-performance serialization.""" @@ -576,8 +490,6 @@ class GCPDataplexAspectTypeNested(AssetNested): _GCP_DATAPLEX_ASPECT_TYPE_REL_FIELDS: List[str] = [ *_ASSET_REL_FIELDS, - "input_to_airflow_tasks", - "output_from_airflow_tasks", "anomalo_checks", "application", "application_field", @@ -586,8 +498,6 @@ class GCPDataplexAspectTypeNested(AssetNested): "data_contract_latest_certified", "output_port_data_products", "input_port_data_products", - "model_implemented_entities", - "model_implemented_attributes", "metrics", "dq_base_dataset_rules", "dq_reference_dataset_rules", @@ -597,10 +507,6 @@ class GCPDataplexAspectTypeNested(AssetNested): "knowledge_linked_files", "mc_monitors", "mc_incidents", - "partial_child_fields", - "partial_child_objects", - "input_to_processes", - "output_from_processes", "user_def_relationship_to", "user_def_relationship_from", "files", @@ -608,8 +514,6 @@ class GCPDataplexAspectTypeNested(AssetNested): "readme", "schema_registry_subjects", "soda_checks", - "input_to_spark_jobs", - "output_from_spark_jobs", ] @@ -627,7 +531,6 @@ def _populate_gcp_dataplex_aspect_type_attrs( obj.gcp_dataplex_aspect_type_metadata_template ) attrs.gcp_dataplex_aspect_type_labels = obj.gcp_dataplex_aspect_type_labels - attrs.catalog_dataset_guid = obj.catalog_dataset_guid attrs.google_service = obj.google_service attrs.google_project_name = obj.google_project_name attrs.google_project_id = obj.google_project_id @@ -655,7 +558,6 @@ def _extract_gcp_dataplex_aspect_type_attrs( attrs.gcp_dataplex_aspect_type_metadata_template ) result["gcp_dataplex_aspect_type_labels"] = attrs.gcp_dataplex_aspect_type_labels - result["catalog_dataset_guid"] = attrs.catalog_dataset_guid result["google_service"] = attrs.google_service result["google_project_name"] = attrs.google_project_name result["google_project_id"] = attrs.google_project_id @@ -801,9 +703,6 @@ def _gcp_dataplex_aspect_type_from_nested_bytes( GCPDataplexAspectType.GCP_DATAPLEX_ASPECT_TYPE_LABELS = KeywordField( "gcpDataplexAspectTypeLabels", "gcpDataplexAspectTypeLabels" ) -GCPDataplexAspectType.CATALOG_DATASET_GUID = KeywordField( - "catalogDatasetGuid", "catalogDatasetGuid" -) GCPDataplexAspectType.GOOGLE_SERVICE = KeywordField("googleService", "googleService") GCPDataplexAspectType.GOOGLE_PROJECT_NAME = KeywordTextField( "googleProjectName", "googleProjectName", "googleProjectName.text" @@ -823,10 +722,6 @@ def _gcp_dataplex_aspect_type_from_nested_bytes( GCPDataplexAspectType.CLOUD_UNIFORM_RESOURCE_NAME = KeywordField( "cloudUniformResourceName", "cloudUniformResourceName" ) -GCPDataplexAspectType.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") -GCPDataplexAspectType.OUTPUT_FROM_AIRFLOW_TASKS = RelationField( - "outputFromAirflowTasks" -) GCPDataplexAspectType.ANOMALO_CHECKS = RelationField("anomaloChecks") GCPDataplexAspectType.APPLICATION = RelationField("application") GCPDataplexAspectType.APPLICATION_FIELD = RelationField("applicationField") @@ -839,12 +734,6 @@ def _gcp_dataplex_aspect_type_from_nested_bytes( "outputPortDataProducts" ) GCPDataplexAspectType.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") -GCPDataplexAspectType.MODEL_IMPLEMENTED_ENTITIES = RelationField( - "modelImplementedEntities" -) -GCPDataplexAspectType.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField( - "modelImplementedAttributes" -) GCPDataplexAspectType.METRICS = RelationField("metrics") GCPDataplexAspectType.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") GCPDataplexAspectType.DQ_REFERENCE_DATASET_RULES = RelationField( @@ -860,10 +749,6 @@ def _gcp_dataplex_aspect_type_from_nested_bytes( GCPDataplexAspectType.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") GCPDataplexAspectType.MC_MONITORS = RelationField("mcMonitors") GCPDataplexAspectType.MC_INCIDENTS = RelationField("mcIncidents") -GCPDataplexAspectType.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") -GCPDataplexAspectType.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") -GCPDataplexAspectType.INPUT_TO_PROCESSES = RelationField("inputToProcesses") -GCPDataplexAspectType.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") GCPDataplexAspectType.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") GCPDataplexAspectType.USER_DEF_RELATIONSHIP_FROM = RelationField( "userDefRelationshipFrom" @@ -873,5 +758,3 @@ def _gcp_dataplex_aspect_type_from_nested_bytes( GCPDataplexAspectType.README = RelationField("readme") GCPDataplexAspectType.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") GCPDataplexAspectType.SODA_CHECKS = RelationField("sodaChecks") -GCPDataplexAspectType.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") -GCPDataplexAspectType.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/gcp_dataplex_related.py b/pyatlan_v9/model/assets/gcp_dataplex_related.py index d1803d724..0bbcc6015 100644 --- a/pyatlan_v9/model/assets/gcp_dataplex_related.py +++ b/pyatlan_v9/model/assets/gcp_dataplex_related.py @@ -15,7 +15,7 @@ from msgspec import UNSET, UnsetType -from .catalog_related import RelatedCatalog +from .cloud_related import RelatedGoogle from .referenceable_related import RelatedReferenceable __all__ = [ @@ -24,11 +24,11 @@ ] -class RelatedGCPDataplex(RelatedCatalog): +class RelatedGCPDataplex(RelatedGoogle): """ Related entity reference for GCPDataplex assets. - Extends RelatedCatalog with GCPDataplex-specific attributes. + Extends RelatedGoogle with GCPDataplex-specific attributes. """ # type_name inherited from parent with default=UNSET @@ -51,7 +51,7 @@ class RelatedGCPDataplexAspectType(RelatedGCPDataplex): # __post_init__ sets it to "GCPDataplexAspectType" so it serializes correctly gcp_dataplex_aspect_type_resource_name: Union[str, None, UnsetType] = UNSET - """Full GCP resource name of this Aspect Type (e.g. projects/{project}/locations/{location}/aspectTypes/{id}). Used to match against assetGCPDataplexAspectType on BigQuery entry assets.""" + """Full GCP resource name of this Aspect Type, for example: projects/{project}/locations/{location}/aspectTypes/{id}. Used to match against assetGCPDataplexAspectType on BigQuery entry assets.""" gcp_dataplex_aspect_type_project: Union[str, None, UnsetType] = UNSET """GCP project in which this Aspect Type is defined.""" diff --git a/pyatlan_v9/model/assets/google.py b/pyatlan_v9/model/assets/google.py index 247911e1a..283c9178d 100644 --- a/pyatlan_v9/model/assets/google.py +++ b/pyatlan_v9/model/assets/google.py @@ -64,7 +64,7 @@ class Google(Asset): GOOGLE_SERVICE: ClassVar[Any] = None GOOGLE_PROJECT_NAME: ClassVar[Any] = None GOOGLE_PROJECT_ID: ClassVar[Any] = None - CLOUD_PROJECT_NUMBER: ClassVar[Any] = None + GOOGLE_PROJECT_NUMBER: ClassVar[Any] = None GOOGLE_LOCATION: ClassVar[Any] = None GOOGLE_LOCATION_TYPE: ClassVar[Any] = None GOOGLE_LABELS: ClassVar[Any] = None @@ -103,7 +103,7 @@ class Google(Asset): google_project_id: Union[str, None, UnsetType] = UNSET """ID of the project in which the asset exists.""" - cloud_project_number: Union[int, None, UnsetType] = UNSET + google_project_number: Union[int, None, UnsetType] = UNSET """Number of the project in which the asset exists.""" google_location: Union[str, None, UnsetType] = UNSET @@ -325,7 +325,7 @@ class GoogleAttributes(AssetAttributes): google_project_id: Union[str, None, UnsetType] = UNSET """ID of the project in which the asset exists.""" - cloud_project_number: Union[int, None, UnsetType] = UNSET + google_project_number: Union[int, None, UnsetType] = UNSET """Number of the project in which the asset exists.""" google_location: Union[str, None, UnsetType] = UNSET @@ -476,7 +476,7 @@ def _populate_google_attrs(attrs: GoogleAttributes, obj: Google) -> None: attrs.google_service = obj.google_service attrs.google_project_name = obj.google_project_name attrs.google_project_id = obj.google_project_id - attrs.cloud_project_number = obj.cloud_project_number + attrs.google_project_number = obj.google_project_number attrs.google_location = obj.google_location attrs.google_location_type = obj.google_location_type attrs.google_labels = obj.google_labels @@ -490,7 +490,7 @@ def _extract_google_attrs(attrs: GoogleAttributes) -> dict: result["google_service"] = attrs.google_service result["google_project_name"] = attrs.google_project_name result["google_project_id"] = attrs.google_project_id - result["cloud_project_number"] = attrs.cloud_project_number + result["google_project_number"] = attrs.google_project_number result["google_location"] = attrs.google_location result["google_location_type"] = attrs.google_location_type result["google_labels"] = attrs.google_labels @@ -610,7 +610,9 @@ def _google_from_nested_bytes(data: bytes, serde: Serde) -> Google: Google.GOOGLE_PROJECT_ID = KeywordTextField( "googleProjectId", "googleProjectId", "googleProjectId.text" ) -Google.CLOUD_PROJECT_NUMBER = NumericField("cloudProjectNumber", "cloudProjectNumber") +Google.GOOGLE_PROJECT_NUMBER = NumericField( + "googleProjectNumber", "googleProjectNumber" +) Google.GOOGLE_LOCATION = KeywordField("googleLocation", "googleLocation") Google.GOOGLE_LOCATION_TYPE = KeywordField("googleLocationType", "googleLocationType") Google.GOOGLE_LABELS = KeywordField("googleLabels", "googleLabels") diff --git a/pyatlan_v9/model/assets/incident.py b/pyatlan_v9/model/assets/incident.py index 9f122b04a..03e80bc82 100644 --- a/pyatlan_v9/model/assets/incident.py +++ b/pyatlan_v9/model/assets/incident.py @@ -60,7 +60,7 @@ class Incident(Referenceable): Base class for Incident assets. """ - ASSET_SEVERITY: ClassVar[Any] = None + INCIDENT_SEVERITY: ClassVar[Any] = None NAME: ClassVar[Any] = None DISPLAY_NAME: ClassVar[Any] = None DESCRIPTION: ClassVar[Any] = None @@ -286,7 +286,7 @@ class Incident(Referenceable): SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None SODA_CHECKS: ClassVar[Any] = None - asset_severity: Union[str, None, UnsetType] = UNSET + incident_severity: Union[str, None, UnsetType] = UNSET """Status of this asset's severity.""" name: Union[str, None, UnsetType] = UNSET @@ -1197,7 +1197,7 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> Incident: class IncidentAttributes(ReferenceableAttributes): """Incident-specific attributes for nested API format.""" - asset_severity: Union[str, None, UnsetType] = UNSET + incident_severity: Union[str, None, UnsetType] = UNSET """Status of this asset's severity.""" name: Union[str, None, UnsetType] = UNSET @@ -2043,7 +2043,7 @@ class IncidentNested(ReferenceableNested): def _populate_incident_attrs(attrs: IncidentAttributes, obj: Incident) -> None: """Populate Incident-specific attributes on the attrs struct.""" _populate_referenceable_attrs(attrs, obj) - attrs.asset_severity = obj.asset_severity + attrs.incident_severity = obj.incident_severity attrs.name = obj.name attrs.display_name = obj.display_name attrs.description = obj.description @@ -2304,7 +2304,7 @@ def _populate_incident_attrs(attrs: IncidentAttributes, obj: Incident) -> None: def _extract_incident_attrs(attrs: IncidentAttributes) -> dict: """Extract all Incident attributes from the attrs struct into a flat dict.""" result = _extract_referenceable_attrs(attrs) - result["asset_severity"] = attrs.asset_severity + result["incident_severity"] = attrs.incident_severity result["name"] = attrs.name result["display_name"] = attrs.display_name result["description"] = attrs.description @@ -2710,7 +2710,7 @@ def _incident_from_nested_bytes(data: bytes, serde: Serde) -> Incident: TextField, ) -Incident.ASSET_SEVERITY = KeywordField("assetSeverity", "assetSeverity") +Incident.INCIDENT_SEVERITY = KeywordField("incidentSeverity", "incidentSeverity") Incident.NAME = KeywordField("name", "name") Incident.DISPLAY_NAME = KeywordField("displayName", "displayName") Incident.DESCRIPTION = KeywordField("description", "description") diff --git a/pyatlan_v9/model/assets/kafka_related.py b/pyatlan_v9/model/assets/kafka_related.py index 77abccb10..870dd7f14 100644 --- a/pyatlan_v9/model/assets/kafka_related.py +++ b/pyatlan_v9/model/assets/kafka_related.py @@ -250,7 +250,7 @@ class RelatedAzureEventHub(RelatedKafka): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "AzureEventHub" so it serializes correctly - kafka_status: Union[str, None, UnsetType] = UNSET + azure_event_hub_status: Union[str, None, UnsetType] = UNSET """Operational status of the Azure Event Hub at the source.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/looker_related.py b/pyatlan_v9/model/assets/looker_related.py index 597d53784..9466b52f9 100644 --- a/pyatlan_v9/model/assets/looker_related.py +++ b/pyatlan_v9/model/assets/looker_related.py @@ -137,7 +137,7 @@ class RelatedLookerView(RelatedLooker): looker_view_file_path: Union[str, None, UnsetType] = UNSET """File path of this view within the project.""" - looker_file_name: Union[str, None, UnsetType] = UNSET + looker_view_file_name: Union[str, None, UnsetType] = UNSET """File name of this view.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/looker_view.py b/pyatlan_v9/model/assets/looker_view.py index 60d5e8f6f..2a8250b57 100644 --- a/pyatlan_v9/model/assets/looker_view.py +++ b/pyatlan_v9/model/assets/looker_view.py @@ -69,7 +69,7 @@ class LookerView(Asset): PROJECT_NAME: ClassVar[Any] = None LOOKER_VIEW_FILE_PATH: ClassVar[Any] = None - LOOKER_FILE_NAME: ClassVar[Any] = None + LOOKER_VIEW_FILE_NAME: ClassVar[Any] = None LOOKER_SLUG: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None @@ -114,7 +114,7 @@ class LookerView(Asset): looker_view_file_path: Union[str, None, UnsetType] = UNSET """File path of this view within the project.""" - looker_file_name: Union[str, None, UnsetType] = UNSET + looker_view_file_name: Union[str, None, UnsetType] = UNSET """File name of this view.""" looker_slug: Union[str, None, UnsetType] = UNSET @@ -376,7 +376,7 @@ class LookerViewAttributes(AssetAttributes): looker_view_file_path: Union[str, None, UnsetType] = UNSET """File path of this view within the project.""" - looker_file_name: Union[str, None, UnsetType] = UNSET + looker_view_file_name: Union[str, None, UnsetType] = UNSET """File name of this view.""" looker_slug: Union[str, None, UnsetType] = UNSET @@ -567,7 +567,7 @@ def _populate_looker_view_attrs(attrs: LookerViewAttributes, obj: LookerView) -> _populate_asset_attrs(attrs, obj) attrs.project_name = obj.project_name attrs.looker_view_file_path = obj.looker_view_file_path - attrs.looker_file_name = obj.looker_file_name + attrs.looker_view_file_name = obj.looker_view_file_name attrs.looker_slug = obj.looker_slug attrs.catalog_dataset_guid = obj.catalog_dataset_guid @@ -577,7 +577,7 @@ def _extract_looker_view_attrs(attrs: LookerViewAttributes) -> dict: result = _extract_asset_attrs(attrs) result["project_name"] = attrs.project_name result["looker_view_file_path"] = attrs.looker_view_file_path - result["looker_file_name"] = attrs.looker_file_name + result["looker_view_file_name"] = attrs.looker_view_file_name result["looker_slug"] = attrs.looker_slug result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -688,7 +688,9 @@ def _looker_view_from_nested_bytes(data: bytes, serde: Serde) -> LookerView: LookerView.LOOKER_VIEW_FILE_PATH = KeywordField( "lookerViewFilePath", "lookerViewFilePath" ) -LookerView.LOOKER_FILE_NAME = KeywordField("lookerFileName", "lookerFileName") +LookerView.LOOKER_VIEW_FILE_NAME = KeywordField( + "lookerViewFileName", "lookerViewFileName" +) LookerView.LOOKER_SLUG = KeywordField("lookerSlug", "lookerSlug") LookerView.CATALOG_DATASET_GUID = KeywordField( "catalogDatasetGuid", "catalogDatasetGuid" diff --git a/pyatlan_v9/model/assets/mongo_db_collection.py b/pyatlan_v9/model/assets/mongo_db_collection.py index ca3399e2d..0c6a6b716 100644 --- a/pyatlan_v9/model/assets/mongo_db_collection.py +++ b/pyatlan_v9/model/assets/mongo_db_collection.py @@ -87,16 +87,16 @@ class MongoDBCollection(Asset): """ MONGO_DB_COLLECTION_SUBTYPE: ClassVar[Any] = None - MONGO_DB_IS_CAPPED: ClassVar[Any] = None + MONGO_DB_COLLECTION_IS_CAPPED: ClassVar[Any] = None MONGO_DB_COLLECTION_TIME_FIELD: ClassVar[Any] = None - MONGO_DB_TIME_GRANULARITY: ClassVar[Any] = None - MONGO_DB_EXPIRE_AFTER_SECONDS: ClassVar[Any] = None - MONGO_DB_MAXIMUM_DOCUMENT_COUNT: ClassVar[Any] = None - MONGO_DB_MAX_SIZE: ClassVar[Any] = None - MONGO_DB_NUM_ORPHAN_DOCS: ClassVar[Any] = None - MONGO_DB_NUM_INDEXES: ClassVar[Any] = None - MONGO_DB_TOTAL_INDEX_SIZE: ClassVar[Any] = None - MONGO_DB_AVERAGE_OBJECT_SIZE: ClassVar[Any] = None + MONGO_DB_COLLECTION_TIME_GRANULARITY: ClassVar[Any] = None + MONGO_DB_COLLECTION_EXPIRE_AFTER_SECONDS: ClassVar[Any] = None + MONGO_DB_COLLECTION_MAXIMUM_DOCUMENT_COUNT: ClassVar[Any] = None + MONGO_DB_COLLECTION_MAX_SIZE: ClassVar[Any] = None + MONGO_DB_COLLECTION_NUM_ORPHAN_DOCS: ClassVar[Any] = None + MONGO_DB_COLLECTION_NUM_INDEXES: ClassVar[Any] = None + MONGO_DB_COLLECTION_TOTAL_INDEX_SIZE: ClassVar[Any] = None + MONGO_DB_COLLECTION_AVERAGE_OBJECT_SIZE: ClassVar[Any] = None MONGO_DB_COLLECTION_SCHEMA_DEFINITION: ClassVar[Any] = None NO_SQL_SCHEMA_DEFINITION: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None @@ -217,8 +217,8 @@ class MongoDBCollection(Asset): ) """Subtype of a MongoDB collection, for example: Capped, Time Series, etc.""" - mongo_db_is_capped: Union[bool, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBIsCapped" + mongo_db_collection_is_capped: Union[bool, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionIsCapped" ) """Whether the collection is capped (true) or not (false).""" @@ -227,43 +227,43 @@ class MongoDBCollection(Asset): ) """Name of the field containing the date in each time series document.""" - mongo_db_time_granularity: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBTimeGranularity" + mongo_db_collection_time_granularity: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionTimeGranularity" ) """Closest match to the time span between consecutive incoming measurements.""" - mongo_db_expire_after_seconds: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBExpireAfterSeconds" + mongo_db_collection_expire_after_seconds: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionExpireAfterSeconds") ) """Seconds after which documents in a time series collection or clustered collection expire.""" - mongo_db_maximum_document_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBMaximumDocumentCount" + mongo_db_collection_maximum_document_count: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionMaximumDocumentCount") ) """Maximum number of documents allowed in a capped collection.""" - mongo_db_max_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBMaxSize" + mongo_db_collection_max_size: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionMaxSize" ) """Maximum size allowed in a capped collection.""" - mongo_db_num_orphan_docs: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBNumOrphanDocs" + mongo_db_collection_num_orphan_docs: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionNumOrphanDocs" ) """Number of orphaned documents in the collection.""" - mongo_db_num_indexes: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBNumIndexes" + mongo_db_collection_num_indexes: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionNumIndexes" ) """Number of indexes on the collection.""" - mongo_db_total_index_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBTotalIndexSize" + mongo_db_collection_total_index_size: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionTotalIndexSize" ) """Total size of all indexes.""" - mongo_db_average_object_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBAverageObjectSize" + mongo_db_collection_average_object_size: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionAverageObjectSize") ) """Average size of an object in the collection.""" @@ -780,8 +780,8 @@ class MongoDBCollectionAttributes(AssetAttributes): ) """Subtype of a MongoDB collection, for example: Capped, Time Series, etc.""" - mongo_db_is_capped: Union[bool, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBIsCapped" + mongo_db_collection_is_capped: Union[bool, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionIsCapped" ) """Whether the collection is capped (true) or not (false).""" @@ -790,43 +790,43 @@ class MongoDBCollectionAttributes(AssetAttributes): ) """Name of the field containing the date in each time series document.""" - mongo_db_time_granularity: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBTimeGranularity" + mongo_db_collection_time_granularity: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionTimeGranularity" ) """Closest match to the time span between consecutive incoming measurements.""" - mongo_db_expire_after_seconds: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBExpireAfterSeconds" + mongo_db_collection_expire_after_seconds: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionExpireAfterSeconds") ) """Seconds after which documents in a time series collection or clustered collection expire.""" - mongo_db_maximum_document_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBMaximumDocumentCount" + mongo_db_collection_maximum_document_count: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionMaximumDocumentCount") ) """Maximum number of documents allowed in a capped collection.""" - mongo_db_max_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBMaxSize" + mongo_db_collection_max_size: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionMaxSize" ) """Maximum size allowed in a capped collection.""" - mongo_db_num_orphan_docs: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBNumOrphanDocs" + mongo_db_collection_num_orphan_docs: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionNumOrphanDocs" ) """Number of orphaned documents in the collection.""" - mongo_db_num_indexes: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBNumIndexes" + mongo_db_collection_num_indexes: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionNumIndexes" ) """Number of indexes on the collection.""" - mongo_db_total_index_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBTotalIndexSize" + mongo_db_collection_total_index_size: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionTotalIndexSize" ) """Total size of all indexes.""" - mongo_db_average_object_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBAverageObjectSize" + mongo_db_collection_average_object_size: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionAverageObjectSize") ) """Average size of an object in the collection.""" @@ -1288,16 +1288,26 @@ def _populate_mongo_db_collection_attrs( """Populate MongoDBCollection-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) attrs.mongo_db_collection_subtype = obj.mongo_db_collection_subtype - attrs.mongo_db_is_capped = obj.mongo_db_is_capped + attrs.mongo_db_collection_is_capped = obj.mongo_db_collection_is_capped attrs.mongo_db_collection_time_field = obj.mongo_db_collection_time_field - attrs.mongo_db_time_granularity = obj.mongo_db_time_granularity - attrs.mongo_db_expire_after_seconds = obj.mongo_db_expire_after_seconds - attrs.mongo_db_maximum_document_count = obj.mongo_db_maximum_document_count - attrs.mongo_db_max_size = obj.mongo_db_max_size - attrs.mongo_db_num_orphan_docs = obj.mongo_db_num_orphan_docs - attrs.mongo_db_num_indexes = obj.mongo_db_num_indexes - attrs.mongo_db_total_index_size = obj.mongo_db_total_index_size - attrs.mongo_db_average_object_size = obj.mongo_db_average_object_size + attrs.mongo_db_collection_time_granularity = ( + obj.mongo_db_collection_time_granularity + ) + attrs.mongo_db_collection_expire_after_seconds = ( + obj.mongo_db_collection_expire_after_seconds + ) + attrs.mongo_db_collection_maximum_document_count = ( + obj.mongo_db_collection_maximum_document_count + ) + attrs.mongo_db_collection_max_size = obj.mongo_db_collection_max_size + attrs.mongo_db_collection_num_orphan_docs = obj.mongo_db_collection_num_orphan_docs + attrs.mongo_db_collection_num_indexes = obj.mongo_db_collection_num_indexes + attrs.mongo_db_collection_total_index_size = ( + obj.mongo_db_collection_total_index_size + ) + attrs.mongo_db_collection_average_object_size = ( + obj.mongo_db_collection_average_object_size + ) attrs.mongo_db_collection_schema_definition = ( obj.mongo_db_collection_schema_definition ) @@ -1373,16 +1383,28 @@ def _extract_mongo_db_collection_attrs(attrs: MongoDBCollectionAttributes) -> di """Extract all MongoDBCollection attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) result["mongo_db_collection_subtype"] = attrs.mongo_db_collection_subtype - result["mongo_db_is_capped"] = attrs.mongo_db_is_capped + result["mongo_db_collection_is_capped"] = attrs.mongo_db_collection_is_capped result["mongo_db_collection_time_field"] = attrs.mongo_db_collection_time_field - result["mongo_db_time_granularity"] = attrs.mongo_db_time_granularity - result["mongo_db_expire_after_seconds"] = attrs.mongo_db_expire_after_seconds - result["mongo_db_maximum_document_count"] = attrs.mongo_db_maximum_document_count - result["mongo_db_max_size"] = attrs.mongo_db_max_size - result["mongo_db_num_orphan_docs"] = attrs.mongo_db_num_orphan_docs - result["mongo_db_num_indexes"] = attrs.mongo_db_num_indexes - result["mongo_db_total_index_size"] = attrs.mongo_db_total_index_size - result["mongo_db_average_object_size"] = attrs.mongo_db_average_object_size + result["mongo_db_collection_time_granularity"] = ( + attrs.mongo_db_collection_time_granularity + ) + result["mongo_db_collection_expire_after_seconds"] = ( + attrs.mongo_db_collection_expire_after_seconds + ) + result["mongo_db_collection_maximum_document_count"] = ( + attrs.mongo_db_collection_maximum_document_count + ) + result["mongo_db_collection_max_size"] = attrs.mongo_db_collection_max_size + result["mongo_db_collection_num_orphan_docs"] = ( + attrs.mongo_db_collection_num_orphan_docs + ) + result["mongo_db_collection_num_indexes"] = attrs.mongo_db_collection_num_indexes + result["mongo_db_collection_total_index_size"] = ( + attrs.mongo_db_collection_total_index_size + ) + result["mongo_db_collection_average_object_size"] = ( + attrs.mongo_db_collection_average_object_size + ) result["mongo_db_collection_schema_definition"] = ( attrs.mongo_db_collection_schema_definition ) @@ -1585,33 +1607,35 @@ def _mongo_db_collection_from_nested_bytes( "mongoDBCollectionSubtype", "mongoDBCollectionSubtype.text", ) -MongoDBCollection.MONGO_DB_IS_CAPPED = BooleanField( - "mongoDBIsCapped", "mongoDBIsCapped" +MongoDBCollection.MONGO_DB_COLLECTION_IS_CAPPED = BooleanField( + "mongoDBCollectionIsCapped", "mongoDBCollectionIsCapped" ) MongoDBCollection.MONGO_DB_COLLECTION_TIME_FIELD = KeywordField( "mongoDBCollectionTimeField", "mongoDBCollectionTimeField" ) -MongoDBCollection.MONGO_DB_TIME_GRANULARITY = KeywordField( - "mongoDBTimeGranularity", "mongoDBTimeGranularity" +MongoDBCollection.MONGO_DB_COLLECTION_TIME_GRANULARITY = KeywordField( + "mongoDBCollectionTimeGranularity", "mongoDBCollectionTimeGranularity" +) +MongoDBCollection.MONGO_DB_COLLECTION_EXPIRE_AFTER_SECONDS = NumericField( + "mongoDBCollectionExpireAfterSeconds", "mongoDBCollectionExpireAfterSeconds" ) -MongoDBCollection.MONGO_DB_EXPIRE_AFTER_SECONDS = NumericField( - "mongoDBExpireAfterSeconds", "mongoDBExpireAfterSeconds" +MongoDBCollection.MONGO_DB_COLLECTION_MAXIMUM_DOCUMENT_COUNT = NumericField( + "mongoDBCollectionMaximumDocumentCount", "mongoDBCollectionMaximumDocumentCount" ) -MongoDBCollection.MONGO_DB_MAXIMUM_DOCUMENT_COUNT = NumericField( - "mongoDBMaximumDocumentCount", "mongoDBMaximumDocumentCount" +MongoDBCollection.MONGO_DB_COLLECTION_MAX_SIZE = NumericField( + "mongoDBCollectionMaxSize", "mongoDBCollectionMaxSize" ) -MongoDBCollection.MONGO_DB_MAX_SIZE = NumericField("mongoDBMaxSize", "mongoDBMaxSize") -MongoDBCollection.MONGO_DB_NUM_ORPHAN_DOCS = NumericField( - "mongoDBNumOrphanDocs", "mongoDBNumOrphanDocs" +MongoDBCollection.MONGO_DB_COLLECTION_NUM_ORPHAN_DOCS = NumericField( + "mongoDBCollectionNumOrphanDocs", "mongoDBCollectionNumOrphanDocs" ) -MongoDBCollection.MONGO_DB_NUM_INDEXES = NumericField( - "mongoDBNumIndexes", "mongoDBNumIndexes" +MongoDBCollection.MONGO_DB_COLLECTION_NUM_INDEXES = NumericField( + "mongoDBCollectionNumIndexes", "mongoDBCollectionNumIndexes" ) -MongoDBCollection.MONGO_DB_TOTAL_INDEX_SIZE = NumericField( - "mongoDBTotalIndexSize", "mongoDBTotalIndexSize" +MongoDBCollection.MONGO_DB_COLLECTION_TOTAL_INDEX_SIZE = NumericField( + "mongoDBCollectionTotalIndexSize", "mongoDBCollectionTotalIndexSize" ) -MongoDBCollection.MONGO_DB_AVERAGE_OBJECT_SIZE = NumericField( - "mongoDBAverageObjectSize", "mongoDBAverageObjectSize" +MongoDBCollection.MONGO_DB_COLLECTION_AVERAGE_OBJECT_SIZE = NumericField( + "mongoDBCollectionAverageObjectSize", "mongoDBCollectionAverageObjectSize" ) MongoDBCollection.MONGO_DB_COLLECTION_SCHEMA_DEFINITION = KeywordField( "mongoDBCollectionSchemaDefinition", "mongoDBCollectionSchemaDefinition" diff --git a/pyatlan_v9/model/assets/mongo_db_related.py b/pyatlan_v9/model/assets/mongo_db_related.py index 401326a4b..c923dc576 100644 --- a/pyatlan_v9/model/assets/mongo_db_related.py +++ b/pyatlan_v9/model/assets/mongo_db_related.py @@ -78,8 +78,8 @@ class RelatedMongoDBCollection(RelatedMongoDB): ) """Subtype of a MongoDB collection, for example: Capped, Time Series, etc.""" - mongo_db_is_capped: Union[bool, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBIsCapped" + mongo_db_collection_is_capped: Union[bool, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionIsCapped" ) """Whether the collection is capped (true) or not (false).""" @@ -88,43 +88,43 @@ class RelatedMongoDBCollection(RelatedMongoDB): ) """Name of the field containing the date in each time series document.""" - mongo_db_time_granularity: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBTimeGranularity" + mongo_db_collection_time_granularity: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionTimeGranularity" ) """Closest match to the time span between consecutive incoming measurements.""" - mongo_db_expire_after_seconds: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBExpireAfterSeconds" + mongo_db_collection_expire_after_seconds: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionExpireAfterSeconds") ) """Seconds after which documents in a time series collection or clustered collection expire.""" - mongo_db_maximum_document_count: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBMaximumDocumentCount" + mongo_db_collection_maximum_document_count: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionMaximumDocumentCount") ) """Maximum number of documents allowed in a capped collection.""" - mongo_db_max_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBMaxSize" + mongo_db_collection_max_size: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionMaxSize" ) """Maximum size allowed in a capped collection.""" - mongo_db_num_orphan_docs: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBNumOrphanDocs" + mongo_db_collection_num_orphan_docs: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionNumOrphanDocs" ) """Number of orphaned documents in the collection.""" - mongo_db_num_indexes: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBNumIndexes" + mongo_db_collection_num_indexes: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionNumIndexes" ) """Number of indexes on the collection.""" - mongo_db_total_index_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBTotalIndexSize" + mongo_db_collection_total_index_size: Union[int, None, UnsetType] = msgspec.field( + default=UNSET, name="mongoDBCollectionTotalIndexSize" ) """Total size of all indexes.""" - mongo_db_average_object_size: Union[int, None, UnsetType] = msgspec.field( - default=UNSET, name="mongoDBAverageObjectSize" + mongo_db_collection_average_object_size: Union[int, None, UnsetType] = ( + msgspec.field(default=UNSET, name="mongoDBCollectionAverageObjectSize") ) """Average size of an object in the collection.""" diff --git a/pyatlan_v9/model/assets/multi_dimensional_dataset.py b/pyatlan_v9/model/assets/multi_dimensional_dataset.py index d627abbb4..413cf4d3a 100644 --- a/pyatlan_v9/model/assets/multi_dimensional_dataset.py +++ b/pyatlan_v9/model/assets/multi_dimensional_dataset.py @@ -38,7 +38,7 @@ _populate_asset_attrs, ) from .context_related import RelatedContextRepository -from .cube_related import RelatedCubeDimension, RelatedMultiDimensionalDataset +from .cube_related import RelatedMultiDimensionalDataset from .data_contract_related import RelatedDataContract from .data_mesh_related import RelatedDataProduct from .data_quality_related import RelatedDataQualityRule, RelatedMetric @@ -93,7 +93,6 @@ class MultiDimensionalDataset(Asset): KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None - CUBE_DIMENSIONS: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None INPUT_TO_PROCESSES: ClassVar[Any] = None @@ -195,9 +194,6 @@ class MultiDimensionalDataset(Asset): mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET """Partial fields contained in the asset.""" @@ -454,9 +450,6 @@ class MultiDimensionalDatasetRelationshipAttributes(AssetRelationshipAttributes) mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET """""" - cube_dimensions: Union[List[RelatedCubeDimension], None, UnsetType] = UNSET - """Individual dimensions contained in the cube.""" - partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET """Partial fields contained in the asset.""" @@ -542,7 +535,6 @@ class MultiDimensionalDatasetNested(AssetNested): "knowledge_linked_files", "mc_monitors", "mc_incidents", - "cube_dimensions", "partial_child_fields", "partial_child_objects", "input_to_processes", @@ -762,7 +754,6 @@ def _multi_dimensional_dataset_from_nested_bytes( MultiDimensionalDataset.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") MultiDimensionalDataset.MC_MONITORS = RelationField("mcMonitors") MultiDimensionalDataset.MC_INCIDENTS = RelationField("mcIncidents") -MultiDimensionalDataset.CUBE_DIMENSIONS = RelationField("cubeDimensions") MultiDimensionalDataset.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") MultiDimensionalDataset.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") MultiDimensionalDataset.INPUT_TO_PROCESSES = RelationField("inputToProcesses") diff --git a/pyatlan_v9/model/assets/notebook_related.py b/pyatlan_v9/model/assets/notebook_related.py index 93bf0ea75..04e7520db 100644 --- a/pyatlan_v9/model/assets/notebook_related.py +++ b/pyatlan_v9/model/assets/notebook_related.py @@ -11,6 +11,7 @@ from __future__ import annotations +from msgspec import UNSET from .catalog_related import RelatedCatalog from .referenceable_related import RelatedReferenceable diff --git a/pyatlan_v9/model/assets/orchestration_related.py b/pyatlan_v9/model/assets/orchestration_related.py index 9cf6b2771..83e6e46aa 100644 --- a/pyatlan_v9/model/assets/orchestration_related.py +++ b/pyatlan_v9/model/assets/orchestration_related.py @@ -11,5 +11,4 @@ from __future__ import annotations - __all__ = [] diff --git a/pyatlan_v9/model/assets/qlik_chart.py b/pyatlan_v9/model/assets/qlik_chart.py index 18cc09ecd..2e233bbd0 100644 --- a/pyatlan_v9/model/assets/qlik_chart.py +++ b/pyatlan_v9/model/assets/qlik_chart.py @@ -70,8 +70,8 @@ class QlikChart(Asset): QLIK_CHART_SUBTITLE: ClassVar[Any] = None QLIK_CHART_FOOTNOTE: ClassVar[Any] = None - QLIK_ORIENTATION: ClassVar[Any] = None - QLIK_TYPE: ClassVar[Any] = None + QLIK_CHART_ORIENTATION: ClassVar[Any] = None + QLIK_CHART_TYPE: ClassVar[Any] = None QLIK_ID: ClassVar[Any] = None QLIK_QRI: ClassVar[Any] = None QLIK_SPACE_ID: ClassVar[Any] = None @@ -123,10 +123,10 @@ class QlikChart(Asset): qlik_chart_footnote: Union[str, None, UnsetType] = UNSET """Footnote of this chart.""" - qlik_orientation: Union[str, None, UnsetType] = UNSET + qlik_chart_orientation: Union[str, None, UnsetType] = UNSET """Orientation of this chart.""" - qlik_type: Union[str, None, UnsetType] = UNSET + qlik_chart_type: Union[str, None, UnsetType] = UNSET """Subtype of this chart, for example: bar, graph, pie, etc.""" qlik_id: Union[str, None, UnsetType] = UNSET @@ -413,10 +413,10 @@ class QlikChartAttributes(AssetAttributes): qlik_chart_footnote: Union[str, None, UnsetType] = UNSET """Footnote of this chart.""" - qlik_orientation: Union[str, None, UnsetType] = UNSET + qlik_chart_orientation: Union[str, None, UnsetType] = UNSET """Orientation of this chart.""" - qlik_type: Union[str, None, UnsetType] = UNSET + qlik_chart_type: Union[str, None, UnsetType] = UNSET """Subtype of this chart, for example: bar, graph, pie, etc.""" qlik_id: Union[str, None, UnsetType] = UNSET @@ -628,8 +628,8 @@ def _populate_qlik_chart_attrs(attrs: QlikChartAttributes, obj: QlikChart) -> No _populate_asset_attrs(attrs, obj) attrs.qlik_chart_subtitle = obj.qlik_chart_subtitle attrs.qlik_chart_footnote = obj.qlik_chart_footnote - attrs.qlik_orientation = obj.qlik_orientation - attrs.qlik_type = obj.qlik_type + attrs.qlik_chart_orientation = obj.qlik_chart_orientation + attrs.qlik_chart_type = obj.qlik_chart_type attrs.qlik_id = obj.qlik_id attrs.qlik_qri = obj.qlik_qri attrs.qlik_space_id = obj.qlik_space_id @@ -646,8 +646,8 @@ def _extract_qlik_chart_attrs(attrs: QlikChartAttributes) -> dict: result = _extract_asset_attrs(attrs) result["qlik_chart_subtitle"] = attrs.qlik_chart_subtitle result["qlik_chart_footnote"] = attrs.qlik_chart_footnote - result["qlik_orientation"] = attrs.qlik_orientation - result["qlik_type"] = attrs.qlik_type + result["qlik_chart_orientation"] = attrs.qlik_chart_orientation + result["qlik_chart_type"] = attrs.qlik_chart_type result["qlik_id"] = attrs.qlik_id result["qlik_qri"] = attrs.qlik_qri result["qlik_space_id"] = attrs.qlik_space_id @@ -768,8 +768,10 @@ def _qlik_chart_from_nested_bytes(data: bytes, serde: Serde) -> QlikChart: QlikChart.QLIK_CHART_SUBTITLE = KeywordField("qlikChartSubtitle", "qlikChartSubtitle") QlikChart.QLIK_CHART_FOOTNOTE = KeywordField("qlikChartFootnote", "qlikChartFootnote") -QlikChart.QLIK_ORIENTATION = KeywordField("qlikOrientation", "qlikOrientation") -QlikChart.QLIK_TYPE = KeywordField("qlikType", "qlikType") +QlikChart.QLIK_CHART_ORIENTATION = KeywordField( + "qlikChartOrientation", "qlikChartOrientation" +) +QlikChart.QLIK_CHART_TYPE = KeywordField("qlikChartType", "qlikChartType") QlikChart.QLIK_ID = KeywordField("qlikId", "qlikId") QlikChart.QLIK_QRI = KeywordTextField("qlikQRI", "qlikQRI", "qlikQRI.text") QlikChart.QLIK_SPACE_ID = KeywordField("qlikSpaceId", "qlikSpaceId") diff --git a/pyatlan_v9/model/assets/qlik_related.py b/pyatlan_v9/model/assets/qlik_related.py index 05d715003..d42d323a6 100644 --- a/pyatlan_v9/model/assets/qlik_related.py +++ b/pyatlan_v9/model/assets/qlik_related.py @@ -87,10 +87,10 @@ class RelatedQlikChart(RelatedQlik): qlik_chart_footnote: Union[str, None, UnsetType] = UNSET """Footnote of this chart.""" - qlik_orientation: Union[str, None, UnsetType] = UNSET + qlik_chart_orientation: Union[str, None, UnsetType] = UNSET """Orientation of this chart.""" - qlik_type: Union[str, None, UnsetType] = UNSET + qlik_chart_type: Union[str, None, UnsetType] = UNSET """Subtype of this chart, for example: bar, graph, pie, etc.""" def __post_init__(self) -> None: @@ -109,7 +109,7 @@ class RelatedQlikSheet(RelatedQlik): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QlikSheet" so it serializes correctly - qlik_is_approved: Union[bool, None, UnsetType] = UNSET + qlik_sheet_is_approved: Union[bool, None, UnsetType] = UNSET """Whether this is approved (true) or not (false).""" def __post_init__(self) -> None: @@ -128,7 +128,7 @@ class RelatedQlikSpace(RelatedQlik): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QlikSpace" so it serializes correctly - qlik_type: Union[str, None, UnsetType] = UNSET + qlik_space_type: Union[str, None, UnsetType] = UNSET """Type of this space, for exmaple: Private, Shared, etc.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/qlik_sheet.py b/pyatlan_v9/model/assets/qlik_sheet.py index 040bcb798..1e0f104b3 100644 --- a/pyatlan_v9/model/assets/qlik_sheet.py +++ b/pyatlan_v9/model/assets/qlik_sheet.py @@ -73,7 +73,7 @@ class QlikSheet(Asset): Instance of a Qlik sheet in Atlan. """ - QLIK_IS_APPROVED: ClassVar[Any] = None + QLIK_SHEET_IS_APPROVED: ClassVar[Any] = None QLIK_ID: ClassVar[Any] = None QLIK_QRI: ClassVar[Any] = None QLIK_SPACE_ID: ClassVar[Any] = None @@ -120,7 +120,7 @@ class QlikSheet(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - qlik_is_approved: Union[bool, None, UnsetType] = UNSET + qlik_sheet_is_approved: Union[bool, None, UnsetType] = UNSET """Whether this is approved (true) or not (false).""" qlik_id: Union[str, None, UnsetType] = UNSET @@ -404,7 +404,7 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> QlikSheet: class QlikSheetAttributes(AssetAttributes): """QlikSheet-specific attributes for nested API format.""" - qlik_is_approved: Union[bool, None, UnsetType] = UNSET + qlik_sheet_is_approved: Union[bool, None, UnsetType] = UNSET """Whether this is approved (true) or not (false).""" qlik_id: Union[str, None, UnsetType] = UNSET @@ -618,7 +618,7 @@ class QlikSheetNested(AssetNested): def _populate_qlik_sheet_attrs(attrs: QlikSheetAttributes, obj: QlikSheet) -> None: """Populate QlikSheet-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.qlik_is_approved = obj.qlik_is_approved + attrs.qlik_sheet_is_approved = obj.qlik_sheet_is_approved attrs.qlik_id = obj.qlik_id attrs.qlik_qri = obj.qlik_qri attrs.qlik_space_id = obj.qlik_space_id @@ -633,7 +633,7 @@ def _populate_qlik_sheet_attrs(attrs: QlikSheetAttributes, obj: QlikSheet) -> No def _extract_qlik_sheet_attrs(attrs: QlikSheetAttributes) -> dict: """Extract all QlikSheet attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["qlik_is_approved"] = attrs.qlik_is_approved + result["qlik_sheet_is_approved"] = attrs.qlik_sheet_is_approved result["qlik_id"] = attrs.qlik_id result["qlik_qri"] = attrs.qlik_qri result["qlik_space_id"] = attrs.qlik_space_id @@ -752,7 +752,9 @@ def _qlik_sheet_from_nested_bytes(data: bytes, serde: Serde) -> QlikSheet: RelationField, ) -QlikSheet.QLIK_IS_APPROVED = BooleanField("qlikIsApproved", "qlikIsApproved") +QlikSheet.QLIK_SHEET_IS_APPROVED = BooleanField( + "qlikSheetIsApproved", "qlikSheetIsApproved" +) QlikSheet.QLIK_ID = KeywordField("qlikId", "qlikId") QlikSheet.QLIK_QRI = KeywordTextField("qlikQRI", "qlikQRI", "qlikQRI.text") QlikSheet.QLIK_SPACE_ID = KeywordField("qlikSpaceId", "qlikSpaceId") diff --git a/pyatlan_v9/model/assets/qlik_space.py b/pyatlan_v9/model/assets/qlik_space.py index edc24ab4a..ddaf6276b 100644 --- a/pyatlan_v9/model/assets/qlik_space.py +++ b/pyatlan_v9/model/assets/qlik_space.py @@ -67,7 +67,7 @@ class QlikSpace(Asset): Instance of a Qlik space in Atlan. """ - QLIK_TYPE: ClassVar[Any] = None + QLIK_SPACE_TYPE: ClassVar[Any] = None QLIK_ID: ClassVar[Any] = None QLIK_QRI: ClassVar[Any] = None QLIK_SPACE_ID: ClassVar[Any] = None @@ -113,7 +113,7 @@ class QlikSpace(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - qlik_type: Union[str, None, UnsetType] = UNSET + qlik_space_type: Union[str, None, UnsetType] = UNSET """Type of this space, for exmaple: Private, Shared, etc.""" qlik_id: Union[str, None, UnsetType] = UNSET @@ -376,7 +376,7 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> QlikSpace: class QlikSpaceAttributes(AssetAttributes): """QlikSpace-specific attributes for nested API format.""" - qlik_type: Union[str, None, UnsetType] = UNSET + qlik_space_type: Union[str, None, UnsetType] = UNSET """Type of this space, for exmaple: Private, Shared, etc.""" qlik_id: Union[str, None, UnsetType] = UNSET @@ -586,7 +586,7 @@ class QlikSpaceNested(AssetNested): def _populate_qlik_space_attrs(attrs: QlikSpaceAttributes, obj: QlikSpace) -> None: """Populate QlikSpace-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.qlik_type = obj.qlik_type + attrs.qlik_space_type = obj.qlik_space_type attrs.qlik_id = obj.qlik_id attrs.qlik_qri = obj.qlik_qri attrs.qlik_space_id = obj.qlik_space_id @@ -601,7 +601,7 @@ def _populate_qlik_space_attrs(attrs: QlikSpaceAttributes, obj: QlikSpace) -> No def _extract_qlik_space_attrs(attrs: QlikSpaceAttributes) -> dict: """Extract all QlikSpace attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["qlik_type"] = attrs.qlik_type + result["qlik_space_type"] = attrs.qlik_space_type result["qlik_id"] = attrs.qlik_id result["qlik_qri"] = attrs.qlik_qri result["qlik_space_id"] = attrs.qlik_space_id @@ -720,7 +720,7 @@ def _qlik_space_from_nested_bytes(data: bytes, serde: Serde) -> QlikSpace: RelationField, ) -QlikSpace.QLIK_TYPE = KeywordField("qlikType", "qlikType") +QlikSpace.QLIK_SPACE_TYPE = KeywordField("qlikSpaceType", "qlikSpaceType") QlikSpace.QLIK_ID = KeywordField("qlikId", "qlikId") QlikSpace.QLIK_QRI = KeywordTextField("qlikQRI", "qlikQRI", "qlikQRI.text") QlikSpace.QLIK_SPACE_ID = KeywordField("qlikSpaceId", "qlikSpaceId") diff --git a/pyatlan_v9/model/assets/quick_sight_analysis.py b/pyatlan_v9/model/assets/quick_sight_analysis.py index 0826c6785..fe4010a8a 100644 --- a/pyatlan_v9/model/assets/quick_sight_analysis.py +++ b/pyatlan_v9/model/assets/quick_sight_analysis.py @@ -72,7 +72,7 @@ class QuickSightAnalysis(Asset): Instance of a QuickSight analysis in Atlan. In QuickSight, you analyze and visualize your data in analyses, which can be published as a dashboard to share with others. """ - QUICK_SIGHT_STATUS: ClassVar[Any] = None + QUICK_SIGHT_ANALYSIS_STATUS: ClassVar[Any] = None QUICK_SIGHT_ANALYSIS_CALCULATED_FIELDS: ClassVar[Any] = None QUICK_SIGHT_ANALYSIS_PARAMETER_DECLARATIONS: ClassVar[Any] = None QUICK_SIGHT_ANALYSIS_FILTER_GROUPS: ClassVar[Any] = None @@ -116,7 +116,7 @@ class QuickSightAnalysis(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - quick_sight_status: Union[str, None, UnsetType] = UNSET + quick_sight_analysis_status: Union[str, None, UnsetType] = UNSET """Status of this analysis, for example: CREATION_IN_PROGRESS, UPDATE_SUCCESSFUL, etc.""" quick_sight_analysis_calculated_fields: Union[List[str], None, UnsetType] = UNSET @@ -430,7 +430,7 @@ def from_json( class QuickSightAnalysisAttributes(AssetAttributes): """QuickSightAnalysis-specific attributes for nested API format.""" - quick_sight_status: Union[str, None, UnsetType] = UNSET + quick_sight_analysis_status: Union[str, None, UnsetType] = UNSET """Status of this analysis, for example: CREATION_IN_PROGRESS, UPDATE_SUCCESSFUL, etc.""" quick_sight_analysis_calculated_fields: Union[List[str], None, UnsetType] = UNSET @@ -644,7 +644,7 @@ def _populate_quick_sight_analysis_attrs( ) -> None: """Populate QuickSightAnalysis-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.quick_sight_status = obj.quick_sight_status + attrs.quick_sight_analysis_status = obj.quick_sight_analysis_status attrs.quick_sight_analysis_calculated_fields = ( obj.quick_sight_analysis_calculated_fields ) @@ -661,7 +661,7 @@ def _populate_quick_sight_analysis_attrs( def _extract_quick_sight_analysis_attrs(attrs: QuickSightAnalysisAttributes) -> dict: """Extract all QuickSightAnalysis attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["quick_sight_status"] = attrs.quick_sight_status + result["quick_sight_analysis_status"] = attrs.quick_sight_analysis_status result["quick_sight_analysis_calculated_fields"] = ( attrs.quick_sight_analysis_calculated_fields ) @@ -795,8 +795,8 @@ def _quick_sight_analysis_from_nested_bytes( RelationField, ) -QuickSightAnalysis.QUICK_SIGHT_STATUS = KeywordField( - "quickSightStatus", "quickSightStatus" +QuickSightAnalysis.QUICK_SIGHT_ANALYSIS_STATUS = KeywordField( + "quickSightAnalysisStatus", "quickSightAnalysisStatus" ) QuickSightAnalysis.QUICK_SIGHT_ANALYSIS_CALCULATED_FIELDS = KeywordField( "quickSightAnalysisCalculatedFields", "quickSightAnalysisCalculatedFields" diff --git a/pyatlan_v9/model/assets/quick_sight_dashboard.py b/pyatlan_v9/model/assets/quick_sight_dashboard.py index da138306f..64d6bc684 100644 --- a/pyatlan_v9/model/assets/quick_sight_dashboard.py +++ b/pyatlan_v9/model/assets/quick_sight_dashboard.py @@ -72,8 +72,8 @@ class QuickSightDashboard(Asset): Instance of a QuickSight dashboard in Atlan. These are reports in QuickSight, created from analyses. """ - QUICK_SIGHT_PUBLISHED_VERSION_NUMBER: ClassVar[Any] = None - QUICK_SIGHT_LAST_PUBLISHED_TIME: ClassVar[Any] = None + QUICK_SIGHT_DASHBOARD_PUBLISHED_VERSION_NUMBER: ClassVar[Any] = None + QUICK_SIGHT_DASHBOARD_LAST_PUBLISHED_TIME: ClassVar[Any] = None QUICK_SIGHT_ID: ClassVar[Any] = None QUICK_SIGHT_SHEET_ID: ClassVar[Any] = None QUICK_SIGHT_SHEET_NAME: ClassVar[Any] = None @@ -114,10 +114,10 @@ class QuickSightDashboard(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - quick_sight_published_version_number: Union[int, None, UnsetType] = UNSET + quick_sight_dashboard_published_version_number: Union[int, None, UnsetType] = UNSET """Version number of the published dashboard.""" - quick_sight_last_published_time: Union[int, None, UnsetType] = UNSET + quick_sight_dashboard_last_published_time: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this dashboard was last published, in milliseconds.""" quick_sight_id: Union[str, None, UnsetType] = UNSET @@ -429,10 +429,10 @@ def from_json( class QuickSightDashboardAttributes(AssetAttributes): """QuickSightDashboard-specific attributes for nested API format.""" - quick_sight_published_version_number: Union[int, None, UnsetType] = UNSET + quick_sight_dashboard_published_version_number: Union[int, None, UnsetType] = UNSET """Version number of the published dashboard.""" - quick_sight_last_published_time: Union[int, None, UnsetType] = UNSET + quick_sight_dashboard_last_published_time: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this dashboard was last published, in milliseconds.""" quick_sight_id: Union[str, None, UnsetType] = UNSET @@ -635,10 +635,12 @@ def _populate_quick_sight_dashboard_attrs( ) -> None: """Populate QuickSightDashboard-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.quick_sight_published_version_number = ( - obj.quick_sight_published_version_number + attrs.quick_sight_dashboard_published_version_number = ( + obj.quick_sight_dashboard_published_version_number + ) + attrs.quick_sight_dashboard_last_published_time = ( + obj.quick_sight_dashboard_last_published_time ) - attrs.quick_sight_last_published_time = obj.quick_sight_last_published_time attrs.quick_sight_id = obj.quick_sight_id attrs.quick_sight_sheet_id = obj.quick_sight_sheet_id attrs.quick_sight_sheet_name = obj.quick_sight_sheet_name @@ -648,10 +650,12 @@ def _populate_quick_sight_dashboard_attrs( def _extract_quick_sight_dashboard_attrs(attrs: QuickSightDashboardAttributes) -> dict: """Extract all QuickSightDashboard attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["quick_sight_published_version_number"] = ( - attrs.quick_sight_published_version_number + result["quick_sight_dashboard_published_version_number"] = ( + attrs.quick_sight_dashboard_published_version_number + ) + result["quick_sight_dashboard_last_published_time"] = ( + attrs.quick_sight_dashboard_last_published_time ) - result["quick_sight_last_published_time"] = attrs.quick_sight_last_published_time result["quick_sight_id"] = attrs.quick_sight_id result["quick_sight_sheet_id"] = attrs.quick_sight_sheet_id result["quick_sight_sheet_name"] = attrs.quick_sight_sheet_name @@ -777,11 +781,12 @@ def _quick_sight_dashboard_from_nested_bytes( RelationField, ) -QuickSightDashboard.QUICK_SIGHT_PUBLISHED_VERSION_NUMBER = NumericField( - "quickSightPublishedVersionNumber", "quickSightPublishedVersionNumber" +QuickSightDashboard.QUICK_SIGHT_DASHBOARD_PUBLISHED_VERSION_NUMBER = NumericField( + "quickSightDashboardPublishedVersionNumber", + "quickSightDashboardPublishedVersionNumber", ) -QuickSightDashboard.QUICK_SIGHT_LAST_PUBLISHED_TIME = NumericField( - "quickSightLastPublishedTime", "quickSightLastPublishedTime" +QuickSightDashboard.QUICK_SIGHT_DASHBOARD_LAST_PUBLISHED_TIME = NumericField( + "quickSightDashboardLastPublishedTime", "quickSightDashboardLastPublishedTime" ) QuickSightDashboard.QUICK_SIGHT_ID = KeywordField("quickSightId", "quickSightId") QuickSightDashboard.QUICK_SIGHT_SHEET_ID = KeywordField( diff --git a/pyatlan_v9/model/assets/quick_sight_dataset.py b/pyatlan_v9/model/assets/quick_sight_dataset.py index f90e5cd6c..e7c585860 100644 --- a/pyatlan_v9/model/assets/quick_sight_dataset.py +++ b/pyatlan_v9/model/assets/quick_sight_dataset.py @@ -45,6 +45,7 @@ from .data_quality_related import RelatedDataQualityRule, RelatedMetric from .gcp_dataplex_related import RelatedGCPDataplexAspectType from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile from .model_related import RelatedModelAttribute, RelatedModelEntity from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .partial_related import RelatedPartialField, RelatedPartialObject @@ -94,6 +95,7 @@ class QuickSightDataset(Asset): DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None @@ -187,6 +189,9 @@ class QuickSightDataset(Asset): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -507,6 +512,9 @@ class QuickSightDatasetRelationshipAttributes(AssetRelationshipAttributes): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -605,6 +613,7 @@ class QuickSightDatasetNested(AssetNested): "dq_reference_dataset_rules", "gcp_dataplex_aspect_type_metadata_entities", "meanings", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "partial_child_fields", @@ -725,6 +734,7 @@ def _quick_sight_dataset_from_nested( updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -806,6 +816,7 @@ def _quick_sight_dataset_from_nested_bytes( "gcpDataplexAspectTypeMetadataEntities" ) QuickSightDataset.MEANINGS = RelationField("meanings") +QuickSightDataset.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") QuickSightDataset.MC_MONITORS = RelationField("mcMonitors") QuickSightDataset.MC_INCIDENTS = RelationField("mcIncidents") QuickSightDataset.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") diff --git a/pyatlan_v9/model/assets/quick_sight_dataset_field.py b/pyatlan_v9/model/assets/quick_sight_dataset_field.py index c4e833787..cdd63d29d 100644 --- a/pyatlan_v9/model/assets/quick_sight_dataset_field.py +++ b/pyatlan_v9/model/assets/quick_sight_dataset_field.py @@ -45,6 +45,7 @@ from .data_quality_related import RelatedDataQualityRule, RelatedMetric from .gcp_dataplex_related import RelatedGCPDataplexAspectType from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile from .model_related import RelatedModelAttribute, RelatedModelEntity from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .partial_related import RelatedPartialField, RelatedPartialObject @@ -90,6 +91,7 @@ class QuickSightDatasetField(Asset): DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None @@ -182,6 +184,9 @@ class QuickSightDatasetField(Asset): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -508,6 +513,9 @@ class QuickSightDatasetFieldRelationshipAttributes(AssetRelationshipAttributes): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -599,6 +607,7 @@ class QuickSightDatasetFieldNested(AssetNested): "dq_reference_dataset_rules", "gcp_dataplex_aspect_type_metadata_entities", "meanings", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "partial_child_fields", @@ -722,6 +731,7 @@ def _quick_sight_dataset_field_from_nested( updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -812,6 +822,7 @@ def _quick_sight_dataset_field_from_nested_bytes( "gcpDataplexAspectTypeMetadataEntities" ) QuickSightDatasetField.MEANINGS = RelationField("meanings") +QuickSightDatasetField.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") QuickSightDatasetField.MC_MONITORS = RelationField("mcMonitors") QuickSightDatasetField.MC_INCIDENTS = RelationField("mcIncidents") QuickSightDatasetField.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") diff --git a/pyatlan_v9/model/assets/quick_sight_folder.py b/pyatlan_v9/model/assets/quick_sight_folder.py index 27bdc7a3b..9cb53028f 100644 --- a/pyatlan_v9/model/assets/quick_sight_folder.py +++ b/pyatlan_v9/model/assets/quick_sight_folder.py @@ -44,6 +44,7 @@ from .data_quality_related import RelatedDataQualityRule, RelatedMetric from .gcp_dataplex_related import RelatedGCPDataplexAspectType from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile from .model_related import RelatedModelAttribute, RelatedModelEntity from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor from .partial_related import RelatedPartialField, RelatedPartialObject @@ -94,6 +95,7 @@ class QuickSightFolder(Asset): DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None MC_MONITORS: ClassVar[Any] = None MC_INCIDENTS: ClassVar[Any] = None PARTIAL_CHILD_FIELDS: ClassVar[Any] = None @@ -188,6 +190,9 @@ class QuickSightFolder(Asset): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -489,6 +494,9 @@ class QuickSightFolderRelationshipAttributes(AssetRelationshipAttributes): meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET """Glossary terms that are linked to this asset.""" + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET """Monitors that observe this asset.""" @@ -590,6 +598,7 @@ class QuickSightFolderNested(AssetNested): "dq_reference_dataset_rules", "gcp_dataplex_aspect_type_metadata_entities", "meanings", + "knowledge_linked_files", "mc_monitors", "mc_incidents", "partial_child_fields", @@ -709,6 +718,7 @@ def _quick_sight_folder_from_nested(nested: QuickSightFolderNested) -> QuickSigh updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -789,6 +799,7 @@ def _quick_sight_folder_from_nested_bytes( "gcpDataplexAspectTypeMetadataEntities" ) QuickSightFolder.MEANINGS = RelationField("meanings") +QuickSightFolder.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") QuickSightFolder.MC_MONITORS = RelationField("mcMonitors") QuickSightFolder.MC_INCIDENTS = RelationField("mcIncidents") QuickSightFolder.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") diff --git a/pyatlan_v9/model/assets/quick_sight_related.py b/pyatlan_v9/model/assets/quick_sight_related.py index 682203b50..ad0ccfb40 100644 --- a/pyatlan_v9/model/assets/quick_sight_related.py +++ b/pyatlan_v9/model/assets/quick_sight_related.py @@ -84,10 +84,10 @@ class RelatedQuickSightDataset(RelatedQuickSight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QuickSightDataset" so it serializes correctly - quick_sight_import_mode: Union[str, None, UnsetType] = UNSET + quick_sight_dataset_import_mode: Union[str, None, UnsetType] = UNSET """Import mode for this dataset, for example: SPICE or DIRECT_QUERY.""" - quick_sight_column_count: Union[int, None, UnsetType] = UNSET + quick_sight_dataset_column_count: Union[int, None, UnsetType] = UNSET """Number of columns present in this dataset.""" def __post_init__(self) -> None: @@ -106,7 +106,7 @@ class RelatedQuickSightDatasetField(RelatedQuickSight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QuickSightDatasetField" so it serializes correctly - quick_sight_type: Union[str, None, UnsetType] = UNSET + quick_sight_dataset_field_type: Union[str, None, UnsetType] = UNSET """Datatype of this field, for example: STRING, INTEGER, etc.""" quick_sight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET @@ -128,7 +128,7 @@ class RelatedQuickSightFolder(RelatedQuickSight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QuickSightFolder" so it serializes correctly - quick_sight_type: Union[str, None, UnsetType] = UNSET + quick_sight_folder_type: Union[str, None, UnsetType] = UNSET """Type of this folder, for example: SHARED or RESTRICTED.""" quick_sight_folder_hierarchy: Union[List[Dict[str, str]], None, UnsetType] = UNSET @@ -150,7 +150,7 @@ class RelatedQuickSightAnalysis(RelatedQuickSight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QuickSightAnalysis" so it serializes correctly - quick_sight_status: Union[str, None, UnsetType] = UNSET + quick_sight_analysis_status: Union[str, None, UnsetType] = UNSET """Status of this analysis, for example: CREATION_IN_PROGRESS, UPDATE_SUCCESSFUL, etc.""" quick_sight_analysis_calculated_fields: Union[List[str], None, UnsetType] = UNSET @@ -199,10 +199,10 @@ class RelatedQuickSightDashboard(RelatedQuickSight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "QuickSightDashboard" so it serializes correctly - quick_sight_published_version_number: Union[int, None, UnsetType] = UNSET + quick_sight_dashboard_published_version_number: Union[int, None, UnsetType] = UNSET """Version number of the published dashboard.""" - quick_sight_last_published_time: Union[int, None, UnsetType] = UNSET + quick_sight_dashboard_last_published_time: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this dashboard was last published, in milliseconds.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/referenceable.py b/pyatlan_v9/model/assets/referenceable.py index ff643b5ff..0a423415c 100644 --- a/pyatlan_v9/model/assets/referenceable.py +++ b/pyatlan_v9/model/assets/referenceable.py @@ -33,7 +33,7 @@ ) from pyatlan_v9.model.serde import Serde, get_serde -from .entity import AtlasClassification, Entity +from .entity import Entity from .gtc_related import RelatedAtlasGlossaryTerm from .referenceable_related import RelatedReferenceable @@ -295,7 +295,7 @@ class ReferenceableNested( update_time: Union[Any, UnsetType] = UNSET created_by: Union[Any, UnsetType] = UNSET updated_by: Union[Any, UnsetType] = UNSET - classifications: Union[List[AtlasClassification], None, UnsetType] = UNSET + classifications: Union[Any, UnsetType] = UNSET classification_names: Union[Any, UnsetType] = UNSET meanings: Union[Any, UnsetType] = UNSET labels: Union[Any, UnsetType] = UNSET @@ -420,6 +420,7 @@ def _referenceable_from_nested(nested: ReferenceableNested) -> Referenceable: updated_by=nested.updated_by, classifications=nested.classifications, classification_names=nested.classification_names, + meanings=nested.meanings, labels=nested.labels, business_attributes=nested.business_attributes, custom_attributes=nested.custom_attributes, @@ -461,46 +462,6 @@ def _referenceable_from_nested_bytes(data: bytes, serde: Serde) -> Referenceable Referenceable.MEANINGS = RelationField("meanings") Referenceable.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") Referenceable.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") -# --------------------------------------------------------------------------- -# Referenceable internal field descriptors (entity-level, not in typedef) -# --------------------------------------------------------------------------- - -Referenceable.STATUS = InternalKeywordField("status", "__state", "__state") -Referenceable.GUID = InternalKeywordField("guid", "__guid", "__guid") -Referenceable.TYPE_NAME = InternalKeywordTextField( - "typeName", "__typeName.keyword", "__typeName", "__typeName" -) -Referenceable.CREATED_BY = InternalKeywordField( - "createdBy", "__createdBy", "__createdBy" -) -Referenceable.UPDATED_BY = InternalKeywordField( - "updatedBy", "__modifiedBy", "__modifiedBy" -) -Referenceable.ATLAN_TAGS = InternalKeywordTextField( - "classificationNames", - "__traitNames", - "__classificationsText", - "__classificationNames", -) -Referenceable.PROPAGATED_ATLAN_TAGS = InternalKeywordTextField( - "classificationNames", - "__propagatedTraitNames", - "__classificationsText", - "__propagatedClassificationNames", -) -Referenceable.ASSIGNED_TERMS = InternalKeywordTextField( - "meanings", "__meanings", "__meaningsText", "__meanings" -) -Referenceable.SUPER_TYPE_NAMES = InternalKeywordTextField( - "typeName", "__superTypeNames.keyword", "__superTypeNames", "__superTypeNames" -) -Referenceable.CREATE_TIME = InternalNumericField( - "createTime", "__timestamp", "__timestamp" -) -Referenceable.UPDATE_TIME = InternalNumericField( - "updateTime", "__modificationTimestamp", "__modificationTimestamp" -) -Referenceable.CUSTOM_ATTRIBUTES = TextField("customAttributes", "customAttributes") Referenceable.TYPE_NAME = InternalKeywordTextField( "typeName", "__typeName.keyword", "__typeName", "__typeName" diff --git a/pyatlan_v9/model/assets/sage_maker_feature.py b/pyatlan_v9/model/assets/sage_maker_feature.py index f0c35fac0..1935c4782 100644 --- a/pyatlan_v9/model/assets/sage_maker_feature.py +++ b/pyatlan_v9/model/assets/sage_maker_feature.py @@ -68,10 +68,10 @@ class SageMakerFeature(Asset): Instance of a SageMaker Feature in Atlan. Represents an individual feature within a Feature Group, including its data type and metadata. """ - SAGE_MAKER_GROUP_NAME: ClassVar[Any] = None - SAGE_MAKER_GROUP_QUALIFIED_NAME: ClassVar[Any] = None - SAGE_MAKER_DATA_TYPE: ClassVar[Any] = None - SAGE_MAKER_IS_RECORD_IDENTIFIER: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_NAME: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_QUALIFIED_NAME: ClassVar[Any] = None + SAGE_MAKER_FEATURE_DATA_TYPE: ClassVar[Any] = None + SAGE_MAKER_FEATURE_IS_RECORD_IDENTIFIER: ClassVar[Any] = None SAGE_MAKER_S3_URI: ClassVar[Any] = None ETHICAL_AI_PRIVACY_CONFIG: ClassVar[Any] = None ETHICAL_AI_FAIRNESS_CONFIG: ClassVar[Any] = None @@ -126,16 +126,16 @@ class SageMakerFeature(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sage_maker_group_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_name: Union[str, None, UnsetType] = UNSET """Name of the Feature Group that contains this feature.""" - sage_maker_group_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the Feature Group that contains this feature.""" - sage_maker_data_type: Union[str, None, UnsetType] = UNSET + sage_maker_feature_data_type: Union[str, None, UnsetType] = UNSET """Data type of the feature (e.g., String, Integral, Fractional).""" - sage_maker_is_record_identifier: Union[bool, None, UnsetType] = UNSET + sage_maker_feature_is_record_identifier: Union[bool, None, UnsetType] = UNSET """Whether this feature serves as the record identifier for the Feature Group.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -366,6 +366,12 @@ def validate(self, for_creation: bool = False) -> None: errors.append("connection_qualified_name is required for creation") if self.sage_maker_feature_group is UNSET: errors.append("sage_maker_feature_group is required for creation") + if self.sage_maker_feature_group_name is UNSET: + errors.append("sage_maker_feature_group_name is required for creation") + if self.sage_maker_feature_group_qualified_name is UNSET: + errors.append( + "sage_maker_feature_group_qualified_name is required for creation" + ) if errors: raise ValueError(f"SageMakerFeature validation failed: {errors}") @@ -455,16 +461,16 @@ def from_json( class SageMakerFeatureAttributes(AssetAttributes): """SageMakerFeature-specific attributes for nested API format.""" - sage_maker_group_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_name: Union[str, None, UnsetType] = UNSET """Name of the Feature Group that contains this feature.""" - sage_maker_group_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the Feature Group that contains this feature.""" - sage_maker_data_type: Union[str, None, UnsetType] = UNSET + sage_maker_feature_data_type: Union[str, None, UnsetType] = UNSET """Data type of the feature (e.g., String, Integral, Fractional).""" - sage_maker_is_record_identifier: Union[bool, None, UnsetType] = UNSET + sage_maker_feature_is_record_identifier: Union[bool, None, UnsetType] = UNSET """Whether this feature serves as the record identifier for the Feature Group.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -720,10 +726,14 @@ def _populate_sage_maker_feature_attrs( ) -> None: """Populate SageMakerFeature-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sage_maker_group_name = obj.sage_maker_group_name - attrs.sage_maker_group_qualified_name = obj.sage_maker_group_qualified_name - attrs.sage_maker_data_type = obj.sage_maker_data_type - attrs.sage_maker_is_record_identifier = obj.sage_maker_is_record_identifier + attrs.sage_maker_feature_group_name = obj.sage_maker_feature_group_name + attrs.sage_maker_feature_group_qualified_name = ( + obj.sage_maker_feature_group_qualified_name + ) + attrs.sage_maker_feature_data_type = obj.sage_maker_feature_data_type + attrs.sage_maker_feature_is_record_identifier = ( + obj.sage_maker_feature_is_record_identifier + ) attrs.sage_maker_s3_uri = obj.sage_maker_s3_uri attrs.ethical_ai_privacy_config = obj.ethical_ai_privacy_config attrs.ethical_ai_fairness_config = obj.ethical_ai_fairness_config @@ -752,10 +762,14 @@ def _populate_sage_maker_feature_attrs( def _extract_sage_maker_feature_attrs(attrs: SageMakerFeatureAttributes) -> dict: """Extract all SageMakerFeature attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sage_maker_group_name"] = attrs.sage_maker_group_name - result["sage_maker_group_qualified_name"] = attrs.sage_maker_group_qualified_name - result["sage_maker_data_type"] = attrs.sage_maker_data_type - result["sage_maker_is_record_identifier"] = attrs.sage_maker_is_record_identifier + result["sage_maker_feature_group_name"] = attrs.sage_maker_feature_group_name + result["sage_maker_feature_group_qualified_name"] = ( + attrs.sage_maker_feature_group_qualified_name + ) + result["sage_maker_feature_data_type"] = attrs.sage_maker_feature_data_type + result["sage_maker_feature_is_record_identifier"] = ( + attrs.sage_maker_feature_is_record_identifier + ) result["sage_maker_s3_uri"] = attrs.sage_maker_s3_uri result["ethical_ai_privacy_config"] = attrs.ethical_ai_privacy_config result["ethical_ai_fairness_config"] = attrs.ethical_ai_fairness_config @@ -900,17 +914,17 @@ def _sage_maker_feature_from_nested_bytes( RelationField, ) -SageMakerFeature.SAGE_MAKER_GROUP_NAME = KeywordField( - "sageMakerGroupName", "sageMakerGroupName" +SageMakerFeature.SAGE_MAKER_FEATURE_GROUP_NAME = KeywordField( + "sageMakerFeatureGroupName", "sageMakerFeatureGroupName" ) -SageMakerFeature.SAGE_MAKER_GROUP_QUALIFIED_NAME = KeywordField( - "sageMakerGroupQualifiedName", "sageMakerGroupQualifiedName" +SageMakerFeature.SAGE_MAKER_FEATURE_GROUP_QUALIFIED_NAME = KeywordField( + "sageMakerFeatureGroupQualifiedName", "sageMakerFeatureGroupQualifiedName" ) -SageMakerFeature.SAGE_MAKER_DATA_TYPE = KeywordField( - "sageMakerDataType", "sageMakerDataType" +SageMakerFeature.SAGE_MAKER_FEATURE_DATA_TYPE = KeywordField( + "sageMakerFeatureDataType", "sageMakerFeatureDataType" ) -SageMakerFeature.SAGE_MAKER_IS_RECORD_IDENTIFIER = BooleanField( - "sageMakerIsRecordIdentifier", "sageMakerIsRecordIdentifier" +SageMakerFeature.SAGE_MAKER_FEATURE_IS_RECORD_IDENTIFIER = BooleanField( + "sageMakerFeatureIsRecordIdentifier", "sageMakerFeatureIsRecordIdentifier" ) SageMakerFeature.SAGE_MAKER_S3_URI = KeywordField("sageMakerS3Uri", "sageMakerS3Uri") SageMakerFeature.ETHICAL_AI_PRIVACY_CONFIG = KeywordField( diff --git a/pyatlan_v9/model/assets/sage_maker_feature_group.py b/pyatlan_v9/model/assets/sage_maker_feature_group.py index ae6caf25c..288173374 100644 --- a/pyatlan_v9/model/assets/sage_maker_feature_group.py +++ b/pyatlan_v9/model/assets/sage_maker_feature_group.py @@ -67,11 +67,11 @@ class SageMakerFeatureGroup(Asset): Instance of a SageMaker Feature Store Feature Group in Atlan. Represents a collection of related features that can be used for machine learning training and inference. """ - SAGE_MAKER_STATUS: ClassVar[Any] = None - SAGE_MAKER_RECORD_ID_NAME: ClassVar[Any] = None - SAGE_MAKER_GLUE_DATABASE_NAME: ClassVar[Any] = None - SAGE_MAKER_GLUE_TABLE_NAME: ClassVar[Any] = None - SAGE_MAKER_FEATURE_COUNT: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_STATUS: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_RECORD_ID_NAME: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_GLUE_DATABASE_NAME: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_GLUE_TABLE_NAME: ClassVar[Any] = None + SAGE_MAKER_FEATURE_GROUP_FEATURE_COUNT: ClassVar[Any] = None SAGE_MAKER_S3_URI: ClassVar[Any] = None ETHICAL_AI_PRIVACY_CONFIG: ClassVar[Any] = None ETHICAL_AI_FAIRNESS_CONFIG: ClassVar[Any] = None @@ -126,19 +126,19 @@ class SageMakerFeatureGroup(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_status: Union[str, None, UnsetType] = UNSET """Current status of the Feature Group (e.g., Created, Creating, Failed).""" - sage_maker_record_id_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_record_id_name: Union[str, None, UnsetType] = UNSET """Name of the feature that serves as the record identifier.""" - sage_maker_glue_database_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_glue_database_name: Union[str, None, UnsetType] = UNSET """AWS Glue database name associated with this Feature Group.""" - sage_maker_glue_table_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_glue_table_name: Union[str, None, UnsetType] = UNSET """AWS Glue table name associated with this Feature Group.""" - sage_maker_feature_count: Union[int, None, UnsetType] = UNSET + sage_maker_feature_group_feature_count: Union[int, None, UnsetType] = UNSET """Number of features in this Feature Group.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -444,19 +444,19 @@ def from_json( class SageMakerFeatureGroupAttributes(AssetAttributes): """SageMakerFeatureGroup-specific attributes for nested API format.""" - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_status: Union[str, None, UnsetType] = UNSET """Current status of the Feature Group (e.g., Created, Creating, Failed).""" - sage_maker_record_id_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_record_id_name: Union[str, None, UnsetType] = UNSET """Name of the feature that serves as the record identifier.""" - sage_maker_glue_database_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_glue_database_name: Union[str, None, UnsetType] = UNSET """AWS Glue database name associated with this Feature Group.""" - sage_maker_glue_table_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_glue_table_name: Union[str, None, UnsetType] = UNSET """AWS Glue table name associated with this Feature Group.""" - sage_maker_feature_count: Union[int, None, UnsetType] = UNSET + sage_maker_feature_group_feature_count: Union[int, None, UnsetType] = UNSET """Number of features in this Feature Group.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -710,11 +710,19 @@ def _populate_sage_maker_feature_group_attrs( ) -> None: """Populate SageMakerFeatureGroup-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sage_maker_status = obj.sage_maker_status - attrs.sage_maker_record_id_name = obj.sage_maker_record_id_name - attrs.sage_maker_glue_database_name = obj.sage_maker_glue_database_name - attrs.sage_maker_glue_table_name = obj.sage_maker_glue_table_name - attrs.sage_maker_feature_count = obj.sage_maker_feature_count + attrs.sage_maker_feature_group_status = obj.sage_maker_feature_group_status + attrs.sage_maker_feature_group_record_id_name = ( + obj.sage_maker_feature_group_record_id_name + ) + attrs.sage_maker_feature_group_glue_database_name = ( + obj.sage_maker_feature_group_glue_database_name + ) + attrs.sage_maker_feature_group_glue_table_name = ( + obj.sage_maker_feature_group_glue_table_name + ) + attrs.sage_maker_feature_group_feature_count = ( + obj.sage_maker_feature_group_feature_count + ) attrs.sage_maker_s3_uri = obj.sage_maker_s3_uri attrs.ethical_ai_privacy_config = obj.ethical_ai_privacy_config attrs.ethical_ai_fairness_config = obj.ethical_ai_fairness_config @@ -745,11 +753,19 @@ def _extract_sage_maker_feature_group_attrs( ) -> dict: """Extract all SageMakerFeatureGroup attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sage_maker_status"] = attrs.sage_maker_status - result["sage_maker_record_id_name"] = attrs.sage_maker_record_id_name - result["sage_maker_glue_database_name"] = attrs.sage_maker_glue_database_name - result["sage_maker_glue_table_name"] = attrs.sage_maker_glue_table_name - result["sage_maker_feature_count"] = attrs.sage_maker_feature_count + result["sage_maker_feature_group_status"] = attrs.sage_maker_feature_group_status + result["sage_maker_feature_group_record_id_name"] = ( + attrs.sage_maker_feature_group_record_id_name + ) + result["sage_maker_feature_group_glue_database_name"] = ( + attrs.sage_maker_feature_group_glue_database_name + ) + result["sage_maker_feature_group_glue_table_name"] = ( + attrs.sage_maker_feature_group_glue_table_name + ) + result["sage_maker_feature_group_feature_count"] = ( + attrs.sage_maker_feature_group_feature_count + ) result["sage_maker_s3_uri"] = attrs.sage_maker_s3_uri result["ethical_ai_privacy_config"] = attrs.ethical_ai_privacy_config result["ethical_ai_fairness_config"] = attrs.ethical_ai_fairness_config @@ -896,20 +912,20 @@ def _sage_maker_feature_group_from_nested_bytes( RelationField, ) -SageMakerFeatureGroup.SAGE_MAKER_STATUS = KeywordField( - "sageMakerStatus", "sageMakerStatus" +SageMakerFeatureGroup.SAGE_MAKER_FEATURE_GROUP_STATUS = KeywordField( + "sageMakerFeatureGroupStatus", "sageMakerFeatureGroupStatus" ) -SageMakerFeatureGroup.SAGE_MAKER_RECORD_ID_NAME = KeywordField( - "sageMakerRecordIdName", "sageMakerRecordIdName" +SageMakerFeatureGroup.SAGE_MAKER_FEATURE_GROUP_RECORD_ID_NAME = KeywordField( + "sageMakerFeatureGroupRecordIdName", "sageMakerFeatureGroupRecordIdName" ) -SageMakerFeatureGroup.SAGE_MAKER_GLUE_DATABASE_NAME = KeywordField( - "sageMakerGlueDatabaseName", "sageMakerGlueDatabaseName" +SageMakerFeatureGroup.SAGE_MAKER_FEATURE_GROUP_GLUE_DATABASE_NAME = KeywordField( + "sageMakerFeatureGroupGlueDatabaseName", "sageMakerFeatureGroupGlueDatabaseName" ) -SageMakerFeatureGroup.SAGE_MAKER_GLUE_TABLE_NAME = KeywordField( - "sageMakerGlueTableName", "sageMakerGlueTableName" +SageMakerFeatureGroup.SAGE_MAKER_FEATURE_GROUP_GLUE_TABLE_NAME = KeywordField( + "sageMakerFeatureGroupGlueTableName", "sageMakerFeatureGroupGlueTableName" ) -SageMakerFeatureGroup.SAGE_MAKER_FEATURE_COUNT = NumericField( - "sageMakerFeatureCount", "sageMakerFeatureCount" +SageMakerFeatureGroup.SAGE_MAKER_FEATURE_GROUP_FEATURE_COUNT = NumericField( + "sageMakerFeatureGroupFeatureCount", "sageMakerFeatureGroupFeatureCount" ) SageMakerFeatureGroup.SAGE_MAKER_S3_URI = KeywordField( "sageMakerS3Uri", "sageMakerS3Uri" diff --git a/pyatlan_v9/model/assets/sage_maker_model.py b/pyatlan_v9/model/assets/sage_maker_model.py index 8129bb189..83887ffff 100644 --- a/pyatlan_v9/model/assets/sage_maker_model.py +++ b/pyatlan_v9/model/assets/sage_maker_model.py @@ -73,12 +73,12 @@ class SageMakerModel(Asset): Instance of a SageMaker ML Model in Atlan. Represents trained machine learning models that can be deployed for inference. """ - SAGE_MAKER_CONTAINER_IMAGE: ClassVar[Any] = None - SAGE_MAKER_EXECUTION_ROLE_ARN: ClassVar[Any] = None - SAGE_MAKER_MODEL_GROUP_NAME: ClassVar[Any] = None - SAGE_MAKER_MODEL_GROUP_QUALIFIED_NAME: ClassVar[Any] = None - SAGE_MAKER_VERSION: ClassVar[Any] = None - SAGE_MAKER_STATUS: ClassVar[Any] = None + SAGE_MAKER_MODEL_CONTAINER_IMAGE: ClassVar[Any] = None + SAGE_MAKER_MODEL_EXECUTION_ROLE_ARN: ClassVar[Any] = None + SAGE_MAKER_MODEL_MODEL_GROUP_NAME: ClassVar[Any] = None + SAGE_MAKER_MODEL_MODEL_GROUP_QUALIFIED_NAME: ClassVar[Any] = None + SAGE_MAKER_MODEL_VERSION: ClassVar[Any] = None + SAGE_MAKER_MODEL_STATUS: ClassVar[Any] = None SAGE_MAKER_S3_URI: ClassVar[Any] = None ETHICAL_AI_PRIVACY_CONFIG: ClassVar[Any] = None ETHICAL_AI_FAIRNESS_CONFIG: ClassVar[Any] = None @@ -138,22 +138,22 @@ class SageMakerModel(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sage_maker_container_image: Union[str, None, UnsetType] = UNSET + sage_maker_model_container_image: Union[str, None, UnsetType] = UNSET """Docker container image used for the model.""" - sage_maker_execution_role_arn: Union[str, None, UnsetType] = UNSET + sage_maker_model_execution_role_arn: Union[str, None, UnsetType] = UNSET """ARN of the IAM role used by the model for accessing AWS resources.""" - sage_maker_model_group_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_model_group_name: Union[str, None, UnsetType] = UNSET """Name of the parent Model Group.""" - sage_maker_model_group_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_model_group_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the parent Model Group.""" - sage_maker_version: Union[str, None, UnsetType] = UNSET + sage_maker_model_version: Union[str, None, UnsetType] = UNSET """Version of the SageMaker Model Package.""" - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_status: Union[str, None, UnsetType] = UNSET """Status of the SageMaker Model Package (ACTIVE or INACTIVE).""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -399,12 +399,6 @@ def validate(self, for_creation: bool = False) -> None: errors.append("connection_qualified_name is required for creation") if self.sage_maker_model_group is UNSET: errors.append("sage_maker_model_group is required for creation") - if self.sage_maker_model_group_name is UNSET: - errors.append("sage_maker_model_group_name is required for creation") - if self.sage_maker_model_group_qualified_name is UNSET: - errors.append( - "sage_maker_model_group_qualified_name is required for creation" - ) if errors: raise ValueError(f"SageMakerModel validation failed: {errors}") @@ -492,22 +486,22 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SageMakerMo class SageMakerModelAttributes(AssetAttributes): """SageMakerModel-specific attributes for nested API format.""" - sage_maker_container_image: Union[str, None, UnsetType] = UNSET + sage_maker_model_container_image: Union[str, None, UnsetType] = UNSET """Docker container image used for the model.""" - sage_maker_execution_role_arn: Union[str, None, UnsetType] = UNSET + sage_maker_model_execution_role_arn: Union[str, None, UnsetType] = UNSET """ARN of the IAM role used by the model for accessing AWS resources.""" - sage_maker_model_group_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_model_group_name: Union[str, None, UnsetType] = UNSET """Name of the parent Model Group.""" - sage_maker_model_group_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_model_group_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the parent Model Group.""" - sage_maker_version: Union[str, None, UnsetType] = UNSET + sage_maker_model_version: Union[str, None, UnsetType] = UNSET """Version of the SageMaker Model Package.""" - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_status: Union[str, None, UnsetType] = UNSET """Status of the SageMaker Model Package (ACTIVE or INACTIVE).""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -780,14 +774,14 @@ def _populate_sage_maker_model_attrs( ) -> None: """Populate SageMakerModel-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sage_maker_container_image = obj.sage_maker_container_image - attrs.sage_maker_execution_role_arn = obj.sage_maker_execution_role_arn - attrs.sage_maker_model_group_name = obj.sage_maker_model_group_name - attrs.sage_maker_model_group_qualified_name = ( - obj.sage_maker_model_group_qualified_name + attrs.sage_maker_model_container_image = obj.sage_maker_model_container_image + attrs.sage_maker_model_execution_role_arn = obj.sage_maker_model_execution_role_arn + attrs.sage_maker_model_model_group_name = obj.sage_maker_model_model_group_name + attrs.sage_maker_model_model_group_qualified_name = ( + obj.sage_maker_model_model_group_qualified_name ) - attrs.sage_maker_version = obj.sage_maker_version - attrs.sage_maker_status = obj.sage_maker_status + attrs.sage_maker_model_version = obj.sage_maker_model_version + attrs.sage_maker_model_status = obj.sage_maker_model_status attrs.sage_maker_s3_uri = obj.sage_maker_s3_uri attrs.ethical_ai_privacy_config = obj.ethical_ai_privacy_config attrs.ethical_ai_fairness_config = obj.ethical_ai_fairness_config @@ -819,14 +813,18 @@ def _populate_sage_maker_model_attrs( def _extract_sage_maker_model_attrs(attrs: SageMakerModelAttributes) -> dict: """Extract all SageMakerModel attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sage_maker_container_image"] = attrs.sage_maker_container_image - result["sage_maker_execution_role_arn"] = attrs.sage_maker_execution_role_arn - result["sage_maker_model_group_name"] = attrs.sage_maker_model_group_name - result["sage_maker_model_group_qualified_name"] = ( - attrs.sage_maker_model_group_qualified_name + result["sage_maker_model_container_image"] = attrs.sage_maker_model_container_image + result["sage_maker_model_execution_role_arn"] = ( + attrs.sage_maker_model_execution_role_arn ) - result["sage_maker_version"] = attrs.sage_maker_version - result["sage_maker_status"] = attrs.sage_maker_status + result["sage_maker_model_model_group_name"] = ( + attrs.sage_maker_model_model_group_name + ) + result["sage_maker_model_model_group_qualified_name"] = ( + attrs.sage_maker_model_model_group_qualified_name + ) + result["sage_maker_model_version"] = attrs.sage_maker_model_version + result["sage_maker_model_status"] = attrs.sage_maker_model_status result["sage_maker_s3_uri"] = attrs.sage_maker_s3_uri result["ethical_ai_privacy_config"] = attrs.ethical_ai_privacy_config result["ethical_ai_fairness_config"] = attrs.ethical_ai_fairness_config @@ -971,20 +969,24 @@ def _sage_maker_model_from_nested_bytes(data: bytes, serde: Serde) -> SageMakerM RelationField, ) -SageMakerModel.SAGE_MAKER_CONTAINER_IMAGE = KeywordField( - "sageMakerContainerImage", "sageMakerContainerImage" +SageMakerModel.SAGE_MAKER_MODEL_CONTAINER_IMAGE = KeywordField( + "sageMakerModelContainerImage", "sageMakerModelContainerImage" +) +SageMakerModel.SAGE_MAKER_MODEL_EXECUTION_ROLE_ARN = KeywordField( + "sageMakerModelExecutionRoleArn", "sageMakerModelExecutionRoleArn" +) +SageMakerModel.SAGE_MAKER_MODEL_MODEL_GROUP_NAME = KeywordField( + "sageMakerModelModelGroupName", "sageMakerModelModelGroupName" ) -SageMakerModel.SAGE_MAKER_EXECUTION_ROLE_ARN = KeywordField( - "sageMakerExecutionRoleArn", "sageMakerExecutionRoleArn" +SageMakerModel.SAGE_MAKER_MODEL_MODEL_GROUP_QUALIFIED_NAME = KeywordField( + "sageMakerModelModelGroupQualifiedName", "sageMakerModelModelGroupQualifiedName" ) -SageMakerModel.SAGE_MAKER_MODEL_GROUP_NAME = KeywordField( - "sageMakerModelGroupName", "sageMakerModelGroupName" +SageMakerModel.SAGE_MAKER_MODEL_VERSION = KeywordField( + "sageMakerModelVersion", "sageMakerModelVersion" ) -SageMakerModel.SAGE_MAKER_MODEL_GROUP_QUALIFIED_NAME = KeywordField( - "sageMakerModelGroupQualifiedName", "sageMakerModelGroupQualifiedName" +SageMakerModel.SAGE_MAKER_MODEL_STATUS = KeywordField( + "sageMakerModelStatus", "sageMakerModelStatus" ) -SageMakerModel.SAGE_MAKER_VERSION = KeywordField("sageMakerVersion", "sageMakerVersion") -SageMakerModel.SAGE_MAKER_STATUS = KeywordField("sageMakerStatus", "sageMakerStatus") SageMakerModel.SAGE_MAKER_S3_URI = KeywordField("sageMakerS3Uri", "sageMakerS3Uri") SageMakerModel.ETHICAL_AI_PRIVACY_CONFIG = KeywordField( "ethicalAIPrivacyConfig", "ethicalAIPrivacyConfig" diff --git a/pyatlan_v9/model/assets/sage_maker_model_deployment.py b/pyatlan_v9/model/assets/sage_maker_model_deployment.py index eb0ae22d2..92ab1f39e 100644 --- a/pyatlan_v9/model/assets/sage_maker_model_deployment.py +++ b/pyatlan_v9/model/assets/sage_maker_model_deployment.py @@ -68,10 +68,10 @@ class SageMakerModelDeployment(Asset): Instance of a SageMaker Endpoint in Atlan. Represents deployed models that can serve real-time inference requests. """ - SAGE_MAKER_STATUS: ClassVar[Any] = None - SAGE_MAKER_ENDPOINT_CONFIG_NAME: ClassVar[Any] = None - SAGE_MAKER_MODEL_NAME: ClassVar[Any] = None - SAGE_MAKER_MODEL_QUALIFIED_NAME: ClassVar[Any] = None + SAGE_MAKER_MODEL_DEPLOYMENT_STATUS: ClassVar[Any] = None + SAGE_MAKER_MODEL_DEPLOYMENT_ENDPOINT_CONFIG_NAME: ClassVar[Any] = None + SAGE_MAKER_MODEL_DEPLOYMENT_MODEL_NAME: ClassVar[Any] = None + SAGE_MAKER_MODEL_DEPLOYMENT_MODEL_QUALIFIED_NAME: ClassVar[Any] = None SAGE_MAKER_S3_URI: ClassVar[Any] = None ETHICAL_AI_PRIVACY_CONFIG: ClassVar[Any] = None ETHICAL_AI_FAIRNESS_CONFIG: ClassVar[Any] = None @@ -126,16 +126,20 @@ class SageMakerModelDeployment(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_status: Union[str, None, UnsetType] = UNSET """Current status of the endpoint (e.g., InService, OutOfService, Creating, Failed).""" - sage_maker_endpoint_config_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_endpoint_config_name: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the endpoint configuration used by this deployment.""" - sage_maker_model_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_model_name: Union[str, None, UnsetType] = UNSET """Name of the parent Model.""" - sage_maker_model_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_model_qualified_name: Union[str, None, UnsetType] = ( + UNSET + ) """Qualified name of the parent Model.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -366,12 +370,6 @@ def validate(self, for_creation: bool = False) -> None: errors.append("connection_qualified_name is required for creation") if self.sage_maker_model is UNSET: errors.append("sage_maker_model is required for creation") - if self.sage_maker_model_name is UNSET: - errors.append("sage_maker_model_name is required for creation") - if self.sage_maker_model_qualified_name is UNSET: - errors.append( - "sage_maker_model_qualified_name is required for creation" - ) if errors: raise ValueError(f"SageMakerModelDeployment validation failed: {errors}") @@ -463,16 +461,20 @@ def from_json( class SageMakerModelDeploymentAttributes(AssetAttributes): """SageMakerModelDeployment-specific attributes for nested API format.""" - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_status: Union[str, None, UnsetType] = UNSET """Current status of the endpoint (e.g., InService, OutOfService, Creating, Failed).""" - sage_maker_endpoint_config_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_endpoint_config_name: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the endpoint configuration used by this deployment.""" - sage_maker_model_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_model_name: Union[str, None, UnsetType] = UNSET """Name of the parent Model.""" - sage_maker_model_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_model_qualified_name: Union[str, None, UnsetType] = ( + UNSET + ) """Qualified name of the parent Model.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -726,10 +728,16 @@ def _populate_sage_maker_model_deployment_attrs( ) -> None: """Populate SageMakerModelDeployment-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sage_maker_status = obj.sage_maker_status - attrs.sage_maker_endpoint_config_name = obj.sage_maker_endpoint_config_name - attrs.sage_maker_model_name = obj.sage_maker_model_name - attrs.sage_maker_model_qualified_name = obj.sage_maker_model_qualified_name + attrs.sage_maker_model_deployment_status = obj.sage_maker_model_deployment_status + attrs.sage_maker_model_deployment_endpoint_config_name = ( + obj.sage_maker_model_deployment_endpoint_config_name + ) + attrs.sage_maker_model_deployment_model_name = ( + obj.sage_maker_model_deployment_model_name + ) + attrs.sage_maker_model_deployment_model_qualified_name = ( + obj.sage_maker_model_deployment_model_qualified_name + ) attrs.sage_maker_s3_uri = obj.sage_maker_s3_uri attrs.ethical_ai_privacy_config = obj.ethical_ai_privacy_config attrs.ethical_ai_fairness_config = obj.ethical_ai_fairness_config @@ -760,10 +768,18 @@ def _extract_sage_maker_model_deployment_attrs( ) -> dict: """Extract all SageMakerModelDeployment attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sage_maker_status"] = attrs.sage_maker_status - result["sage_maker_endpoint_config_name"] = attrs.sage_maker_endpoint_config_name - result["sage_maker_model_name"] = attrs.sage_maker_model_name - result["sage_maker_model_qualified_name"] = attrs.sage_maker_model_qualified_name + result["sage_maker_model_deployment_status"] = ( + attrs.sage_maker_model_deployment_status + ) + result["sage_maker_model_deployment_endpoint_config_name"] = ( + attrs.sage_maker_model_deployment_endpoint_config_name + ) + result["sage_maker_model_deployment_model_name"] = ( + attrs.sage_maker_model_deployment_model_name + ) + result["sage_maker_model_deployment_model_qualified_name"] = ( + attrs.sage_maker_model_deployment_model_qualified_name + ) result["sage_maker_s3_uri"] = attrs.sage_maker_s3_uri result["ethical_ai_privacy_config"] = attrs.ethical_ai_privacy_config result["ethical_ai_fairness_config"] = attrs.ethical_ai_fairness_config @@ -911,17 +927,23 @@ def _sage_maker_model_deployment_from_nested_bytes( RelationField, ) -SageMakerModelDeployment.SAGE_MAKER_STATUS = KeywordField( - "sageMakerStatus", "sageMakerStatus" +SageMakerModelDeployment.SAGE_MAKER_MODEL_DEPLOYMENT_STATUS = KeywordField( + "sageMakerModelDeploymentStatus", "sageMakerModelDeploymentStatus" ) -SageMakerModelDeployment.SAGE_MAKER_ENDPOINT_CONFIG_NAME = KeywordField( - "sageMakerEndpointConfigName", "sageMakerEndpointConfigName" +SageMakerModelDeployment.SAGE_MAKER_MODEL_DEPLOYMENT_ENDPOINT_CONFIG_NAME = ( + KeywordField( + "sageMakerModelDeploymentEndpointConfigName", + "sageMakerModelDeploymentEndpointConfigName", + ) ) -SageMakerModelDeployment.SAGE_MAKER_MODEL_NAME = KeywordField( - "sageMakerModelName", "sageMakerModelName" +SageMakerModelDeployment.SAGE_MAKER_MODEL_DEPLOYMENT_MODEL_NAME = KeywordField( + "sageMakerModelDeploymentModelName", "sageMakerModelDeploymentModelName" ) -SageMakerModelDeployment.SAGE_MAKER_MODEL_QUALIFIED_NAME = KeywordField( - "sageMakerModelQualifiedName", "sageMakerModelQualifiedName" +SageMakerModelDeployment.SAGE_MAKER_MODEL_DEPLOYMENT_MODEL_QUALIFIED_NAME = ( + KeywordField( + "sageMakerModelDeploymentModelQualifiedName", + "sageMakerModelDeploymentModelQualifiedName", + ) ) SageMakerModelDeployment.SAGE_MAKER_S3_URI = KeywordField( "sageMakerS3Uri", "sageMakerS3Uri" diff --git a/pyatlan_v9/model/assets/sage_maker_model_group.py b/pyatlan_v9/model/assets/sage_maker_model_group.py index 4cb4dba2f..2c0c4bc46 100644 --- a/pyatlan_v9/model/assets/sage_maker_model_group.py +++ b/pyatlan_v9/model/assets/sage_maker_model_group.py @@ -68,7 +68,7 @@ class SageMakerModelGroup(Asset): Instance of a SageMaker Model Package Group in Atlan. Represents a collection of versioned models that can be organized and managed together. """ - SAGE_MAKER_STATUS: ClassVar[Any] = None + SAGE_MAKER_MODEL_GROUP_STATUS: ClassVar[Any] = None SAGE_MAKER_S3_URI: ClassVar[Any] = None ETHICAL_AI_PRIVACY_CONFIG: ClassVar[Any] = None ETHICAL_AI_FAIRNESS_CONFIG: ClassVar[Any] = None @@ -128,7 +128,7 @@ class SageMakerModelGroup(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_group_status: Union[str, None, UnsetType] = UNSET """Current status of the Model Package Group.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -451,7 +451,7 @@ def from_json( class SageMakerModelGroupAttributes(AssetAttributes): """SageMakerModelGroup-specific attributes for nested API format.""" - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_group_status: Union[str, None, UnsetType] = UNSET """Current status of the Model Package Group.""" sage_maker_s3_uri: Union[str, None, UnsetType] = UNSET @@ -724,7 +724,7 @@ def _populate_sage_maker_model_group_attrs( ) -> None: """Populate SageMakerModelGroup-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sage_maker_status = obj.sage_maker_status + attrs.sage_maker_model_group_status = obj.sage_maker_model_group_status attrs.sage_maker_s3_uri = obj.sage_maker_s3_uri attrs.ethical_ai_privacy_config = obj.ethical_ai_privacy_config attrs.ethical_ai_fairness_config = obj.ethical_ai_fairness_config @@ -756,7 +756,7 @@ def _populate_sage_maker_model_group_attrs( def _extract_sage_maker_model_group_attrs(attrs: SageMakerModelGroupAttributes) -> dict: """Extract all SageMakerModelGroup attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sage_maker_status"] = attrs.sage_maker_status + result["sage_maker_model_group_status"] = attrs.sage_maker_model_group_status result["sage_maker_s3_uri"] = attrs.sage_maker_s3_uri result["ethical_ai_privacy_config"] = attrs.ethical_ai_privacy_config result["ethical_ai_fairness_config"] = attrs.ethical_ai_fairness_config @@ -905,8 +905,8 @@ def _sage_maker_model_group_from_nested_bytes( RelationField, ) -SageMakerModelGroup.SAGE_MAKER_STATUS = KeywordField( - "sageMakerStatus", "sageMakerStatus" +SageMakerModelGroup.SAGE_MAKER_MODEL_GROUP_STATUS = KeywordField( + "sageMakerModelGroupStatus", "sageMakerModelGroupStatus" ) SageMakerModelGroup.SAGE_MAKER_S3_URI = KeywordField("sageMakerS3Uri", "sageMakerS3Uri") SageMakerModelGroup.ETHICAL_AI_PRIVACY_CONFIG = KeywordField( diff --git a/pyatlan_v9/model/assets/sage_maker_related.py b/pyatlan_v9/model/assets/sage_maker_related.py index 5cfa25edb..03cfb6df7 100644 --- a/pyatlan_v9/model/assets/sage_maker_related.py +++ b/pyatlan_v9/model/assets/sage_maker_related.py @@ -57,19 +57,19 @@ class RelatedSageMakerFeatureGroup(RelatedSageMaker): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SageMakerFeatureGroup" so it serializes correctly - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_status: Union[str, None, UnsetType] = UNSET """Current status of the Feature Group (e.g., Created, Creating, Failed).""" - sage_maker_record_id_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_record_id_name: Union[str, None, UnsetType] = UNSET """Name of the feature that serves as the record identifier.""" - sage_maker_glue_database_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_glue_database_name: Union[str, None, UnsetType] = UNSET """AWS Glue database name associated with this Feature Group.""" - sage_maker_glue_table_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_glue_table_name: Union[str, None, UnsetType] = UNSET """AWS Glue table name associated with this Feature Group.""" - sage_maker_feature_count: Union[int, None, UnsetType] = UNSET + sage_maker_feature_group_feature_count: Union[int, None, UnsetType] = UNSET """Number of features in this Feature Group.""" def __post_init__(self) -> None: @@ -88,16 +88,16 @@ class RelatedSageMakerFeature(RelatedSageMaker): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SageMakerFeature" so it serializes correctly - sage_maker_group_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_name: Union[str, None, UnsetType] = UNSET """Name of the Feature Group that contains this feature.""" - sage_maker_group_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_feature_group_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the Feature Group that contains this feature.""" - sage_maker_data_type: Union[str, None, UnsetType] = UNSET + sage_maker_feature_data_type: Union[str, None, UnsetType] = UNSET """Data type of the feature (e.g., String, Integral, Fractional).""" - sage_maker_is_record_identifier: Union[bool, None, UnsetType] = UNSET + sage_maker_feature_is_record_identifier: Union[bool, None, UnsetType] = UNSET """Whether this feature serves as the record identifier for the Feature Group.""" def __post_init__(self) -> None: @@ -116,22 +116,22 @@ class RelatedSageMakerModel(RelatedSageMaker): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SageMakerModel" so it serializes correctly - sage_maker_container_image: Union[str, None, UnsetType] = UNSET + sage_maker_model_container_image: Union[str, None, UnsetType] = UNSET """Docker container image used for the model.""" - sage_maker_execution_role_arn: Union[str, None, UnsetType] = UNSET + sage_maker_model_execution_role_arn: Union[str, None, UnsetType] = UNSET """ARN of the IAM role used by the model for accessing AWS resources.""" - sage_maker_model_group_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_model_group_name: Union[str, None, UnsetType] = UNSET """Name of the parent Model Group.""" - sage_maker_model_group_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_model_group_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the parent Model Group.""" - sage_maker_version: Union[str, None, UnsetType] = UNSET + sage_maker_model_version: Union[str, None, UnsetType] = UNSET """Version of the SageMaker Model Package.""" - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_status: Union[str, None, UnsetType] = UNSET """Status of the SageMaker Model Package (ACTIVE or INACTIVE).""" def __post_init__(self) -> None: @@ -150,7 +150,7 @@ class RelatedSageMakerModelGroup(RelatedSageMaker): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SageMakerModelGroup" so it serializes correctly - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_group_status: Union[str, None, UnsetType] = UNSET """Current status of the Model Package Group.""" def __post_init__(self) -> None: @@ -169,16 +169,20 @@ class RelatedSageMakerModelDeployment(RelatedSageMaker): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SageMakerModelDeployment" so it serializes correctly - sage_maker_status: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_status: Union[str, None, UnsetType] = UNSET """Current status of the endpoint (e.g., InService, OutOfService, Creating, Failed).""" - sage_maker_endpoint_config_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_endpoint_config_name: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the endpoint configuration used by this deployment.""" - sage_maker_model_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_model_name: Union[str, None, UnsetType] = UNSET """Name of the parent Model.""" - sage_maker_model_qualified_name: Union[str, None, UnsetType] = UNSET + sage_maker_model_deployment_model_qualified_name: Union[str, None, UnsetType] = ( + UNSET + ) """Qualified name of the parent Model.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/sap_analytics_cloud.py b/pyatlan_v9/model/assets/sap_analytics_cloud.py new file mode 100644 index 000000000..1c328ca0d --- /dev/null +++ b/pyatlan_v9/model/assets/sap_analytics_cloud.py @@ -0,0 +1,758 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# ruff: noqa: ARG002 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +SapAnalyticsCloud asset model with flattened inheritance. + +This module provides: +- SapAnalyticsCloud: Flat asset class (easy to use) +- SapAnalyticsCloudAttributes: Nested attributes struct (extends AssetAttributes) +- SapAnalyticsCloudNested: Nested API format struct +""" + +from __future__ import annotations + +from typing import Any, ClassVar, Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .airflow_related import RelatedAirflowTask +from .anomalo_related import RelatedAnomaloCheck +from .app_related import RelatedApplication, RelatedApplicationField +from .asset import ( + _ASSET_REL_FIELDS, + Asset, + AssetAttributes, + AssetNested, + AssetRelationshipAttributes, + _extract_asset_attrs, + _populate_asset_attrs, +) +from .context_related import RelatedContextRepository +from .data_contract_related import RelatedDataContract +from .data_mesh_related import RelatedDataProduct +from .data_quality_related import RelatedDataQualityRule, RelatedMetric +from .gcp_dataplex_related import RelatedGCPDataplexAspectType +from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile +from .model_related import RelatedModelAttribute, RelatedModelEntity +from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor +from .partial_related import RelatedPartialField, RelatedPartialObject +from .process_related import RelatedProcess +from .referenceable_related import RelatedReferenceable +from .resource_related import RelatedFile, RelatedLink, RelatedReadme +from .schema_registry_related import RelatedSchemaRegistrySubject +from .soda_related import RelatedSodaCheck +from .spark_related import RelatedSparkJob +from pyatlan_v9.model.conversion_utils import categorize_relationships, merge_relationships +from pyatlan_v9.model.serde import Serde, get_serde +from pyatlan_v9.model.transform import register_asset + +from .sap_analytics_cloud_related import RelatedSapAnalyticsCloud + +# ============================================================================= +# FLAT ASSET CLASS +# ============================================================================= + +@register_asset +class SapAnalyticsCloud(Asset): + """ + Base class for SAP Analytics Cloud assets. Inherits the SAP-wide attributes (technicalName, logicalName, packageName, componentName, dataType, fieldCount, fieldOrder) so cross-SAP queries traverse SAP Analytics Cloud alongside SAP ERP, SAP BW and SAP Datasphere. + """ + + SAP_ANALYTICS_CLOUD_RESOURCE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_OBJECT_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME: ClassVar[Any] = None + SAP_TECHNICAL_NAME: ClassVar[Any] = None + SAP_LOGICAL_NAME: ClassVar[Any] = None + SAP_PACKAGE_NAME: ClassVar[Any] = None + SAP_COMPONENT_NAME: ClassVar[Any] = None + SAP_DATA_TYPE: ClassVar[Any] = None + SAP_FIELD_COUNT: ClassVar[Any] = None + SAP_FIELD_ORDER: ClassVar[Any] = None + CATALOG_DATASET_GUID: ClassVar[Any] = None + INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None + OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None + ANOMALO_CHECKS: ClassVar[Any] = None + APPLICATION: ClassVar[Any] = None + APPLICATION_FIELD: ClassVar[Any] = None + CONTEXT_REPOSITORIES: ClassVar[Any] = None + DATA_CONTRACT_LATEST: ClassVar[Any] = None + DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None + OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None + MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None + METRICS: ClassVar[Any] = None + DQ_BASE_DATASET_RULES: ClassVar[Any] = None + DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None + GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None + MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None + MC_MONITORS: ClassVar[Any] = None + MC_INCIDENTS: ClassVar[Any] = None + PARTIAL_CHILD_FIELDS: ClassVar[Any] = None + PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None + INPUT_TO_PROCESSES: ClassVar[Any] = None + OUTPUT_FROM_PROCESSES: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None + FILES: ClassVar[Any] = None + LINKS: ClassVar[Any] = None + README: ClassVar[Any] = None + SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None + SODA_CHECKS: ClassVar[Any] = None + INPUT_TO_SPARK_JOBS: ClassVar[Any] = None + OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + def __post_init__(self) -> None: + self.type_name = "SapAnalyticsCloud" + + # ========================================================================= + # SDK Methods + # ========================================================================= + + def validate(self, for_creation: bool = False) -> None: + """ + Dry-run validation of this SapAnalyticsCloud instance. + + Checks that required fields (type_name, name, qualified_name) are set. + When ``for_creation=True``, also checks hierarchy-specific fields + (parent references, denormalized attributes) needed to create this asset. + + This is purely opt-in and is NOT called by any serde path — only by + explicit user invocation (e.g., validating JSONL before sending to Atlan). + + Args: + for_creation: If True, also validate fields required for asset creation. + + Raises: + ValueError: If any required fields are missing or invalid. + """ + errors: list[str] = [] + if self.type_name is UNSET: + errors.append("type_name is required") + if self.name is UNSET: + errors.append("name is required") + if self.qualified_name is UNSET or self.qualified_name is None: + errors.append("qualified_name is required") + if errors: + raise ValueError(f"SapAnalyticsCloud validation failed: {errors}") + + def minimize(self) -> "SapAnalyticsCloud": + """ + Return a minimal copy of this SapAnalyticsCloud with only updater-required fields. + + Calls :meth:`validate` first to ensure the instance is valid, then + returns a new SapAnalyticsCloud with only the fields needed for an update + (qualified_name, name, and any type-specific additional fields). + + Returns: + A new SapAnalyticsCloud instance with only the minimum required fields. + """ + self.validate() + return SapAnalyticsCloud(qualified_name=self.qualified_name, name=self.name) + + def relate(self) -> "RelatedSapAnalyticsCloud": + """ + Create a :class:`RelatedSapAnalyticsCloud` reference from this instance. + + Returns a lightweight reference suitable for use in relationship + attributes. Prefers ``guid`` if set, otherwise falls back to + ``qualified_name``. + + Returns: + A RelatedSapAnalyticsCloud reference to this asset. + """ + if self.guid is not UNSET: + return RelatedSapAnalyticsCloud(guid=self.guid) + return RelatedSapAnalyticsCloud(qualified_name=self.qualified_name) + + # ========================================================================= + # Optimized Serialization Methods (override Asset base class) + # ========================================================================= + + def to_json(self, nested: bool = True, serde: Serde | None = None) -> str: + """ + Convert to JSON string using optimized nested struct serialization. + + Args: + nested: If True (default), use nested API format. If False, use flat format. + serde: Optional Serde instance for encoder reuse. Uses shared singleton if None. + + Returns: + JSON string representation + """ + if serde is None: + serde = get_serde() + if nested: + return self.to_nested_bytes(serde).decode("utf-8") + else: + return serde.encode(self).decode("utf-8") + + def to_nested_bytes(self, serde: Serde | None = None) -> bytes: + """Serialize to Atlas nested-format JSON bytes (pure msgspec, no dict intermediate).""" + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_to_nested_bytes(self, serde) + + @staticmethod + def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapAnalyticsCloud: + """ + Create from JSON string or bytes using optimized nested struct deserialization. + + Args: + json_data: JSON string or bytes to deserialize + serde: Optional Serde instance for decoder reuse. Uses shared singleton if None. + + Returns: + SapAnalyticsCloud instance + """ + if isinstance(json_data, str): + json_data = json_data.encode("utf-8") + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_from_nested_bytes(json_data, serde) + + +# ============================================================================= +# NESTED FORMAT CLASSES +# ============================================================================= + +class SapAnalyticsCloudAttributes(AssetAttributes): + """SapAnalyticsCloud-specific attributes for nested API format.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + +class SapAnalyticsCloudRelationshipAttributes(AssetRelationshipAttributes): + """SapAnalyticsCloud-specific relationship attributes for nested API format.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + +class SapAnalyticsCloudNested(AssetNested): + """SapAnalyticsCloud in nested API format for high-performance serialization.""" + + attributes: Union[SapAnalyticsCloudAttributes, UnsetType] = UNSET + relationship_attributes: Union[SapAnalyticsCloudRelationshipAttributes, UnsetType] = UNSET + append_relationship_attributes: Union[SapAnalyticsCloudRelationshipAttributes, UnsetType] = UNSET + remove_relationship_attributes: Union[SapAnalyticsCloudRelationshipAttributes, UnsetType] = UNSET + +# ============================================================================= +# CONVERSION HELPERS & CONSTANTS +# ============================================================================= + +_SAP_ANALYTICS_CLOUD_REL_FIELDS: List[str] = [ + *_ASSET_REL_FIELDS, + "input_to_airflow_tasks", + "output_from_airflow_tasks", + "anomalo_checks", + "application", + "application_field", + "context_repositories", + "data_contract_latest", + "data_contract_latest_certified", + "output_port_data_products", + "input_port_data_products", + "model_implemented_entities", + "model_implemented_attributes", + "metrics", + "dq_base_dataset_rules", + "dq_reference_dataset_rules", + "gcp_dataplex_aspect_type_metadata_entities", + "meanings", + "knowledge_linked_files", + "mc_monitors", + "mc_incidents", + "partial_child_fields", + "partial_child_objects", + "input_to_processes", + "output_from_processes", + "user_def_relationship_to", + "user_def_relationship_from", + "files", + "links", + "readme", + "schema_registry_subjects", + "soda_checks", + "input_to_spark_jobs", + "output_from_spark_jobs", +] + +def _populate_sap_analytics_cloud_attrs(attrs: SapAnalyticsCloudAttributes, obj: SapAnalyticsCloud) -> None: + """Populate SapAnalyticsCloud-specific attributes on the attrs struct.""" + _populate_asset_attrs(attrs, obj) + attrs.sap_analytics_cloud_resource_id = obj.sap_analytics_cloud_resource_id + attrs.sap_analytics_cloud_object_id = obj.sap_analytics_cloud_object_id + attrs.sap_analytics_cloud_repository_partition = obj.sap_analytics_cloud_repository_partition + attrs.sap_analytics_cloud_workspace_id = obj.sap_analytics_cloud_workspace_id + attrs.sap_analytics_cloud_workspace_name = obj.sap_analytics_cloud_workspace_name + attrs.sap_analytics_cloud_parent_folder_qualified_name = obj.sap_analytics_cloud_parent_folder_qualified_name + attrs.sap_analytics_cloud_parent_folder_name = obj.sap_analytics_cloud_parent_folder_name + attrs.sap_technical_name = obj.sap_technical_name + attrs.sap_logical_name = obj.sap_logical_name + attrs.sap_package_name = obj.sap_package_name + attrs.sap_component_name = obj.sap_component_name + attrs.sap_data_type = obj.sap_data_type + attrs.sap_field_count = obj.sap_field_count + attrs.sap_field_order = obj.sap_field_order + attrs.catalog_dataset_guid = obj.catalog_dataset_guid + +def _extract_sap_analytics_cloud_attrs(attrs: SapAnalyticsCloudAttributes) -> dict: + """Extract all SapAnalyticsCloud attributes from the attrs struct into a flat dict.""" + result = _extract_asset_attrs(attrs) + result["sap_analytics_cloud_resource_id"] = attrs.sap_analytics_cloud_resource_id + result["sap_analytics_cloud_object_id"] = attrs.sap_analytics_cloud_object_id + result["sap_analytics_cloud_repository_partition"] = attrs.sap_analytics_cloud_repository_partition + result["sap_analytics_cloud_workspace_id"] = attrs.sap_analytics_cloud_workspace_id + result["sap_analytics_cloud_workspace_name"] = attrs.sap_analytics_cloud_workspace_name + result["sap_analytics_cloud_parent_folder_qualified_name"] = attrs.sap_analytics_cloud_parent_folder_qualified_name + result["sap_analytics_cloud_parent_folder_name"] = attrs.sap_analytics_cloud_parent_folder_name + result["sap_technical_name"] = attrs.sap_technical_name + result["sap_logical_name"] = attrs.sap_logical_name + result["sap_package_name"] = attrs.sap_package_name + result["sap_component_name"] = attrs.sap_component_name + result["sap_data_type"] = attrs.sap_data_type + result["sap_field_count"] = attrs.sap_field_count + result["sap_field_order"] = attrs.sap_field_order + result["catalog_dataset_guid"] = attrs.catalog_dataset_guid + return result + +# ============================================================================= +# CONVERSION FUNCTIONS +# ============================================================================= + + +def _sap_analytics_cloud_to_nested(sap_analytics_cloud: SapAnalyticsCloud) -> SapAnalyticsCloudNested: + """Convert flat SapAnalyticsCloud to nested format.""" + attrs = SapAnalyticsCloudAttributes() + _populate_sap_analytics_cloud_attrs(attrs, sap_analytics_cloud) + # Categorize relationships by save semantic (REPLACE, APPEND, REMOVE) + replace_rels, append_rels, remove_rels = categorize_relationships( + sap_analytics_cloud, _SAP_ANALYTICS_CLOUD_REL_FIELDS, SapAnalyticsCloudRelationshipAttributes + ) + return SapAnalyticsCloudNested( + guid=sap_analytics_cloud.guid, + type_name=sap_analytics_cloud.type_name, + status=sap_analytics_cloud.status, + version=sap_analytics_cloud.version, + create_time=sap_analytics_cloud.create_time, + update_time=sap_analytics_cloud.update_time, + created_by=sap_analytics_cloud.created_by, + updated_by=sap_analytics_cloud.updated_by, + classifications=sap_analytics_cloud.classifications, + classification_names=sap_analytics_cloud.classification_names, + meanings=sap_analytics_cloud.meanings, + labels=sap_analytics_cloud.labels, + business_attributes=sap_analytics_cloud.business_attributes, + custom_attributes=sap_analytics_cloud.custom_attributes, + pending_tasks=sap_analytics_cloud.pending_tasks, + proxy=sap_analytics_cloud.proxy, + is_incomplete=sap_analytics_cloud.is_incomplete, + provenance_type=sap_analytics_cloud.provenance_type, + home_id=sap_analytics_cloud.home_id, + depth=sap_analytics_cloud.depth, + immediate_upstream=sap_analytics_cloud.immediate_upstream, + immediate_downstream=sap_analytics_cloud.immediate_downstream, + attributes=attrs, + relationship_attributes=replace_rels, + append_relationship_attributes=append_rels, + remove_relationship_attributes=remove_rels, + ) + +def _sap_analytics_cloud_from_nested(nested: SapAnalyticsCloudNested) -> SapAnalyticsCloud: + """Convert nested format to flat SapAnalyticsCloud.""" + attrs = nested.attributes if nested.attributes is not UNSET else SapAnalyticsCloudAttributes() + # Merge relationships from all three buckets + merged_rels = merge_relationships( + nested.relationship_attributes, + nested.append_relationship_attributes, + nested.remove_relationship_attributes, + _SAP_ANALYTICS_CLOUD_REL_FIELDS, + SapAnalyticsCloudRelationshipAttributes + ) + return SapAnalyticsCloud( + guid=nested.guid, + type_name=nested.type_name, + status=nested.status, + version=nested.version, + create_time=nested.create_time, + update_time=nested.update_time, + created_by=nested.created_by, + updated_by=nested.updated_by, + classifications=nested.classifications, + classification_names=nested.classification_names, + meanings=nested.meanings, + labels=nested.labels, + business_attributes=nested.business_attributes, + custom_attributes=nested.custom_attributes, + pending_tasks=nested.pending_tasks, + proxy=nested.proxy, + is_incomplete=nested.is_incomplete, + provenance_type=nested.provenance_type, + home_id=nested.home_id, + depth=nested.depth, + immediate_upstream=nested.immediate_upstream, + immediate_downstream=nested.immediate_downstream, + **_extract_sap_analytics_cloud_attrs(attrs), + # Merged relationship attributes + **merged_rels, + ) + +def _sap_analytics_cloud_to_nested_bytes(sap_analytics_cloud: SapAnalyticsCloud, serde: Serde) -> bytes: + """Convert flat SapAnalyticsCloud to nested JSON bytes.""" + return serde.encode(_sap_analytics_cloud_to_nested(sap_analytics_cloud)) + + +def _sap_analytics_cloud_from_nested_bytes(data: bytes, serde: Serde) -> SapAnalyticsCloud: + """Convert nested JSON bytes to flat SapAnalyticsCloud.""" + nested = serde.decode(data, SapAnalyticsCloudNested) + return _sap_analytics_cloud_from_nested(nested) + +# --------------------------------------------------------------------------- +# Deferred field descriptor initialization +# --------------------------------------------------------------------------- +from pyatlan.model.fields.atlan_fields import ( # noqa: E402 + KeywordField, + NumericField, + RelationField, +) + +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_RESOURCE_ID = KeywordField("sapAnalyticsCloudResourceId", "sapAnalyticsCloudResourceId") +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_OBJECT_ID = KeywordField("sapAnalyticsCloudObjectId", "sapAnalyticsCloudObjectId") +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION = KeywordField("sapAnalyticsCloudRepositoryPartition", "sapAnalyticsCloudRepositoryPartition") +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_WORKSPACE_ID = KeywordField("sapAnalyticsCloudWorkspaceId", "sapAnalyticsCloudWorkspaceId") +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_WORKSPACE_NAME = KeywordField("sapAnalyticsCloudWorkspaceName", "sapAnalyticsCloudWorkspaceName") +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME = KeywordField("sapAnalyticsCloudParentFolderQualifiedName", "sapAnalyticsCloudParentFolderQualifiedName") +SapAnalyticsCloud.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME = KeywordField("sapAnalyticsCloudParentFolderName", "sapAnalyticsCloudParentFolderName") +SapAnalyticsCloud.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") +SapAnalyticsCloud.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") +SapAnalyticsCloud.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") +SapAnalyticsCloud.SAP_COMPONENT_NAME = KeywordField("sapComponentName", "sapComponentName") +SapAnalyticsCloud.SAP_DATA_TYPE = KeywordField("sapDataType", "sapDataType") +SapAnalyticsCloud.SAP_FIELD_COUNT = NumericField("sapFieldCount", "sapFieldCount") +SapAnalyticsCloud.SAP_FIELD_ORDER = NumericField("sapFieldOrder", "sapFieldOrder") +SapAnalyticsCloud.CATALOG_DATASET_GUID = KeywordField("catalogDatasetGuid", "catalogDatasetGuid") +SapAnalyticsCloud.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") +SapAnalyticsCloud.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") +SapAnalyticsCloud.ANOMALO_CHECKS = RelationField("anomaloChecks") +SapAnalyticsCloud.APPLICATION = RelationField("application") +SapAnalyticsCloud.APPLICATION_FIELD = RelationField("applicationField") +SapAnalyticsCloud.CONTEXT_REPOSITORIES = RelationField("contextRepositories") +SapAnalyticsCloud.DATA_CONTRACT_LATEST = RelationField("dataContractLatest") +SapAnalyticsCloud.DATA_CONTRACT_LATEST_CERTIFIED = RelationField("dataContractLatestCertified") +SapAnalyticsCloud.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") +SapAnalyticsCloud.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") +SapAnalyticsCloud.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") +SapAnalyticsCloud.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") +SapAnalyticsCloud.METRICS = RelationField("metrics") +SapAnalyticsCloud.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") +SapAnalyticsCloud.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") +SapAnalyticsCloud.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField("gcpDataplexAspectTypeMetadataEntities") +SapAnalyticsCloud.MEANINGS = RelationField("meanings") +SapAnalyticsCloud.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") +SapAnalyticsCloud.MC_MONITORS = RelationField("mcMonitors") +SapAnalyticsCloud.MC_INCIDENTS = RelationField("mcIncidents") +SapAnalyticsCloud.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") +SapAnalyticsCloud.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") +SapAnalyticsCloud.INPUT_TO_PROCESSES = RelationField("inputToProcesses") +SapAnalyticsCloud.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") +SapAnalyticsCloud.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") +SapAnalyticsCloud.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") +SapAnalyticsCloud.FILES = RelationField("files") +SapAnalyticsCloud.LINKS = RelationField("links") +SapAnalyticsCloud.README = RelationField("readme") +SapAnalyticsCloud.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") +SapAnalyticsCloud.SODA_CHECKS = RelationField("sodaChecks") +SapAnalyticsCloud.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") +SapAnalyticsCloud.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/sap_analytics_cloud_column.py b/pyatlan_v9/model/assets/sap_analytics_cloud_column.py new file mode 100644 index 000000000..f32364860 --- /dev/null +++ b/pyatlan_v9/model/assets/sap_analytics_cloud_column.py @@ -0,0 +1,2165 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# ruff: noqa: ARG002 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +SapAnalyticsCloudColumn asset model with flattened inheritance. + +This module provides: +- SapAnalyticsCloudColumn: Flat asset class (easy to use) +- SapAnalyticsCloudColumnAttributes: Nested attributes struct (extends AssetAttributes) +- SapAnalyticsCloudColumnNested: Nested API format struct +""" + +from __future__ import annotations + +import re +from typing import Any, ClassVar, Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .airflow_related import RelatedAirflowTask +from .anomalo_related import RelatedAnomaloCheck +from .app_related import RelatedApplication, RelatedApplicationField +from .asset import ( + _ASSET_REL_FIELDS, + Asset, + AssetAttributes, + AssetNested, + AssetRelationshipAttributes, + _extract_asset_attrs, + _populate_asset_attrs, +) +from .context_related import RelatedContextRepository +from .cosmos_mongo_db_related import RelatedCosmosMongoDBCollection +from .data_contract_related import RelatedDataContract +from .data_mesh_related import RelatedDataProduct +from .data_quality_related import RelatedDataQualityRule, RelatedMetric +from .dbt_related import RelatedDbtMetric, RelatedDbtModel, RelatedDbtModelColumn, RelatedDbtSeed, RelatedDbtSource, RelatedDbtTest +from .gcp_dataplex_related import RelatedGCPDataplexAspectType +from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile +from .model_related import RelatedModelAttribute, RelatedModelEntity +from .mongo_db_related import RelatedMongoDBCollection +from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor +from .partial_related import RelatedPartialField, RelatedPartialObject +from .process_related import RelatedProcess +from .referenceable_related import RelatedReferenceable +from .resource_related import RelatedFile, RelatedLink, RelatedReadme +from .schema_registry_related import RelatedSchemaRegistrySubject +from .snowflake_related import RelatedSnowflakeDynamicTable, RelatedSnowflakeSemanticLogicalTable +from .soda_related import RelatedSodaCheck +from .spark_related import RelatedSparkJob +from .sql_insight_related import RelatedSqlInsightBusinessQuestion, RelatedSqlInsightFilter, RelatedSqlInsightJoin +from .sql_related import RelatedCalculationView, RelatedColumn, RelatedMaterialisedView, RelatedQuery, RelatedTable, RelatedTablePartition, RelatedView +from pyatlan_v9.model.conversion_utils import categorize_relationships, merge_relationships +from pyatlan_v9.model.serde import Serde, get_serde +from pyatlan_v9.model.transform import register_asset + +from .sap_analytics_cloud_related import RelatedSapAnalyticsCloudColumn, RelatedSapAnalyticsCloudModel + +# ============================================================================= +# FLAT ASSET CLASS +# ============================================================================= + +@register_asset +class SapAnalyticsCloudColumn(Asset): + """ + Column of a SAP Analytics Cloud model. Depending on its role a column is the fact table itself, a measure or dimension of that fact table, or an attribute or hierarchy level of a dimension. + """ + + SAP_ANALYTICS_CLOUD_MODEL_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_MODEL_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_RESOURCE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_OBJECT_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME: ClassVar[Any] = None + SAP_TECHNICAL_NAME: ClassVar[Any] = None + SAP_LOGICAL_NAME: ClassVar[Any] = None + SAP_PACKAGE_NAME: ClassVar[Any] = None + SAP_COMPONENT_NAME: ClassVar[Any] = None + SAP_DATA_TYPE: ClassVar[Any] = None + SAP_FIELD_COUNT: ClassVar[Any] = None + SAP_FIELD_ORDER: ClassVar[Any] = None + CATALOG_DATASET_GUID: ClassVar[Any] = None + DATA_TYPE: ClassVar[Any] = None + SUB_DATA_TYPE: ClassVar[Any] = None + COLUMN_COMPRESSION: ClassVar[Any] = None + COLUMN_ENCODING: ClassVar[Any] = None + RAW_DATA_TYPE_DEFINITION: ClassVar[Any] = None + ORDER: ClassVar[Any] = None + NESTED_COLUMN_ORDER: ClassVar[Any] = None + NESTED_COLUMN_COUNT: ClassVar[Any] = None + COLUMN_HIERARCHY: ClassVar[Any] = None + IS_PARTITION: ClassVar[Any] = None + PARTITION_ORDER: ClassVar[Any] = None + IS_CLUSTERED: ClassVar[Any] = None + IS_PRIMARY: ClassVar[Any] = None + IS_FOREIGN: ClassVar[Any] = None + IS_INDEXED: ClassVar[Any] = None + IS_SORT: ClassVar[Any] = None + IS_DIST: ClassVar[Any] = None + IS_PINNED: ClassVar[Any] = None + PINNED_BY: ClassVar[Any] = None + PINNED_AT: ClassVar[Any] = None + PRECISION: ClassVar[Any] = None + DEFAULT_VALUE: ClassVar[Any] = None + IS_NULLABLE: ClassVar[Any] = None + NUMERIC_SCALE: ClassVar[Any] = None + MAX_LENGTH: ClassVar[Any] = None + VALIDATIONS: ClassVar[Any] = None + PARENT_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None + PARENT_COLUMN_NAME: ClassVar[Any] = None + COLUMN_DISTINCT_VALUES_COUNT: ClassVar[Any] = None + COLUMN_DISTINCT_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_DISTINCT_VALUES_PERCENTAGE: ClassVar[Any] = None + COLUMN_HISTOGRAM: ClassVar[Any] = None + COLUMN_MAX: ClassVar[Any] = None + COLUMN_MIN: ClassVar[Any] = None + COLUMN_MEAN: ClassVar[Any] = None + COLUMN_SUM: ClassVar[Any] = None + COLUMN_MEDIAN: ClassVar[Any] = None + COLUMN_STANDARD_DEVIATION: ClassVar[Any] = None + COLUMN_UNIQUE_VALUES_COUNT: ClassVar[Any] = None + COLUMN_UNIQUE_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_AVERAGE: ClassVar[Any] = None + COLUMN_AVERAGE_LENGTH: ClassVar[Any] = None + COLUMN_DUPLICATE_VALUES_COUNT: ClassVar[Any] = None + COLUMN_DUPLICATE_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_MAXIMUM_STRING_LENGTH: ClassVar[Any] = None + COLUMN_MAXS: ClassVar[Any] = None + COLUMN_MINIMUM_STRING_LENGTH: ClassVar[Any] = None + COLUMN_MINS: ClassVar[Any] = None + COLUMN_MISSING_VALUES_COUNT: ClassVar[Any] = None + COLUMN_MISSING_VALUES_COUNT_LONG: ClassVar[Any] = None + COLUMN_MISSING_VALUES_PERCENTAGE: ClassVar[Any] = None + COLUMN_UNIQUENESS_PERCENTAGE: ClassVar[Any] = None + COLUMN_VARIANCE: ClassVar[Any] = None + COLUMN_TOP_VALUES: ClassVar[Any] = None + COLUMN_MAX_VALUE: ClassVar[Any] = None + COLUMN_MIN_VALUE: ClassVar[Any] = None + COLUMN_MEAN_VALUE: ClassVar[Any] = None + COLUMN_SUM_VALUE: ClassVar[Any] = None + COLUMN_MEDIAN_VALUE: ClassVar[Any] = None + COLUMN_STANDARD_DEVIATION_VALUE: ClassVar[Any] = None + COLUMN_AVERAGE_VALUE: ClassVar[Any] = None + COLUMN_VARIANCE_VALUE: ClassVar[Any] = None + COLUMN_AVERAGE_LENGTH_VALUE: ClassVar[Any] = None + COLUMN_DISTRIBUTION_HISTOGRAM: ClassVar[Any] = None + COLUMN_DEPTH_LEVEL: ClassVar[Any] = None + NOSQL_COLLECTION_NAME: ClassVar[Any] = None + NOSQL_COLLECTION_QUALIFIED_NAME: ClassVar[Any] = None + COLUMN_IS_MEASURE: ClassVar[Any] = None + COLUMN_MEASURE_TYPE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_IS_MEASURE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_MEASURE_TYPE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_IS_DIMENSION: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_DIMENSION_TYPE: ClassVar[Any] = None + COLUMN_AI_INSIGHTS_FOREIGN_KEY_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None + QUERY_COUNT: ClassVar[Any] = None + QUERY_USER_COUNT: ClassVar[Any] = None + QUERY_USER_MAP: ClassVar[Any] = None + QUERY_COUNT_UPDATED_AT: ClassVar[Any] = None + DATABASE_NAME: ClassVar[Any] = None + DATABASE_QUALIFIED_NAME: ClassVar[Any] = None + SCHEMA_NAME: ClassVar[Any] = None + SCHEMA_QUALIFIED_NAME: ClassVar[Any] = None + TABLE_NAME: ClassVar[Any] = None + TABLE_QUALIFIED_NAME: ClassVar[Any] = None + VIEW_NAME: ClassVar[Any] = None + VIEW_QUALIFIED_NAME: ClassVar[Any] = None + CALCULATION_VIEW_NAME: ClassVar[Any] = None + CALCULATION_VIEW_QUALIFIED_NAME: ClassVar[Any] = None + IS_PROFILED: ClassVar[Any] = None + LAST_PROFILED_AT: ClassVar[Any] = None + SQL_AI_MODEL_CONTEXT_QUALIFIED_NAME: ClassVar[Any] = None + SQL_IS_SECURE: ClassVar[Any] = None + SQL_HAS_AI_INSIGHTS: ClassVar[Any] = None + SQL_AI_INSIGHTS_LAST_ANALYZED_AT: ClassVar[Any] = None + SQL_AI_INSIGHTS_POPULAR_BUSINESS_QUESTION_COUNT: ClassVar[Any] = None + SQL_AI_INSIGHTS_POPULAR_JOIN_COUNT: ClassVar[Any] = None + SQL_AI_INSIGHTS_POPULAR_FILTER_COUNT: ClassVar[Any] = None + SQL_AI_INSIGHTS_RELATIONSHIP_COUNT: ClassVar[Any] = None + SQL_COALESCE_LAST_RUN_STATUS: ClassVar[Any] = None + SQL_COALESCE_NODE_STATUS: ClassVar[Any] = None + SQL_COALESCE_LAST_RUN_AT: ClassVar[Any] = None + SQL_COALESCE_NODE_TYPE: ClassVar[Any] = None + SQL_COALESCE_ENVIRONMENT_ID: ClassVar[Any] = None + SQL_COALESCE_ENVIRONMENT_NAME: ClassVar[Any] = None + SQL_COALESCE_PROJECT_ID: ClassVar[Any] = None + SQL_COALESCE_PROJECT_NAME: ClassVar[Any] = None + SQL_SHARE_QUALIFIED_NAMES: ClassVar[Any] = None + INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None + OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None + ANOMALO_CHECKS: ClassVar[Any] = None + APPLICATION: ClassVar[Any] = None + APPLICATION_FIELD: ClassVar[Any] = None + CONTEXT_REPOSITORIES: ClassVar[Any] = None + COSMOS_MONGO_DB_COLLECTION: ClassVar[Any] = None + DATA_CONTRACT_LATEST: ClassVar[Any] = None + DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None + OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None + MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None + METRICS: ClassVar[Any] = None + METRIC_TIMESTAMPS: ClassVar[Any] = None + DATA_QUALITY_METRIC_DIMENSIONS: ClassVar[Any] = None + DQ_BASE_DATASET_RULES: ClassVar[Any] = None + DQ_BASE_COLUMN_RULES: ClassVar[Any] = None + DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None + DQ_REFERENCE_COLUMN_RULES: ClassVar[Any] = None + DBT_MODELS: ClassVar[Any] = None + SQL_DBT_MODELS: ClassVar[Any] = None + DBT_TESTS: ClassVar[Any] = None + DBT_SOURCES: ClassVar[Any] = None + SQL_DBT_SOURCES: ClassVar[Any] = None + DBT_METRICS: ClassVar[Any] = None + DBT_MODEL_COLUMNS: ClassVar[Any] = None + COLUMN_DBT_MODEL_COLUMNS: ClassVar[Any] = None + DBT_SEED_ASSETS: ClassVar[Any] = None + GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None + MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None + MONGO_DB_COLLECTION: ClassVar[Any] = None + MC_MONITORS: ClassVar[Any] = None + MC_INCIDENTS: ClassVar[Any] = None + PARTIAL_CHILD_FIELDS: ClassVar[Any] = None + PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None + INPUT_TO_PROCESSES: ClassVar[Any] = None + OUTPUT_FROM_PROCESSES: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None + FILES: ClassVar[Any] = None + LINKS: ClassVar[Any] = None + README: ClassVar[Any] = None + TABLE: ClassVar[Any] = None + NESTED_COLUMNS: ClassVar[Any] = None + PARENT_COLUMN: ClassVar[Any] = None + TABLE_PARTITION: ClassVar[Any] = None + VIEW: ClassVar[Any] = None + CALCULATION_VIEW: ClassVar[Any] = None + MATERIALISED_VIEW: ClassVar[Any] = None + FOREIGN_KEY_TO: ClassVar[Any] = None + FOREIGN_KEY_FROM: ClassVar[Any] = None + QUERIES: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_MODEL: ClassVar[Any] = None + SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None + SNOWFLAKE_DYNAMIC_TABLE: ClassVar[Any] = None + SNOWFLAKE_SEMANTIC_LOGICAL_TABLES: ClassVar[Any] = None + SODA_CHECKS: ClassVar[Any] = None + INPUT_TO_SPARK_JOBS: ClassVar[Any] = None + OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None + SQL_INSIGHT_OUTGOING_JOINS: ClassVar[Any] = None + SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None + SQL_INSIGHT_FILTERS: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None + + sap_analytics_cloud_model_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud model in which this column exists.""" + + sap_analytics_cloud_model_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud model in which this column exists.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + data_type: Union[str, None, UnsetType] = UNSET + """Data type of values in this column.""" + + sub_data_type: Union[str, None, UnsetType] = UNSET + """Sub-data type of this column.""" + + column_compression: Union[str, None, UnsetType] = UNSET + """Compression type of this column.""" + + column_encoding: Union[str, None, UnsetType] = UNSET + """Encoding type of this column.""" + + raw_data_type_definition: Union[str, None, UnsetType] = UNSET + """Raw data type definition of this column.""" + + order: Union[int, None, UnsetType] = UNSET + """Order (position) in which this column appears in the table (starting at 1).""" + + nested_column_order: Union[str, None, UnsetType] = UNSET + """Order (position) in which this column appears in the nested Column (nest level starts at 1).""" + + nested_column_count: Union[int, None, UnsetType] = UNSET + """Number of columns nested within this (STRUCT or NESTED) column.""" + + column_hierarchy: Union[List[Dict[str, str]], None, UnsetType] = UNSET + """List of top-level upstream nested columns.""" + + is_partition: Union[bool, None, UnsetType] = UNSET + """Whether this column is a partition column (true) or not (false).""" + + partition_order: Union[int, None, UnsetType] = UNSET + """Order (position) of this partition column in the table.""" + + is_clustered: Union[bool, None, UnsetType] = UNSET + """Whether this column is a clustered column (true) or not (false).""" + + is_primary: Union[bool, None, UnsetType] = UNSET + """When true, this column is the primary key for the table.""" + + is_foreign: Union[bool, None, UnsetType] = UNSET + """When true, this column is a foreign key to another table. NOTE: this must be true when using the foreignKeyTo relationship to specify columns that refer to this column as a foreign key.""" + + is_indexed: Union[bool, None, UnsetType] = UNSET + """When true, this column is indexed in the database.""" + + is_sort: Union[bool, None, UnsetType] = UNSET + """Whether this column is a sort column (true) or not (false).""" + + is_dist: Union[bool, None, UnsetType] = UNSET + """Whether this column is a distribution column (true) or not (false).""" + + is_pinned: Union[bool, None, UnsetType] = UNSET + """Whether this column is pinned (true) or not (false).""" + + pinned_by: Union[str, None, UnsetType] = UNSET + """User who pinned this column.""" + + pinned_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which this column was pinned, in milliseconds.""" + + precision: Union[int, None, UnsetType] = UNSET + """Total number of digits allowed, when the dataType is numeric.""" + + default_value: Union[str, None, UnsetType] = UNSET + """Default value for this column.""" + + is_nullable: Union[bool, None, UnsetType] = UNSET + """When true, the values in this column can be null.""" + + numeric_scale: Union[float, None, UnsetType] = UNSET + """Number of digits allowed to the right of the decimal point.""" + + max_length: Union[int, None, UnsetType] = UNSET + """Maximum length of a value in this column.""" + + validations: Union[Dict[str, str], None, UnsetType] = UNSET + """Validations for this column.""" + + parent_column_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the column this column is nested within, for STRUCT and NESTED columns.""" + + parent_column_name: Union[str, None, UnsetType] = UNSET + """Simple name of the column this column is nested within, for STRUCT and NESTED columns.""" + + column_distinct_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows that contain distinct values.""" + + column_distinct_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows that contain distinct values.""" + + column_distinct_values_percentage: Union[float, None, UnsetType] = UNSET + """Percentage of rows in a column that contain distinct values.""" + + column_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + """List of values in a histogram that represents the contents of this column.""" + + column_max: Union[float, None, UnsetType] = UNSET + """Greatest value in a numeric column.""" + + column_min: Union[float, None, UnsetType] = UNSET + """Least value in a numeric column.""" + + column_mean: Union[float, None, UnsetType] = UNSET + """Arithmetic mean of the values in a numeric column.""" + + column_sum: Union[float, None, UnsetType] = UNSET + """Calculated sum of the values in a numeric column.""" + + column_median: Union[float, None, UnsetType] = UNSET + """Calculated median of the values in a numeric column.""" + + column_standard_deviation: Union[float, None, UnsetType] = UNSET + """Calculated standard deviation of the values in a numeric column.""" + + column_unique_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows in which a value in this column appears only once.""" + + column_unique_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows in which a value in this column appears only once.""" + + column_average: Union[float, None, UnsetType] = UNSET + """Average value in this column.""" + + column_average_length: Union[float, None, UnsetType] = UNSET + """Average length of values in a string column.""" + + column_duplicate_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows that contain duplicate values.""" + + column_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows that contain duplicate values.""" + + column_maximum_string_length: Union[int, None, UnsetType] = UNSET + """Length of the longest value in a string column.""" + + column_maxs: Union[List[str], None, UnsetType] = UNSET + """List of the greatest values in a column.""" + + column_minimum_string_length: Union[int, None, UnsetType] = UNSET + """Length of the shortest value in a string column.""" + + column_mins: Union[List[str], None, UnsetType] = UNSET + """List of the least values in a column.""" + + column_missing_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows in a column that do not contain content.""" + + column_missing_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows in a column that do not contain content.""" + + column_missing_values_percentage: Union[float, None, UnsetType] = UNSET + """Percentage of rows in a column that do not contain content.""" + + column_uniqueness_percentage: Union[float, None, UnsetType] = UNSET + """Ratio indicating how unique data in this column is: 0 indicates that all values are the same, 100 indicates that all values in this column are unique.""" + + column_variance: Union[float, None, UnsetType] = UNSET + """Calculated variance of the values in a numeric column.""" + + column_top_values: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + """List of top values in this column.""" + + column_max_value: Union[float, None, UnsetType] = UNSET + """Greatest value in a numeric column.""" + + column_min_value: Union[float, None, UnsetType] = UNSET + """Least value in a numeric column.""" + + column_mean_value: Union[float, None, UnsetType] = UNSET + """Arithmetic mean of the values in a numeric column.""" + + column_sum_value: Union[float, None, UnsetType] = UNSET + """Calculated sum of the values in a numeric column.""" + + column_median_value: Union[float, None, UnsetType] = UNSET + """Calculated median of the values in a numeric column.""" + + column_standard_deviation_value: Union[float, None, UnsetType] = UNSET + """Calculated standard deviation of the values in a numeric column.""" + + column_average_value: Union[float, None, UnsetType] = UNSET + """Average value in this column.""" + + column_variance_value: Union[float, None, UnsetType] = UNSET + """Calculated variance of the values in a numeric column.""" + + column_average_length_value: Union[float, None, UnsetType] = UNSET + """Average length of values in a string column.""" + + column_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + """Detailed information representing a histogram of values for a column.""" + + column_depth_level: Union[int, None, UnsetType] = UNSET + """Level of nesting of this column, used for STRUCT and NESTED columns.""" + + nosql_collection_name: Union[str, None, UnsetType] = UNSET + """Simple name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" + + nosql_collection_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" + + column_is_measure: Union[bool, None, UnsetType] = UNSET + """When true, this column is of type measure/calculated.""" + + column_measure_type: Union[str, None, UnsetType] = UNSET + """The type of measure/calculated column this is, eg: base, calculated, derived.""" + + column_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET + """When true, this column is identified as a measure/calculated column by AI analysis of query patterns.""" + + column_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET + """Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived.""" + + column_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET + """When true, this column is identified as a dimension by AI analysis of query patterns.""" + + column_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET + """Type of dimension as classified by AI analysis, for example: time, categorical, geographic.""" + + column_ai_insights_foreign_key_column_qualified_name: Union[str, None, UnsetType] = UNSET + """Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns.""" + + query_count: Union[int, None, UnsetType] = UNSET + """Number of times this asset has been queried.""" + + query_user_count: Union[int, None, UnsetType] = UNSET + """Number of unique users who have queried this asset.""" + + query_user_map: Union[Dict[str, int], None, UnsetType] = UNSET + """Map of unique users who have queried this asset to the number of times they have queried it.""" + + query_count_updated_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which the query count was last updated, in milliseconds.""" + + database_name: Union[str, None, UnsetType] = UNSET + """Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database.""" + + database_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database.""" + + schema_name: Union[str, None, UnsetType] = UNSET + """Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema.""" + + schema_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema.""" + + table_name: Union[str, None, UnsetType] = UNSET + """Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table.""" + + table_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table.""" + + view_name: Union[str, None, UnsetType] = UNSET + """Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view.""" + + view_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view.""" + + calculation_view_name: Union[str, None, UnsetType] = UNSET + """Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view.""" + + calculation_view_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view.""" + + is_profiled: Union[bool, None, UnsetType] = UNSET + """Whether this asset has been profiled (true) or not (false).""" + + last_profiled_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which this asset was last profiled, in milliseconds.""" + + sql_ai_model_context_qualified_name: Union[str, None, UnsetType] = msgspec.field(default=UNSET, name="sqlAIModelContextQualifiedName") + """Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context.""" + + sql_is_secure: Union[bool, None, UnsetType] = UNSET + """Whether this asset is secure (true) or not (false).""" + + sql_has_ai_insights: Union[bool, None, UnsetType] = UNSET + """Whether this asset has any AI insights data available.""" + + sql_ai_insights_last_analyzed_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds.""" + + sql_ai_insights_popular_business_question_count: Union[int, None, UnsetType] = UNSET + """Number of popular business questions associated with this asset.""" + + sql_ai_insights_popular_join_count: Union[int, None, UnsetType] = UNSET + """Number of popular join patterns associated with this asset.""" + + sql_ai_insights_popular_filter_count: Union[int, None, UnsetType] = UNSET + """Number of popular filter patterns associated with this asset.""" + + sql_ai_insights_relationship_count: Union[int, None, UnsetType] = UNSET + """Number of relationship insights associated with this asset.""" + + sql_coalesce_last_run_status: Union[str, None, UnsetType] = UNSET + """Status of the Coalesce run. One of: success, failure, cancelled, or skipped.""" + + sql_coalesce_node_status: Union[str, None, UnsetType] = UNSET + """Status of the Coalesce node for a given run.""" + + sql_coalesce_last_run_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds.""" + + sql_coalesce_node_type: Union[str, None, UnsetType] = UNSET + """Type of the Coalesce node.""" + + sql_coalesce_environment_id: Union[str, None, UnsetType] = UNSET + """Identifier of the Coalesce environment.""" + + sql_coalesce_environment_name: Union[str, None, UnsetType] = UNSET + """Name of the Coalesce environment.""" + + sql_coalesce_project_id: Union[str, None, UnsetType] = UNSET + """Identifier of the Coalesce project.""" + + sql_coalesce_project_name: Union[str, None, UnsetType] = UNSET + """Name of the Coalesce project.""" + + sql_share_qualified_names: Union[List[str], None, UnsetType] = UNSET + """Qualified names of data shares this asset is granted to.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + cosmos_mongo_db_collection: Union[RelatedCosmosMongoDBCollection, None, UnsetType] = msgspec.field(default=UNSET, name="cosmosMongoDBCollection") + """Cosmos collection in which this column exists.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + metric_timestamps: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + data_quality_metric_dimensions: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_base_column_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this column.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + dq_reference_column_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this column is referenced.""" + + dbt_models: Union[List[RelatedDbtModel], None, UnsetType] = UNSET + """(Deprecated) Model containing the assets.""" + + sql_dbt_models: Union[List[RelatedDbtModel], None, UnsetType] = UNSET + """Assets related to the model.""" + + dbt_tests: Union[List[RelatedDbtTest], None, UnsetType] = UNSET + """Tests related to this asset.""" + + dbt_sources: Union[List[RelatedDbtSource], None, UnsetType] = UNSET + """Source containing the assets.""" + + sql_dbt_sources: Union[List[RelatedDbtSource], None, UnsetType] = msgspec.field(default=UNSET, name="sqlDBTSources") + """Sources related to this asset.""" + + dbt_metrics: Union[List[RelatedDbtMetric], None, UnsetType] = UNSET + """Metrics related to this model column.""" + + dbt_model_columns: Union[List[RelatedDbtModelColumn], None, UnsetType] = UNSET + """(Deprecated) Model columns related to this model column.""" + + column_dbt_model_columns: Union[List[RelatedDbtModelColumn], None, UnsetType] = UNSET + """Model columns related to this column.""" + + dbt_seed_assets: Union[List[RelatedDbtSeed], None, UnsetType] = UNSET + """DBT seeds that materialize the SQL asset.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mongo_db_collection: Union[RelatedMongoDBCollection, None, UnsetType] = msgspec.field(default=UNSET, name="mongoDBCollection") + """Collection in which the columns exist.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + table: Union[RelatedTable, None, UnsetType] = UNSET + """Table in which this column exists.""" + + nested_columns: Union[List[RelatedColumn], None, UnsetType] = UNSET + """Nested columns that exist within this column.""" + + parent_column: Union[RelatedColumn, None, UnsetType] = UNSET + """Column in which this sub-column is nested.""" + + table_partition: Union[RelatedTablePartition, None, UnsetType] = UNSET + """Table partition that contains this column.""" + + view: Union[RelatedView, None, UnsetType] = UNSET + """View in which this column exists.""" + + calculation_view: Union[RelatedCalculationView, None, UnsetType] = UNSET + """Calculate view in which this column exists.""" + + materialised_view: Union[RelatedMaterialisedView, None, UnsetType] = UNSET + """Materialized view in which this column exists.""" + + foreign_key_to: Union[List[RelatedColumn], None, UnsetType] = UNSET + """Columns that use this column as a foreign key.""" + + foreign_key_from: Union[RelatedColumn, None, UnsetType] = UNSET + """Column this foreign key column refers to.""" + + queries: Union[List[RelatedQuery], None, UnsetType] = UNSET + """Queries that access this column.""" + + sap_analytics_cloud_model: Union[RelatedSapAnalyticsCloudModel, None, UnsetType] = UNSET + """Model in which this column is defined.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + snowflake_dynamic_table: Union[RelatedSnowflakeDynamicTable, None, UnsetType] = UNSET + """Snowflake dynamic table in which this column exists.""" + + snowflake_semantic_logical_tables: Union[List[RelatedSnowflakeSemanticLogicalTable], None, UnsetType] = UNSET + """Semantic logical tables that reference this physical table or view.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + sql_insight_outgoing_joins: Union[List[RelatedSqlInsightJoin], None, UnsetType] = UNSET + """Join insights where this asset is the source dataset.""" + + sql_insight_incoming_joins: Union[List[RelatedSqlInsightJoin], None, UnsetType] = UNSET + """Join insights where this asset is the joined dataset.""" + + sql_insight_filters: Union[List[RelatedSqlInsightFilter], None, UnsetType] = UNSET + """Filter insights for this column.""" + + sql_insight_business_questions: Union[List[RelatedSqlInsightBusinessQuestion], None, UnsetType] = UNSET + """Business question insights for this SQL asset.""" + + def __post_init__(self) -> None: + self.type_name = "SapAnalyticsCloudColumn" + + # ========================================================================= + # SDK Methods + # ========================================================================= + + _QUALIFIED_NAME_PATTERN: ClassVar[re.Pattern] = re.compile( + r"^.+/[^/]+/[^/]+/[^/]+/[^/]+$" + ) + + def validate(self, for_creation: bool = False) -> None: + """ + Dry-run validation of this SapAnalyticsCloudColumn instance. + + Checks that required fields (type_name, name, qualified_name) are set. + When ``for_creation=True``, also checks hierarchy-specific fields + (parent references, denormalized attributes) needed to create this asset. + + This is purely opt-in and is NOT called by any serde path — only by + explicit user invocation (e.g., validating JSONL before sending to Atlan). + + Args: + for_creation: If True, also validate fields required for asset creation. + + Raises: + ValueError: If any required fields are missing or invalid. + """ + errors: list[str] = [] + if self.type_name is UNSET: + errors.append("type_name is required") + if self.name is UNSET: + errors.append("name is required") + if self.qualified_name is UNSET or self.qualified_name is None: + errors.append("qualified_name is required") + elif not self._QUALIFIED_NAME_PATTERN.match(self.qualified_name): + errors.append( + f"qualified_name '{self.qualified_name}' does not match expected " + f"pattern: {self._QUALIFIED_NAME_PATTERN.pattern}" + ) + if for_creation: + if self.connection_qualified_name is UNSET: + errors.append("connection_qualified_name is required for creation") + if self.sap_analytics_cloud_model is UNSET: + errors.append("sap_analytics_cloud_model is required for creation") + if self.sap_analytics_cloud_model_name is UNSET: + errors.append("sap_analytics_cloud_model_name is required for creation") + if self.sap_analytics_cloud_model_qualified_name is UNSET: + errors.append("sap_analytics_cloud_model_qualified_name is required for creation") + if self.order is UNSET: + errors.append("order is required for creation") + if errors: + raise ValueError(f"SapAnalyticsCloudColumn validation failed: {errors}") + + def minimize(self) -> "SapAnalyticsCloudColumn": + """ + Return a minimal copy of this SapAnalyticsCloudColumn with only updater-required fields. + + Calls :meth:`validate` first to ensure the instance is valid, then + returns a new SapAnalyticsCloudColumn with only the fields needed for an update + (qualified_name, name, and any type-specific additional fields). + + Returns: + A new SapAnalyticsCloudColumn instance with only the minimum required fields. + """ + self.validate() + return SapAnalyticsCloudColumn(qualified_name=self.qualified_name, name=self.name) + + def relate(self) -> "RelatedSapAnalyticsCloudColumn": + """ + Create a :class:`RelatedSapAnalyticsCloudColumn` reference from this instance. + + Returns a lightweight reference suitable for use in relationship + attributes. Prefers ``guid`` if set, otherwise falls back to + ``qualified_name``. + + Returns: + A RelatedSapAnalyticsCloudColumn reference to this asset. + """ + if self.guid is not UNSET: + return RelatedSapAnalyticsCloudColumn(guid=self.guid) + return RelatedSapAnalyticsCloudColumn(qualified_name=self.qualified_name) + + # ========================================================================= + # Optimized Serialization Methods (override Asset base class) + # ========================================================================= + + def to_json(self, nested: bool = True, serde: Serde | None = None) -> str: + """ + Convert to JSON string using optimized nested struct serialization. + + Args: + nested: If True (default), use nested API format. If False, use flat format. + serde: Optional Serde instance for encoder reuse. Uses shared singleton if None. + + Returns: + JSON string representation + """ + if serde is None: + serde = get_serde() + if nested: + return self.to_nested_bytes(serde).decode("utf-8") + else: + return serde.encode(self).decode("utf-8") + + def to_nested_bytes(self, serde: Serde | None = None) -> bytes: + """Serialize to Atlas nested-format JSON bytes (pure msgspec, no dict intermediate).""" + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_column_to_nested_bytes(self, serde) + + @staticmethod + def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapAnalyticsCloudColumn: + """ + Create from JSON string or bytes using optimized nested struct deserialization. + + Args: + json_data: JSON string or bytes to deserialize + serde: Optional Serde instance for decoder reuse. Uses shared singleton if None. + + Returns: + SapAnalyticsCloudColumn instance + """ + if isinstance(json_data, str): + json_data = json_data.encode("utf-8") + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_column_from_nested_bytes(json_data, serde) + + +# ============================================================================= +# NESTED FORMAT CLASSES +# ============================================================================= + +class SapAnalyticsCloudColumnAttributes(AssetAttributes): + """SapAnalyticsCloudColumn-specific attributes for nested API format.""" + + sap_analytics_cloud_model_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud model in which this column exists.""" + + sap_analytics_cloud_model_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud model in which this column exists.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + data_type: Union[str, None, UnsetType] = UNSET + """Data type of values in this column.""" + + sub_data_type: Union[str, None, UnsetType] = UNSET + """Sub-data type of this column.""" + + column_compression: Union[str, None, UnsetType] = UNSET + """Compression type of this column.""" + + column_encoding: Union[str, None, UnsetType] = UNSET + """Encoding type of this column.""" + + raw_data_type_definition: Union[str, None, UnsetType] = UNSET + """Raw data type definition of this column.""" + + order: Union[int, None, UnsetType] = UNSET + """Order (position) in which this column appears in the table (starting at 1).""" + + nested_column_order: Union[str, None, UnsetType] = UNSET + """Order (position) in which this column appears in the nested Column (nest level starts at 1).""" + + nested_column_count: Union[int, None, UnsetType] = UNSET + """Number of columns nested within this (STRUCT or NESTED) column.""" + + column_hierarchy: Union[List[Dict[str, str]], None, UnsetType] = UNSET + """List of top-level upstream nested columns.""" + + is_partition: Union[bool, None, UnsetType] = UNSET + """Whether this column is a partition column (true) or not (false).""" + + partition_order: Union[int, None, UnsetType] = UNSET + """Order (position) of this partition column in the table.""" + + is_clustered: Union[bool, None, UnsetType] = UNSET + """Whether this column is a clustered column (true) or not (false).""" + + is_primary: Union[bool, None, UnsetType] = UNSET + """When true, this column is the primary key for the table.""" + + is_foreign: Union[bool, None, UnsetType] = UNSET + """When true, this column is a foreign key to another table. NOTE: this must be true when using the foreignKeyTo relationship to specify columns that refer to this column as a foreign key.""" + + is_indexed: Union[bool, None, UnsetType] = UNSET + """When true, this column is indexed in the database.""" + + is_sort: Union[bool, None, UnsetType] = UNSET + """Whether this column is a sort column (true) or not (false).""" + + is_dist: Union[bool, None, UnsetType] = UNSET + """Whether this column is a distribution column (true) or not (false).""" + + is_pinned: Union[bool, None, UnsetType] = UNSET + """Whether this column is pinned (true) or not (false).""" + + pinned_by: Union[str, None, UnsetType] = UNSET + """User who pinned this column.""" + + pinned_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which this column was pinned, in milliseconds.""" + + precision: Union[int, None, UnsetType] = UNSET + """Total number of digits allowed, when the dataType is numeric.""" + + default_value: Union[str, None, UnsetType] = UNSET + """Default value for this column.""" + + is_nullable: Union[bool, None, UnsetType] = UNSET + """When true, the values in this column can be null.""" + + numeric_scale: Union[float, None, UnsetType] = UNSET + """Number of digits allowed to the right of the decimal point.""" + + max_length: Union[int, None, UnsetType] = UNSET + """Maximum length of a value in this column.""" + + validations: Union[Dict[str, str], None, UnsetType] = UNSET + """Validations for this column.""" + + parent_column_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the column this column is nested within, for STRUCT and NESTED columns.""" + + parent_column_name: Union[str, None, UnsetType] = UNSET + """Simple name of the column this column is nested within, for STRUCT and NESTED columns.""" + + column_distinct_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows that contain distinct values.""" + + column_distinct_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows that contain distinct values.""" + + column_distinct_values_percentage: Union[float, None, UnsetType] = UNSET + """Percentage of rows in a column that contain distinct values.""" + + column_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + """List of values in a histogram that represents the contents of this column.""" + + column_max: Union[float, None, UnsetType] = UNSET + """Greatest value in a numeric column.""" + + column_min: Union[float, None, UnsetType] = UNSET + """Least value in a numeric column.""" + + column_mean: Union[float, None, UnsetType] = UNSET + """Arithmetic mean of the values in a numeric column.""" + + column_sum: Union[float, None, UnsetType] = UNSET + """Calculated sum of the values in a numeric column.""" + + column_median: Union[float, None, UnsetType] = UNSET + """Calculated median of the values in a numeric column.""" + + column_standard_deviation: Union[float, None, UnsetType] = UNSET + """Calculated standard deviation of the values in a numeric column.""" + + column_unique_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows in which a value in this column appears only once.""" + + column_unique_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows in which a value in this column appears only once.""" + + column_average: Union[float, None, UnsetType] = UNSET + """Average value in this column.""" + + column_average_length: Union[float, None, UnsetType] = UNSET + """Average length of values in a string column.""" + + column_duplicate_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows that contain duplicate values.""" + + column_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows that contain duplicate values.""" + + column_maximum_string_length: Union[int, None, UnsetType] = UNSET + """Length of the longest value in a string column.""" + + column_maxs: Union[List[str], None, UnsetType] = UNSET + """List of the greatest values in a column.""" + + column_minimum_string_length: Union[int, None, UnsetType] = UNSET + """Length of the shortest value in a string column.""" + + column_mins: Union[List[str], None, UnsetType] = UNSET + """List of the least values in a column.""" + + column_missing_values_count: Union[int, None, UnsetType] = UNSET + """Number of rows in a column that do not contain content.""" + + column_missing_values_count_long: Union[int, None, UnsetType] = UNSET + """Number of rows in a column that do not contain content.""" + + column_missing_values_percentage: Union[float, None, UnsetType] = UNSET + """Percentage of rows in a column that do not contain content.""" + + column_uniqueness_percentage: Union[float, None, UnsetType] = UNSET + """Ratio indicating how unique data in this column is: 0 indicates that all values are the same, 100 indicates that all values in this column are unique.""" + + column_variance: Union[float, None, UnsetType] = UNSET + """Calculated variance of the values in a numeric column.""" + + column_top_values: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + """List of top values in this column.""" + + column_max_value: Union[float, None, UnsetType] = UNSET + """Greatest value in a numeric column.""" + + column_min_value: Union[float, None, UnsetType] = UNSET + """Least value in a numeric column.""" + + column_mean_value: Union[float, None, UnsetType] = UNSET + """Arithmetic mean of the values in a numeric column.""" + + column_sum_value: Union[float, None, UnsetType] = UNSET + """Calculated sum of the values in a numeric column.""" + + column_median_value: Union[float, None, UnsetType] = UNSET + """Calculated median of the values in a numeric column.""" + + column_standard_deviation_value: Union[float, None, UnsetType] = UNSET + """Calculated standard deviation of the values in a numeric column.""" + + column_average_value: Union[float, None, UnsetType] = UNSET + """Average value in this column.""" + + column_variance_value: Union[float, None, UnsetType] = UNSET + """Calculated variance of the values in a numeric column.""" + + column_average_length_value: Union[float, None, UnsetType] = UNSET + """Average length of values in a string column.""" + + column_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + """Detailed information representing a histogram of values for a column.""" + + column_depth_level: Union[int, None, UnsetType] = UNSET + """Level of nesting of this column, used for STRUCT and NESTED columns.""" + + nosql_collection_name: Union[str, None, UnsetType] = UNSET + """Simple name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" + + nosql_collection_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" + + column_is_measure: Union[bool, None, UnsetType] = UNSET + """When true, this column is of type measure/calculated.""" + + column_measure_type: Union[str, None, UnsetType] = UNSET + """The type of measure/calculated column this is, eg: base, calculated, derived.""" + + column_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET + """When true, this column is identified as a measure/calculated column by AI analysis of query patterns.""" + + column_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET + """Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived.""" + + column_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET + """When true, this column is identified as a dimension by AI analysis of query patterns.""" + + column_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET + """Type of dimension as classified by AI analysis, for example: time, categorical, geographic.""" + + column_ai_insights_foreign_key_column_qualified_name: Union[str, None, UnsetType] = UNSET + """Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns.""" + + query_count: Union[int, None, UnsetType] = UNSET + """Number of times this asset has been queried.""" + + query_user_count: Union[int, None, UnsetType] = UNSET + """Number of unique users who have queried this asset.""" + + query_user_map: Union[Dict[str, int], None, UnsetType] = UNSET + """Map of unique users who have queried this asset to the number of times they have queried it.""" + + query_count_updated_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which the query count was last updated, in milliseconds.""" + + database_name: Union[str, None, UnsetType] = UNSET + """Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database.""" + + database_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database.""" + + schema_name: Union[str, None, UnsetType] = UNSET + """Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema.""" + + schema_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema.""" + + table_name: Union[str, None, UnsetType] = UNSET + """Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table.""" + + table_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table.""" + + view_name: Union[str, None, UnsetType] = UNSET + """Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view.""" + + view_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view.""" + + calculation_view_name: Union[str, None, UnsetType] = UNSET + """Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view.""" + + calculation_view_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view.""" + + is_profiled: Union[bool, None, UnsetType] = UNSET + """Whether this asset has been profiled (true) or not (false).""" + + last_profiled_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which this asset was last profiled, in milliseconds.""" + + sql_ai_model_context_qualified_name: Union[str, None, UnsetType] = msgspec.field(default=UNSET, name="sqlAIModelContextQualifiedName") + """Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context.""" + + sql_is_secure: Union[bool, None, UnsetType] = UNSET + """Whether this asset is secure (true) or not (false).""" + + sql_has_ai_insights: Union[bool, None, UnsetType] = UNSET + """Whether this asset has any AI insights data available.""" + + sql_ai_insights_last_analyzed_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds.""" + + sql_ai_insights_popular_business_question_count: Union[int, None, UnsetType] = UNSET + """Number of popular business questions associated with this asset.""" + + sql_ai_insights_popular_join_count: Union[int, None, UnsetType] = UNSET + """Number of popular join patterns associated with this asset.""" + + sql_ai_insights_popular_filter_count: Union[int, None, UnsetType] = UNSET + """Number of popular filter patterns associated with this asset.""" + + sql_ai_insights_relationship_count: Union[int, None, UnsetType] = UNSET + """Number of relationship insights associated with this asset.""" + + sql_coalesce_last_run_status: Union[str, None, UnsetType] = UNSET + """Status of the Coalesce run. One of: success, failure, cancelled, or skipped.""" + + sql_coalesce_node_status: Union[str, None, UnsetType] = UNSET + """Status of the Coalesce node for a given run.""" + + sql_coalesce_last_run_at: Union[int, None, UnsetType] = UNSET + """Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds.""" + + sql_coalesce_node_type: Union[str, None, UnsetType] = UNSET + """Type of the Coalesce node.""" + + sql_coalesce_environment_id: Union[str, None, UnsetType] = UNSET + """Identifier of the Coalesce environment.""" + + sql_coalesce_environment_name: Union[str, None, UnsetType] = UNSET + """Name of the Coalesce environment.""" + + sql_coalesce_project_id: Union[str, None, UnsetType] = UNSET + """Identifier of the Coalesce project.""" + + sql_coalesce_project_name: Union[str, None, UnsetType] = UNSET + """Name of the Coalesce project.""" + + sql_share_qualified_names: Union[List[str], None, UnsetType] = UNSET + """Qualified names of data shares this asset is granted to.""" + +class SapAnalyticsCloudColumnRelationshipAttributes(AssetRelationshipAttributes): + """SapAnalyticsCloudColumn-specific relationship attributes for nested API format.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + cosmos_mongo_db_collection: Union[RelatedCosmosMongoDBCollection, None, UnsetType] = msgspec.field(default=UNSET, name="cosmosMongoDBCollection") + """Cosmos collection in which this column exists.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + metric_timestamps: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + data_quality_metric_dimensions: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_base_column_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this column.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + dq_reference_column_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this column is referenced.""" + + dbt_models: Union[List[RelatedDbtModel], None, UnsetType] = UNSET + """(Deprecated) Model containing the assets.""" + + sql_dbt_models: Union[List[RelatedDbtModel], None, UnsetType] = UNSET + """Assets related to the model.""" + + dbt_tests: Union[List[RelatedDbtTest], None, UnsetType] = UNSET + """Tests related to this asset.""" + + dbt_sources: Union[List[RelatedDbtSource], None, UnsetType] = UNSET + """Source containing the assets.""" + + sql_dbt_sources: Union[List[RelatedDbtSource], None, UnsetType] = msgspec.field(default=UNSET, name="sqlDBTSources") + """Sources related to this asset.""" + + dbt_metrics: Union[List[RelatedDbtMetric], None, UnsetType] = UNSET + """Metrics related to this model column.""" + + dbt_model_columns: Union[List[RelatedDbtModelColumn], None, UnsetType] = UNSET + """(Deprecated) Model columns related to this model column.""" + + column_dbt_model_columns: Union[List[RelatedDbtModelColumn], None, UnsetType] = UNSET + """Model columns related to this column.""" + + dbt_seed_assets: Union[List[RelatedDbtSeed], None, UnsetType] = UNSET + """DBT seeds that materialize the SQL asset.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mongo_db_collection: Union[RelatedMongoDBCollection, None, UnsetType] = msgspec.field(default=UNSET, name="mongoDBCollection") + """Collection in which the columns exist.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + table: Union[RelatedTable, None, UnsetType] = UNSET + """Table in which this column exists.""" + + nested_columns: Union[List[RelatedColumn], None, UnsetType] = UNSET + """Nested columns that exist within this column.""" + + parent_column: Union[RelatedColumn, None, UnsetType] = UNSET + """Column in which this sub-column is nested.""" + + table_partition: Union[RelatedTablePartition, None, UnsetType] = UNSET + """Table partition that contains this column.""" + + view: Union[RelatedView, None, UnsetType] = UNSET + """View in which this column exists.""" + + calculation_view: Union[RelatedCalculationView, None, UnsetType] = UNSET + """Calculate view in which this column exists.""" + + materialised_view: Union[RelatedMaterialisedView, None, UnsetType] = UNSET + """Materialized view in which this column exists.""" + + foreign_key_to: Union[List[RelatedColumn], None, UnsetType] = UNSET + """Columns that use this column as a foreign key.""" + + foreign_key_from: Union[RelatedColumn, None, UnsetType] = UNSET + """Column this foreign key column refers to.""" + + queries: Union[List[RelatedQuery], None, UnsetType] = UNSET + """Queries that access this column.""" + + sap_analytics_cloud_model: Union[RelatedSapAnalyticsCloudModel, None, UnsetType] = UNSET + """Model in which this column is defined.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + snowflake_dynamic_table: Union[RelatedSnowflakeDynamicTable, None, UnsetType] = UNSET + """Snowflake dynamic table in which this column exists.""" + + snowflake_semantic_logical_tables: Union[List[RelatedSnowflakeSemanticLogicalTable], None, UnsetType] = UNSET + """Semantic logical tables that reference this physical table or view.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + sql_insight_outgoing_joins: Union[List[RelatedSqlInsightJoin], None, UnsetType] = UNSET + """Join insights where this asset is the source dataset.""" + + sql_insight_incoming_joins: Union[List[RelatedSqlInsightJoin], None, UnsetType] = UNSET + """Join insights where this asset is the joined dataset.""" + + sql_insight_filters: Union[List[RelatedSqlInsightFilter], None, UnsetType] = UNSET + """Filter insights for this column.""" + + sql_insight_business_questions: Union[List[RelatedSqlInsightBusinessQuestion], None, UnsetType] = UNSET + """Business question insights for this SQL asset.""" + +class SapAnalyticsCloudColumnNested(AssetNested): + """SapAnalyticsCloudColumn in nested API format for high-performance serialization.""" + + attributes: Union[SapAnalyticsCloudColumnAttributes, UnsetType] = UNSET + relationship_attributes: Union[SapAnalyticsCloudColumnRelationshipAttributes, UnsetType] = UNSET + append_relationship_attributes: Union[SapAnalyticsCloudColumnRelationshipAttributes, UnsetType] = UNSET + remove_relationship_attributes: Union[SapAnalyticsCloudColumnRelationshipAttributes, UnsetType] = UNSET + +# ============================================================================= +# CONVERSION HELPERS & CONSTANTS +# ============================================================================= + +_SAP_ANALYTICS_CLOUD_COLUMN_REL_FIELDS: List[str] = [ + *_ASSET_REL_FIELDS, + "input_to_airflow_tasks", + "output_from_airflow_tasks", + "anomalo_checks", + "application", + "application_field", + "context_repositories", + "cosmos_mongo_db_collection", + "data_contract_latest", + "data_contract_latest_certified", + "output_port_data_products", + "input_port_data_products", + "model_implemented_entities", + "model_implemented_attributes", + "metrics", + "metric_timestamps", + "data_quality_metric_dimensions", + "dq_base_dataset_rules", + "dq_base_column_rules", + "dq_reference_dataset_rules", + "dq_reference_column_rules", + "dbt_models", + "sql_dbt_models", + "dbt_tests", + "dbt_sources", + "sql_dbt_sources", + "dbt_metrics", + "dbt_model_columns", + "column_dbt_model_columns", + "dbt_seed_assets", + "gcp_dataplex_aspect_type_metadata_entities", + "meanings", + "knowledge_linked_files", + "mongo_db_collection", + "mc_monitors", + "mc_incidents", + "partial_child_fields", + "partial_child_objects", + "input_to_processes", + "output_from_processes", + "user_def_relationship_to", + "user_def_relationship_from", + "files", + "links", + "readme", + "table", + "nested_columns", + "parent_column", + "table_partition", + "view", + "calculation_view", + "materialised_view", + "foreign_key_to", + "foreign_key_from", + "queries", + "sap_analytics_cloud_model", + "schema_registry_subjects", + "snowflake_dynamic_table", + "snowflake_semantic_logical_tables", + "soda_checks", + "input_to_spark_jobs", + "output_from_spark_jobs", + "sql_insight_outgoing_joins", + "sql_insight_incoming_joins", + "sql_insight_filters", + "sql_insight_business_questions", +] + +def _populate_sap_analytics_cloud_column_attrs(attrs: SapAnalyticsCloudColumnAttributes, obj: SapAnalyticsCloudColumn) -> None: + """Populate SapAnalyticsCloudColumn-specific attributes on the attrs struct.""" + _populate_asset_attrs(attrs, obj) + attrs.sap_analytics_cloud_model_qualified_name = obj.sap_analytics_cloud_model_qualified_name + attrs.sap_analytics_cloud_model_name = obj.sap_analytics_cloud_model_name + attrs.sap_analytics_cloud_resource_id = obj.sap_analytics_cloud_resource_id + attrs.sap_analytics_cloud_object_id = obj.sap_analytics_cloud_object_id + attrs.sap_analytics_cloud_repository_partition = obj.sap_analytics_cloud_repository_partition + attrs.sap_analytics_cloud_workspace_id = obj.sap_analytics_cloud_workspace_id + attrs.sap_analytics_cloud_workspace_name = obj.sap_analytics_cloud_workspace_name + attrs.sap_analytics_cloud_parent_folder_qualified_name = obj.sap_analytics_cloud_parent_folder_qualified_name + attrs.sap_analytics_cloud_parent_folder_name = obj.sap_analytics_cloud_parent_folder_name + attrs.sap_technical_name = obj.sap_technical_name + attrs.sap_logical_name = obj.sap_logical_name + attrs.sap_package_name = obj.sap_package_name + attrs.sap_component_name = obj.sap_component_name + attrs.sap_data_type = obj.sap_data_type + attrs.sap_field_count = obj.sap_field_count + attrs.sap_field_order = obj.sap_field_order + attrs.catalog_dataset_guid = obj.catalog_dataset_guid + attrs.data_type = obj.data_type + attrs.sub_data_type = obj.sub_data_type + attrs.column_compression = obj.column_compression + attrs.column_encoding = obj.column_encoding + attrs.raw_data_type_definition = obj.raw_data_type_definition + attrs.order = obj.order + attrs.nested_column_order = obj.nested_column_order + attrs.nested_column_count = obj.nested_column_count + attrs.column_hierarchy = obj.column_hierarchy + attrs.is_partition = obj.is_partition + attrs.partition_order = obj.partition_order + attrs.is_clustered = obj.is_clustered + attrs.is_primary = obj.is_primary + attrs.is_foreign = obj.is_foreign + attrs.is_indexed = obj.is_indexed + attrs.is_sort = obj.is_sort + attrs.is_dist = obj.is_dist + attrs.is_pinned = obj.is_pinned + attrs.pinned_by = obj.pinned_by + attrs.pinned_at = obj.pinned_at + attrs.precision = obj.precision + attrs.default_value = obj.default_value + attrs.is_nullable = obj.is_nullable + attrs.numeric_scale = obj.numeric_scale + attrs.max_length = obj.max_length + attrs.validations = obj.validations + attrs.parent_column_qualified_name = obj.parent_column_qualified_name + attrs.parent_column_name = obj.parent_column_name + attrs.column_distinct_values_count = obj.column_distinct_values_count + attrs.column_distinct_values_count_long = obj.column_distinct_values_count_long + attrs.column_distinct_values_percentage = obj.column_distinct_values_percentage + attrs.column_histogram = obj.column_histogram + attrs.column_max = obj.column_max + attrs.column_min = obj.column_min + attrs.column_mean = obj.column_mean + attrs.column_sum = obj.column_sum + attrs.column_median = obj.column_median + attrs.column_standard_deviation = obj.column_standard_deviation + attrs.column_unique_values_count = obj.column_unique_values_count + attrs.column_unique_values_count_long = obj.column_unique_values_count_long + attrs.column_average = obj.column_average + attrs.column_average_length = obj.column_average_length + attrs.column_duplicate_values_count = obj.column_duplicate_values_count + attrs.column_duplicate_values_count_long = obj.column_duplicate_values_count_long + attrs.column_maximum_string_length = obj.column_maximum_string_length + attrs.column_maxs = obj.column_maxs + attrs.column_minimum_string_length = obj.column_minimum_string_length + attrs.column_mins = obj.column_mins + attrs.column_missing_values_count = obj.column_missing_values_count + attrs.column_missing_values_count_long = obj.column_missing_values_count_long + attrs.column_missing_values_percentage = obj.column_missing_values_percentage + attrs.column_uniqueness_percentage = obj.column_uniqueness_percentage + attrs.column_variance = obj.column_variance + attrs.column_top_values = obj.column_top_values + attrs.column_max_value = obj.column_max_value + attrs.column_min_value = obj.column_min_value + attrs.column_mean_value = obj.column_mean_value + attrs.column_sum_value = obj.column_sum_value + attrs.column_median_value = obj.column_median_value + attrs.column_standard_deviation_value = obj.column_standard_deviation_value + attrs.column_average_value = obj.column_average_value + attrs.column_variance_value = obj.column_variance_value + attrs.column_average_length_value = obj.column_average_length_value + attrs.column_distribution_histogram = obj.column_distribution_histogram + attrs.column_depth_level = obj.column_depth_level + attrs.nosql_collection_name = obj.nosql_collection_name + attrs.nosql_collection_qualified_name = obj.nosql_collection_qualified_name + attrs.column_is_measure = obj.column_is_measure + attrs.column_measure_type = obj.column_measure_type + attrs.column_ai_insights_is_measure = obj.column_ai_insights_is_measure + attrs.column_ai_insights_measure_type = obj.column_ai_insights_measure_type + attrs.column_ai_insights_is_dimension = obj.column_ai_insights_is_dimension + attrs.column_ai_insights_dimension_type = obj.column_ai_insights_dimension_type + attrs.column_ai_insights_foreign_key_column_qualified_name = obj.column_ai_insights_foreign_key_column_qualified_name + attrs.query_count = obj.query_count + attrs.query_user_count = obj.query_user_count + attrs.query_user_map = obj.query_user_map + attrs.query_count_updated_at = obj.query_count_updated_at + attrs.database_name = obj.database_name + attrs.database_qualified_name = obj.database_qualified_name + attrs.schema_name = obj.schema_name + attrs.schema_qualified_name = obj.schema_qualified_name + attrs.table_name = obj.table_name + attrs.table_qualified_name = obj.table_qualified_name + attrs.view_name = obj.view_name + attrs.view_qualified_name = obj.view_qualified_name + attrs.calculation_view_name = obj.calculation_view_name + attrs.calculation_view_qualified_name = obj.calculation_view_qualified_name + attrs.is_profiled = obj.is_profiled + attrs.last_profiled_at = obj.last_profiled_at + attrs.sql_ai_model_context_qualified_name = obj.sql_ai_model_context_qualified_name + attrs.sql_is_secure = obj.sql_is_secure + attrs.sql_has_ai_insights = obj.sql_has_ai_insights + attrs.sql_ai_insights_last_analyzed_at = obj.sql_ai_insights_last_analyzed_at + attrs.sql_ai_insights_popular_business_question_count = obj.sql_ai_insights_popular_business_question_count + attrs.sql_ai_insights_popular_join_count = obj.sql_ai_insights_popular_join_count + attrs.sql_ai_insights_popular_filter_count = obj.sql_ai_insights_popular_filter_count + attrs.sql_ai_insights_relationship_count = obj.sql_ai_insights_relationship_count + attrs.sql_coalesce_last_run_status = obj.sql_coalesce_last_run_status + attrs.sql_coalesce_node_status = obj.sql_coalesce_node_status + attrs.sql_coalesce_last_run_at = obj.sql_coalesce_last_run_at + attrs.sql_coalesce_node_type = obj.sql_coalesce_node_type + attrs.sql_coalesce_environment_id = obj.sql_coalesce_environment_id + attrs.sql_coalesce_environment_name = obj.sql_coalesce_environment_name + attrs.sql_coalesce_project_id = obj.sql_coalesce_project_id + attrs.sql_coalesce_project_name = obj.sql_coalesce_project_name + attrs.sql_share_qualified_names = obj.sql_share_qualified_names + +def _extract_sap_analytics_cloud_column_attrs(attrs: SapAnalyticsCloudColumnAttributes) -> dict: + """Extract all SapAnalyticsCloudColumn attributes from the attrs struct into a flat dict.""" + result = _extract_asset_attrs(attrs) + result["sap_analytics_cloud_model_qualified_name"] = attrs.sap_analytics_cloud_model_qualified_name + result["sap_analytics_cloud_model_name"] = attrs.sap_analytics_cloud_model_name + result["sap_analytics_cloud_resource_id"] = attrs.sap_analytics_cloud_resource_id + result["sap_analytics_cloud_object_id"] = attrs.sap_analytics_cloud_object_id + result["sap_analytics_cloud_repository_partition"] = attrs.sap_analytics_cloud_repository_partition + result["sap_analytics_cloud_workspace_id"] = attrs.sap_analytics_cloud_workspace_id + result["sap_analytics_cloud_workspace_name"] = attrs.sap_analytics_cloud_workspace_name + result["sap_analytics_cloud_parent_folder_qualified_name"] = attrs.sap_analytics_cloud_parent_folder_qualified_name + result["sap_analytics_cloud_parent_folder_name"] = attrs.sap_analytics_cloud_parent_folder_name + result["sap_technical_name"] = attrs.sap_technical_name + result["sap_logical_name"] = attrs.sap_logical_name + result["sap_package_name"] = attrs.sap_package_name + result["sap_component_name"] = attrs.sap_component_name + result["sap_data_type"] = attrs.sap_data_type + result["sap_field_count"] = attrs.sap_field_count + result["sap_field_order"] = attrs.sap_field_order + result["catalog_dataset_guid"] = attrs.catalog_dataset_guid + result["data_type"] = attrs.data_type + result["sub_data_type"] = attrs.sub_data_type + result["column_compression"] = attrs.column_compression + result["column_encoding"] = attrs.column_encoding + result["raw_data_type_definition"] = attrs.raw_data_type_definition + result["order"] = attrs.order + result["nested_column_order"] = attrs.nested_column_order + result["nested_column_count"] = attrs.nested_column_count + result["column_hierarchy"] = attrs.column_hierarchy + result["is_partition"] = attrs.is_partition + result["partition_order"] = attrs.partition_order + result["is_clustered"] = attrs.is_clustered + result["is_primary"] = attrs.is_primary + result["is_foreign"] = attrs.is_foreign + result["is_indexed"] = attrs.is_indexed + result["is_sort"] = attrs.is_sort + result["is_dist"] = attrs.is_dist + result["is_pinned"] = attrs.is_pinned + result["pinned_by"] = attrs.pinned_by + result["pinned_at"] = attrs.pinned_at + result["precision"] = attrs.precision + result["default_value"] = attrs.default_value + result["is_nullable"] = attrs.is_nullable + result["numeric_scale"] = attrs.numeric_scale + result["max_length"] = attrs.max_length + result["validations"] = attrs.validations + result["parent_column_qualified_name"] = attrs.parent_column_qualified_name + result["parent_column_name"] = attrs.parent_column_name + result["column_distinct_values_count"] = attrs.column_distinct_values_count + result["column_distinct_values_count_long"] = attrs.column_distinct_values_count_long + result["column_distinct_values_percentage"] = attrs.column_distinct_values_percentage + result["column_histogram"] = attrs.column_histogram + result["column_max"] = attrs.column_max + result["column_min"] = attrs.column_min + result["column_mean"] = attrs.column_mean + result["column_sum"] = attrs.column_sum + result["column_median"] = attrs.column_median + result["column_standard_deviation"] = attrs.column_standard_deviation + result["column_unique_values_count"] = attrs.column_unique_values_count + result["column_unique_values_count_long"] = attrs.column_unique_values_count_long + result["column_average"] = attrs.column_average + result["column_average_length"] = attrs.column_average_length + result["column_duplicate_values_count"] = attrs.column_duplicate_values_count + result["column_duplicate_values_count_long"] = attrs.column_duplicate_values_count_long + result["column_maximum_string_length"] = attrs.column_maximum_string_length + result["column_maxs"] = attrs.column_maxs + result["column_minimum_string_length"] = attrs.column_minimum_string_length + result["column_mins"] = attrs.column_mins + result["column_missing_values_count"] = attrs.column_missing_values_count + result["column_missing_values_count_long"] = attrs.column_missing_values_count_long + result["column_missing_values_percentage"] = attrs.column_missing_values_percentage + result["column_uniqueness_percentage"] = attrs.column_uniqueness_percentage + result["column_variance"] = attrs.column_variance + result["column_top_values"] = attrs.column_top_values + result["column_max_value"] = attrs.column_max_value + result["column_min_value"] = attrs.column_min_value + result["column_mean_value"] = attrs.column_mean_value + result["column_sum_value"] = attrs.column_sum_value + result["column_median_value"] = attrs.column_median_value + result["column_standard_deviation_value"] = attrs.column_standard_deviation_value + result["column_average_value"] = attrs.column_average_value + result["column_variance_value"] = attrs.column_variance_value + result["column_average_length_value"] = attrs.column_average_length_value + result["column_distribution_histogram"] = attrs.column_distribution_histogram + result["column_depth_level"] = attrs.column_depth_level + result["nosql_collection_name"] = attrs.nosql_collection_name + result["nosql_collection_qualified_name"] = attrs.nosql_collection_qualified_name + result["column_is_measure"] = attrs.column_is_measure + result["column_measure_type"] = attrs.column_measure_type + result["column_ai_insights_is_measure"] = attrs.column_ai_insights_is_measure + result["column_ai_insights_measure_type"] = attrs.column_ai_insights_measure_type + result["column_ai_insights_is_dimension"] = attrs.column_ai_insights_is_dimension + result["column_ai_insights_dimension_type"] = attrs.column_ai_insights_dimension_type + result["column_ai_insights_foreign_key_column_qualified_name"] = attrs.column_ai_insights_foreign_key_column_qualified_name + result["query_count"] = attrs.query_count + result["query_user_count"] = attrs.query_user_count + result["query_user_map"] = attrs.query_user_map + result["query_count_updated_at"] = attrs.query_count_updated_at + result["database_name"] = attrs.database_name + result["database_qualified_name"] = attrs.database_qualified_name + result["schema_name"] = attrs.schema_name + result["schema_qualified_name"] = attrs.schema_qualified_name + result["table_name"] = attrs.table_name + result["table_qualified_name"] = attrs.table_qualified_name + result["view_name"] = attrs.view_name + result["view_qualified_name"] = attrs.view_qualified_name + result["calculation_view_name"] = attrs.calculation_view_name + result["calculation_view_qualified_name"] = attrs.calculation_view_qualified_name + result["is_profiled"] = attrs.is_profiled + result["last_profiled_at"] = attrs.last_profiled_at + result["sql_ai_model_context_qualified_name"] = attrs.sql_ai_model_context_qualified_name + result["sql_is_secure"] = attrs.sql_is_secure + result["sql_has_ai_insights"] = attrs.sql_has_ai_insights + result["sql_ai_insights_last_analyzed_at"] = attrs.sql_ai_insights_last_analyzed_at + result["sql_ai_insights_popular_business_question_count"] = attrs.sql_ai_insights_popular_business_question_count + result["sql_ai_insights_popular_join_count"] = attrs.sql_ai_insights_popular_join_count + result["sql_ai_insights_popular_filter_count"] = attrs.sql_ai_insights_popular_filter_count + result["sql_ai_insights_relationship_count"] = attrs.sql_ai_insights_relationship_count + result["sql_coalesce_last_run_status"] = attrs.sql_coalesce_last_run_status + result["sql_coalesce_node_status"] = attrs.sql_coalesce_node_status + result["sql_coalesce_last_run_at"] = attrs.sql_coalesce_last_run_at + result["sql_coalesce_node_type"] = attrs.sql_coalesce_node_type + result["sql_coalesce_environment_id"] = attrs.sql_coalesce_environment_id + result["sql_coalesce_environment_name"] = attrs.sql_coalesce_environment_name + result["sql_coalesce_project_id"] = attrs.sql_coalesce_project_id + result["sql_coalesce_project_name"] = attrs.sql_coalesce_project_name + result["sql_share_qualified_names"] = attrs.sql_share_qualified_names + return result + +# ============================================================================= +# CONVERSION FUNCTIONS +# ============================================================================= + + +def _sap_analytics_cloud_column_to_nested(sap_analytics_cloud_column: SapAnalyticsCloudColumn) -> SapAnalyticsCloudColumnNested: + """Convert flat SapAnalyticsCloudColumn to nested format.""" + attrs = SapAnalyticsCloudColumnAttributes() + _populate_sap_analytics_cloud_column_attrs(attrs, sap_analytics_cloud_column) + # Categorize relationships by save semantic (REPLACE, APPEND, REMOVE) + replace_rels, append_rels, remove_rels = categorize_relationships( + sap_analytics_cloud_column, _SAP_ANALYTICS_CLOUD_COLUMN_REL_FIELDS, SapAnalyticsCloudColumnRelationshipAttributes + ) + return SapAnalyticsCloudColumnNested( + guid=sap_analytics_cloud_column.guid, + type_name=sap_analytics_cloud_column.type_name, + status=sap_analytics_cloud_column.status, + version=sap_analytics_cloud_column.version, + create_time=sap_analytics_cloud_column.create_time, + update_time=sap_analytics_cloud_column.update_time, + created_by=sap_analytics_cloud_column.created_by, + updated_by=sap_analytics_cloud_column.updated_by, + classifications=sap_analytics_cloud_column.classifications, + classification_names=sap_analytics_cloud_column.classification_names, + meanings=sap_analytics_cloud_column.meanings, + labels=sap_analytics_cloud_column.labels, + business_attributes=sap_analytics_cloud_column.business_attributes, + custom_attributes=sap_analytics_cloud_column.custom_attributes, + pending_tasks=sap_analytics_cloud_column.pending_tasks, + proxy=sap_analytics_cloud_column.proxy, + is_incomplete=sap_analytics_cloud_column.is_incomplete, + provenance_type=sap_analytics_cloud_column.provenance_type, + home_id=sap_analytics_cloud_column.home_id, + depth=sap_analytics_cloud_column.depth, + immediate_upstream=sap_analytics_cloud_column.immediate_upstream, + immediate_downstream=sap_analytics_cloud_column.immediate_downstream, + attributes=attrs, + relationship_attributes=replace_rels, + append_relationship_attributes=append_rels, + remove_relationship_attributes=remove_rels, + ) + +def _sap_analytics_cloud_column_from_nested(nested: SapAnalyticsCloudColumnNested) -> SapAnalyticsCloudColumn: + """Convert nested format to flat SapAnalyticsCloudColumn.""" + attrs = nested.attributes if nested.attributes is not UNSET else SapAnalyticsCloudColumnAttributes() + # Merge relationships from all three buckets + merged_rels = merge_relationships( + nested.relationship_attributes, + nested.append_relationship_attributes, + nested.remove_relationship_attributes, + _SAP_ANALYTICS_CLOUD_COLUMN_REL_FIELDS, + SapAnalyticsCloudColumnRelationshipAttributes + ) + return SapAnalyticsCloudColumn( + guid=nested.guid, + type_name=nested.type_name, + status=nested.status, + version=nested.version, + create_time=nested.create_time, + update_time=nested.update_time, + created_by=nested.created_by, + updated_by=nested.updated_by, + classifications=nested.classifications, + classification_names=nested.classification_names, + meanings=nested.meanings, + labels=nested.labels, + business_attributes=nested.business_attributes, + custom_attributes=nested.custom_attributes, + pending_tasks=nested.pending_tasks, + proxy=nested.proxy, + is_incomplete=nested.is_incomplete, + provenance_type=nested.provenance_type, + home_id=nested.home_id, + depth=nested.depth, + immediate_upstream=nested.immediate_upstream, + immediate_downstream=nested.immediate_downstream, + **_extract_sap_analytics_cloud_column_attrs(attrs), + # Merged relationship attributes + **merged_rels, + ) + +def _sap_analytics_cloud_column_to_nested_bytes(sap_analytics_cloud_column: SapAnalyticsCloudColumn, serde: Serde) -> bytes: + """Convert flat SapAnalyticsCloudColumn to nested JSON bytes.""" + return serde.encode(_sap_analytics_cloud_column_to_nested(sap_analytics_cloud_column)) + + +def _sap_analytics_cloud_column_from_nested_bytes(data: bytes, serde: Serde) -> SapAnalyticsCloudColumn: + """Convert nested JSON bytes to flat SapAnalyticsCloudColumn.""" + nested = serde.decode(data, SapAnalyticsCloudColumnNested) + return _sap_analytics_cloud_column_from_nested(nested) + +# --------------------------------------------------------------------------- +# Deferred field descriptor initialization +# --------------------------------------------------------------------------- +from pyatlan.model.fields.atlan_fields import ( # noqa: E402 + BooleanField, + KeywordField, + KeywordTextField, + NumericField, + RelationField, +) + +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_MODEL_QUALIFIED_NAME = KeywordField("sapAnalyticsCloudModelQualifiedName", "sapAnalyticsCloudModelQualifiedName") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_MODEL_NAME = KeywordField("sapAnalyticsCloudModelName", "sapAnalyticsCloudModelName") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_RESOURCE_ID = KeywordField("sapAnalyticsCloudResourceId", "sapAnalyticsCloudResourceId") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_OBJECT_ID = KeywordField("sapAnalyticsCloudObjectId", "sapAnalyticsCloudObjectId") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION = KeywordField("sapAnalyticsCloudRepositoryPartition", "sapAnalyticsCloudRepositoryPartition") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_WORKSPACE_ID = KeywordField("sapAnalyticsCloudWorkspaceId", "sapAnalyticsCloudWorkspaceId") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_WORKSPACE_NAME = KeywordField("sapAnalyticsCloudWorkspaceName", "sapAnalyticsCloudWorkspaceName") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME = KeywordField("sapAnalyticsCloudParentFolderQualifiedName", "sapAnalyticsCloudParentFolderQualifiedName") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME = KeywordField("sapAnalyticsCloudParentFolderName", "sapAnalyticsCloudParentFolderName") +SapAnalyticsCloudColumn.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") +SapAnalyticsCloudColumn.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") +SapAnalyticsCloudColumn.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") +SapAnalyticsCloudColumn.SAP_COMPONENT_NAME = KeywordField("sapComponentName", "sapComponentName") +SapAnalyticsCloudColumn.SAP_DATA_TYPE = KeywordField("sapDataType", "sapDataType") +SapAnalyticsCloudColumn.SAP_FIELD_COUNT = NumericField("sapFieldCount", "sapFieldCount") +SapAnalyticsCloudColumn.SAP_FIELD_ORDER = NumericField("sapFieldOrder", "sapFieldOrder") +SapAnalyticsCloudColumn.CATALOG_DATASET_GUID = KeywordField("catalogDatasetGuid", "catalogDatasetGuid") +SapAnalyticsCloudColumn.DATA_TYPE = KeywordTextField("dataType", "dataType", "dataType.text") +SapAnalyticsCloudColumn.SUB_DATA_TYPE = KeywordField("subDataType", "subDataType") +SapAnalyticsCloudColumn.COLUMN_COMPRESSION = KeywordField("columnCompression", "columnCompression") +SapAnalyticsCloudColumn.COLUMN_ENCODING = KeywordField("columnEncoding", "columnEncoding") +SapAnalyticsCloudColumn.RAW_DATA_TYPE_DEFINITION = KeywordField("rawDataTypeDefinition", "rawDataTypeDefinition") +SapAnalyticsCloudColumn.ORDER = NumericField("order", "order") +SapAnalyticsCloudColumn.NESTED_COLUMN_ORDER = KeywordTextField("nestedColumnOrder", "nestedColumnOrder", "nestedColumnOrder.text") +SapAnalyticsCloudColumn.NESTED_COLUMN_COUNT = NumericField("nestedColumnCount", "nestedColumnCount") +SapAnalyticsCloudColumn.COLUMN_HIERARCHY = KeywordField("columnHierarchy", "columnHierarchy") +SapAnalyticsCloudColumn.IS_PARTITION = BooleanField("isPartition", "isPartition") +SapAnalyticsCloudColumn.PARTITION_ORDER = NumericField("partitionOrder", "partitionOrder") +SapAnalyticsCloudColumn.IS_CLUSTERED = BooleanField("isClustered", "isClustered") +SapAnalyticsCloudColumn.IS_PRIMARY = BooleanField("isPrimary", "isPrimary") +SapAnalyticsCloudColumn.IS_FOREIGN = BooleanField("isForeign", "isForeign") +SapAnalyticsCloudColumn.IS_INDEXED = BooleanField("isIndexed", "isIndexed") +SapAnalyticsCloudColumn.IS_SORT = BooleanField("isSort", "isSort") +SapAnalyticsCloudColumn.IS_DIST = BooleanField("isDist", "isDist") +SapAnalyticsCloudColumn.IS_PINNED = BooleanField("isPinned", "isPinned") +SapAnalyticsCloudColumn.PINNED_BY = KeywordField("pinnedBy", "pinnedBy") +SapAnalyticsCloudColumn.PINNED_AT = NumericField("pinnedAt", "pinnedAt") +SapAnalyticsCloudColumn.PRECISION = NumericField("precision", "precision") +SapAnalyticsCloudColumn.DEFAULT_VALUE = KeywordField("defaultValue", "defaultValue") +SapAnalyticsCloudColumn.IS_NULLABLE = BooleanField("isNullable", "isNullable") +SapAnalyticsCloudColumn.NUMERIC_SCALE = NumericField("numericScale", "numericScale") +SapAnalyticsCloudColumn.MAX_LENGTH = NumericField("maxLength", "maxLength") +SapAnalyticsCloudColumn.VALIDATIONS = KeywordField("validations", "validations") +SapAnalyticsCloudColumn.PARENT_COLUMN_QUALIFIED_NAME = KeywordTextField("parentColumnQualifiedName", "parentColumnQualifiedName", "parentColumnQualifiedName.text") +SapAnalyticsCloudColumn.PARENT_COLUMN_NAME = KeywordField("parentColumnName", "parentColumnName") +SapAnalyticsCloudColumn.COLUMN_DISTINCT_VALUES_COUNT = NumericField("columnDistinctValuesCount", "columnDistinctValuesCount") +SapAnalyticsCloudColumn.COLUMN_DISTINCT_VALUES_COUNT_LONG = NumericField("columnDistinctValuesCountLong", "columnDistinctValuesCountLong") +SapAnalyticsCloudColumn.COLUMN_DISTINCT_VALUES_PERCENTAGE = NumericField("columnDistinctValuesPercentage", "columnDistinctValuesPercentage") +SapAnalyticsCloudColumn.COLUMN_HISTOGRAM = KeywordField("columnHistogram", "columnHistogram") +SapAnalyticsCloudColumn.COLUMN_MAX = NumericField("columnMax", "columnMax") +SapAnalyticsCloudColumn.COLUMN_MIN = NumericField("columnMin", "columnMin") +SapAnalyticsCloudColumn.COLUMN_MEAN = NumericField("columnMean", "columnMean") +SapAnalyticsCloudColumn.COLUMN_SUM = NumericField("columnSum", "columnSum") +SapAnalyticsCloudColumn.COLUMN_MEDIAN = NumericField("columnMedian", "columnMedian") +SapAnalyticsCloudColumn.COLUMN_STANDARD_DEVIATION = NumericField("columnStandardDeviation", "columnStandardDeviation") +SapAnalyticsCloudColumn.COLUMN_UNIQUE_VALUES_COUNT = NumericField("columnUniqueValuesCount", "columnUniqueValuesCount") +SapAnalyticsCloudColumn.COLUMN_UNIQUE_VALUES_COUNT_LONG = NumericField("columnUniqueValuesCountLong", "columnUniqueValuesCountLong") +SapAnalyticsCloudColumn.COLUMN_AVERAGE = NumericField("columnAverage", "columnAverage") +SapAnalyticsCloudColumn.COLUMN_AVERAGE_LENGTH = NumericField("columnAverageLength", "columnAverageLength") +SapAnalyticsCloudColumn.COLUMN_DUPLICATE_VALUES_COUNT = NumericField("columnDuplicateValuesCount", "columnDuplicateValuesCount") +SapAnalyticsCloudColumn.COLUMN_DUPLICATE_VALUES_COUNT_LONG = NumericField("columnDuplicateValuesCountLong", "columnDuplicateValuesCountLong") +SapAnalyticsCloudColumn.COLUMN_MAXIMUM_STRING_LENGTH = NumericField("columnMaximumStringLength", "columnMaximumStringLength") +SapAnalyticsCloudColumn.COLUMN_MAXS = KeywordField("columnMaxs", "columnMaxs") +SapAnalyticsCloudColumn.COLUMN_MINIMUM_STRING_LENGTH = NumericField("columnMinimumStringLength", "columnMinimumStringLength") +SapAnalyticsCloudColumn.COLUMN_MINS = KeywordField("columnMins", "columnMins") +SapAnalyticsCloudColumn.COLUMN_MISSING_VALUES_COUNT = NumericField("columnMissingValuesCount", "columnMissingValuesCount") +SapAnalyticsCloudColumn.COLUMN_MISSING_VALUES_COUNT_LONG = NumericField("columnMissingValuesCountLong", "columnMissingValuesCountLong") +SapAnalyticsCloudColumn.COLUMN_MISSING_VALUES_PERCENTAGE = NumericField("columnMissingValuesPercentage", "columnMissingValuesPercentage") +SapAnalyticsCloudColumn.COLUMN_UNIQUENESS_PERCENTAGE = NumericField("columnUniquenessPercentage", "columnUniquenessPercentage") +SapAnalyticsCloudColumn.COLUMN_VARIANCE = NumericField("columnVariance", "columnVariance") +SapAnalyticsCloudColumn.COLUMN_TOP_VALUES = KeywordField("columnTopValues", "columnTopValues") +SapAnalyticsCloudColumn.COLUMN_MAX_VALUE = NumericField("columnMaxValue", "columnMaxValue") +SapAnalyticsCloudColumn.COLUMN_MIN_VALUE = NumericField("columnMinValue", "columnMinValue") +SapAnalyticsCloudColumn.COLUMN_MEAN_VALUE = NumericField("columnMeanValue", "columnMeanValue") +SapAnalyticsCloudColumn.COLUMN_SUM_VALUE = NumericField("columnSumValue", "columnSumValue") +SapAnalyticsCloudColumn.COLUMN_MEDIAN_VALUE = NumericField("columnMedianValue", "columnMedianValue") +SapAnalyticsCloudColumn.COLUMN_STANDARD_DEVIATION_VALUE = NumericField("columnStandardDeviationValue", "columnStandardDeviationValue") +SapAnalyticsCloudColumn.COLUMN_AVERAGE_VALUE = NumericField("columnAverageValue", "columnAverageValue") +SapAnalyticsCloudColumn.COLUMN_VARIANCE_VALUE = NumericField("columnVarianceValue", "columnVarianceValue") +SapAnalyticsCloudColumn.COLUMN_AVERAGE_LENGTH_VALUE = NumericField("columnAverageLengthValue", "columnAverageLengthValue") +SapAnalyticsCloudColumn.COLUMN_DISTRIBUTION_HISTOGRAM = KeywordField("columnDistributionHistogram", "columnDistributionHistogram") +SapAnalyticsCloudColumn.COLUMN_DEPTH_LEVEL = NumericField("columnDepthLevel", "columnDepthLevel") +SapAnalyticsCloudColumn.NOSQL_COLLECTION_NAME = KeywordField("nosqlCollectionName", "nosqlCollectionName") +SapAnalyticsCloudColumn.NOSQL_COLLECTION_QUALIFIED_NAME = KeywordField("nosqlCollectionQualifiedName", "nosqlCollectionQualifiedName") +SapAnalyticsCloudColumn.COLUMN_IS_MEASURE = BooleanField("columnIsMeasure", "columnIsMeasure") +SapAnalyticsCloudColumn.COLUMN_MEASURE_TYPE = KeywordField("columnMeasureType", "columnMeasureType") +SapAnalyticsCloudColumn.COLUMN_AI_INSIGHTS_IS_MEASURE = BooleanField("columnAiInsightsIsMeasure", "columnAiInsightsIsMeasure") +SapAnalyticsCloudColumn.COLUMN_AI_INSIGHTS_MEASURE_TYPE = KeywordField("columnAiInsightsMeasureType", "columnAiInsightsMeasureType") +SapAnalyticsCloudColumn.COLUMN_AI_INSIGHTS_IS_DIMENSION = BooleanField("columnAiInsightsIsDimension", "columnAiInsightsIsDimension") +SapAnalyticsCloudColumn.COLUMN_AI_INSIGHTS_DIMENSION_TYPE = KeywordField("columnAiInsightsDimensionType", "columnAiInsightsDimensionType") +SapAnalyticsCloudColumn.COLUMN_AI_INSIGHTS_FOREIGN_KEY_COLUMN_QUALIFIED_NAME = KeywordField("columnAiInsightsForeignKeyColumnQualifiedName", "columnAiInsightsForeignKeyColumnQualifiedName") +SapAnalyticsCloudColumn.QUERY_COUNT = NumericField("queryCount", "queryCount") +SapAnalyticsCloudColumn.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") +SapAnalyticsCloudColumn.QUERY_USER_MAP = KeywordField("queryUserMap", "queryUserMap") +SapAnalyticsCloudColumn.QUERY_COUNT_UPDATED_AT = NumericField("queryCountUpdatedAt", "queryCountUpdatedAt") +SapAnalyticsCloudColumn.DATABASE_NAME = KeywordField("databaseName", "databaseName") +SapAnalyticsCloudColumn.DATABASE_QUALIFIED_NAME = KeywordField("databaseQualifiedName", "databaseQualifiedName") +SapAnalyticsCloudColumn.SCHEMA_NAME = KeywordField("schemaName", "schemaName") +SapAnalyticsCloudColumn.SCHEMA_QUALIFIED_NAME = KeywordField("schemaQualifiedName", "schemaQualifiedName") +SapAnalyticsCloudColumn.TABLE_NAME = KeywordField("tableName", "tableName") +SapAnalyticsCloudColumn.TABLE_QUALIFIED_NAME = KeywordField("tableQualifiedName", "tableQualifiedName") +SapAnalyticsCloudColumn.VIEW_NAME = KeywordField("viewName", "viewName") +SapAnalyticsCloudColumn.VIEW_QUALIFIED_NAME = KeywordField("viewQualifiedName", "viewQualifiedName") +SapAnalyticsCloudColumn.CALCULATION_VIEW_NAME = KeywordField("calculationViewName", "calculationViewName") +SapAnalyticsCloudColumn.CALCULATION_VIEW_QUALIFIED_NAME = KeywordField("calculationViewQualifiedName", "calculationViewQualifiedName") +SapAnalyticsCloudColumn.IS_PROFILED = BooleanField("isProfiled", "isProfiled") +SapAnalyticsCloudColumn.LAST_PROFILED_AT = NumericField("lastProfiledAt", "lastProfiledAt") +SapAnalyticsCloudColumn.SQL_AI_MODEL_CONTEXT_QUALIFIED_NAME = KeywordField("sqlAIModelContextQualifiedName", "sqlAIModelContextQualifiedName") +SapAnalyticsCloudColumn.SQL_IS_SECURE = BooleanField("sqlIsSecure", "sqlIsSecure") +SapAnalyticsCloudColumn.SQL_HAS_AI_INSIGHTS = BooleanField("sqlHasAiInsights", "sqlHasAiInsights") +SapAnalyticsCloudColumn.SQL_AI_INSIGHTS_LAST_ANALYZED_AT = NumericField("sqlAiInsightsLastAnalyzedAt", "sqlAiInsightsLastAnalyzedAt") +SapAnalyticsCloudColumn.SQL_AI_INSIGHTS_POPULAR_BUSINESS_QUESTION_COUNT = NumericField("sqlAiInsightsPopularBusinessQuestionCount", "sqlAiInsightsPopularBusinessQuestionCount") +SapAnalyticsCloudColumn.SQL_AI_INSIGHTS_POPULAR_JOIN_COUNT = NumericField("sqlAiInsightsPopularJoinCount", "sqlAiInsightsPopularJoinCount") +SapAnalyticsCloudColumn.SQL_AI_INSIGHTS_POPULAR_FILTER_COUNT = NumericField("sqlAiInsightsPopularFilterCount", "sqlAiInsightsPopularFilterCount") +SapAnalyticsCloudColumn.SQL_AI_INSIGHTS_RELATIONSHIP_COUNT = NumericField("sqlAiInsightsRelationshipCount", "sqlAiInsightsRelationshipCount") +SapAnalyticsCloudColumn.SQL_COALESCE_LAST_RUN_STATUS = KeywordField("sqlCoalesceLastRunStatus", "sqlCoalesceLastRunStatus") +SapAnalyticsCloudColumn.SQL_COALESCE_NODE_STATUS = KeywordField("sqlCoalesceNodeStatus", "sqlCoalesceNodeStatus") +SapAnalyticsCloudColumn.SQL_COALESCE_LAST_RUN_AT = NumericField("sqlCoalesceLastRunAt", "sqlCoalesceLastRunAt") +SapAnalyticsCloudColumn.SQL_COALESCE_NODE_TYPE = KeywordField("sqlCoalesceNodeType", "sqlCoalesceNodeType") +SapAnalyticsCloudColumn.SQL_COALESCE_ENVIRONMENT_ID = KeywordField("sqlCoalesceEnvironmentId", "sqlCoalesceEnvironmentId") +SapAnalyticsCloudColumn.SQL_COALESCE_ENVIRONMENT_NAME = KeywordTextField("sqlCoalesceEnvironmentName", "sqlCoalesceEnvironmentName", "sqlCoalesceEnvironmentName.text") +SapAnalyticsCloudColumn.SQL_COALESCE_PROJECT_ID = KeywordField("sqlCoalesceProjectId", "sqlCoalesceProjectId") +SapAnalyticsCloudColumn.SQL_COALESCE_PROJECT_NAME = KeywordTextField("sqlCoalesceProjectName", "sqlCoalesceProjectName", "sqlCoalesceProjectName.text") +SapAnalyticsCloudColumn.SQL_SHARE_QUALIFIED_NAMES = KeywordField("sqlShareQualifiedNames", "sqlShareQualifiedNames") +SapAnalyticsCloudColumn.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") +SapAnalyticsCloudColumn.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") +SapAnalyticsCloudColumn.ANOMALO_CHECKS = RelationField("anomaloChecks") +SapAnalyticsCloudColumn.APPLICATION = RelationField("application") +SapAnalyticsCloudColumn.APPLICATION_FIELD = RelationField("applicationField") +SapAnalyticsCloudColumn.CONTEXT_REPOSITORIES = RelationField("contextRepositories") +SapAnalyticsCloudColumn.COSMOS_MONGO_DB_COLLECTION = RelationField("cosmosMongoDBCollection") +SapAnalyticsCloudColumn.DATA_CONTRACT_LATEST = RelationField("dataContractLatest") +SapAnalyticsCloudColumn.DATA_CONTRACT_LATEST_CERTIFIED = RelationField("dataContractLatestCertified") +SapAnalyticsCloudColumn.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") +SapAnalyticsCloudColumn.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") +SapAnalyticsCloudColumn.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") +SapAnalyticsCloudColumn.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") +SapAnalyticsCloudColumn.METRICS = RelationField("metrics") +SapAnalyticsCloudColumn.METRIC_TIMESTAMPS = RelationField("metricTimestamps") +SapAnalyticsCloudColumn.DATA_QUALITY_METRIC_DIMENSIONS = RelationField("dataQualityMetricDimensions") +SapAnalyticsCloudColumn.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") +SapAnalyticsCloudColumn.DQ_BASE_COLUMN_RULES = RelationField("dqBaseColumnRules") +SapAnalyticsCloudColumn.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") +SapAnalyticsCloudColumn.DQ_REFERENCE_COLUMN_RULES = RelationField("dqReferenceColumnRules") +SapAnalyticsCloudColumn.DBT_MODELS = RelationField("dbtModels") +SapAnalyticsCloudColumn.SQL_DBT_MODELS = RelationField("sqlDbtModels") +SapAnalyticsCloudColumn.DBT_TESTS = RelationField("dbtTests") +SapAnalyticsCloudColumn.DBT_SOURCES = RelationField("dbtSources") +SapAnalyticsCloudColumn.SQL_DBT_SOURCES = RelationField("sqlDBTSources") +SapAnalyticsCloudColumn.DBT_METRICS = RelationField("dbtMetrics") +SapAnalyticsCloudColumn.DBT_MODEL_COLUMNS = RelationField("dbtModelColumns") +SapAnalyticsCloudColumn.COLUMN_DBT_MODEL_COLUMNS = RelationField("columnDbtModelColumns") +SapAnalyticsCloudColumn.DBT_SEED_ASSETS = RelationField("dbtSeedAssets") +SapAnalyticsCloudColumn.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField("gcpDataplexAspectTypeMetadataEntities") +SapAnalyticsCloudColumn.MEANINGS = RelationField("meanings") +SapAnalyticsCloudColumn.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") +SapAnalyticsCloudColumn.MONGO_DB_COLLECTION = RelationField("mongoDBCollection") +SapAnalyticsCloudColumn.MC_MONITORS = RelationField("mcMonitors") +SapAnalyticsCloudColumn.MC_INCIDENTS = RelationField("mcIncidents") +SapAnalyticsCloudColumn.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") +SapAnalyticsCloudColumn.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") +SapAnalyticsCloudColumn.INPUT_TO_PROCESSES = RelationField("inputToProcesses") +SapAnalyticsCloudColumn.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") +SapAnalyticsCloudColumn.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") +SapAnalyticsCloudColumn.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") +SapAnalyticsCloudColumn.FILES = RelationField("files") +SapAnalyticsCloudColumn.LINKS = RelationField("links") +SapAnalyticsCloudColumn.README = RelationField("readme") +SapAnalyticsCloudColumn.TABLE = RelationField("table") +SapAnalyticsCloudColumn.NESTED_COLUMNS = RelationField("nestedColumns") +SapAnalyticsCloudColumn.PARENT_COLUMN = RelationField("parentColumn") +SapAnalyticsCloudColumn.TABLE_PARTITION = RelationField("tablePartition") +SapAnalyticsCloudColumn.VIEW = RelationField("view") +SapAnalyticsCloudColumn.CALCULATION_VIEW = RelationField("calculationView") +SapAnalyticsCloudColumn.MATERIALISED_VIEW = RelationField("materialisedView") +SapAnalyticsCloudColumn.FOREIGN_KEY_TO = RelationField("foreignKeyTo") +SapAnalyticsCloudColumn.FOREIGN_KEY_FROM = RelationField("foreignKeyFrom") +SapAnalyticsCloudColumn.QUERIES = RelationField("queries") +SapAnalyticsCloudColumn.SAP_ANALYTICS_CLOUD_MODEL = RelationField("sapAnalyticsCloudModel") +SapAnalyticsCloudColumn.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") +SapAnalyticsCloudColumn.SNOWFLAKE_DYNAMIC_TABLE = RelationField("snowflakeDynamicTable") +SapAnalyticsCloudColumn.SNOWFLAKE_SEMANTIC_LOGICAL_TABLES = RelationField("snowflakeSemanticLogicalTables") +SapAnalyticsCloudColumn.SODA_CHECKS = RelationField("sodaChecks") +SapAnalyticsCloudColumn.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") +SapAnalyticsCloudColumn.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") +SapAnalyticsCloudColumn.SQL_INSIGHT_OUTGOING_JOINS = RelationField("sqlInsightOutgoingJoins") +SapAnalyticsCloudColumn.SQL_INSIGHT_INCOMING_JOINS = RelationField("sqlInsightIncomingJoins") +SapAnalyticsCloudColumn.SQL_INSIGHT_FILTERS = RelationField("sqlInsightFilters") +SapAnalyticsCloudColumn.SQL_INSIGHT_BUSINESS_QUESTIONS = RelationField("sqlInsightBusinessQuestions") diff --git a/pyatlan_v9/model/assets/sap_analytics_cloud_folder.py b/pyatlan_v9/model/assets/sap_analytics_cloud_folder.py new file mode 100644 index 000000000..f8969d3bc --- /dev/null +++ b/pyatlan_v9/model/assets/sap_analytics_cloud_folder.py @@ -0,0 +1,807 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# ruff: noqa: ARG002 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +SapAnalyticsCloudFolder asset model with flattened inheritance. + +This module provides: +- SapAnalyticsCloudFolder: Flat asset class (easy to use) +- SapAnalyticsCloudFolderAttributes: Nested attributes struct (extends AssetAttributes) +- SapAnalyticsCloudFolderNested: Nested API format struct +""" + +from __future__ import annotations + +import re +from typing import Any, ClassVar, Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .airflow_related import RelatedAirflowTask +from .anomalo_related import RelatedAnomaloCheck +from .app_related import RelatedApplication, RelatedApplicationField +from .asset import ( + _ASSET_REL_FIELDS, + Asset, + AssetAttributes, + AssetNested, + AssetRelationshipAttributes, + _extract_asset_attrs, + _populate_asset_attrs, +) +from .context_related import RelatedContextRepository +from .data_contract_related import RelatedDataContract +from .data_mesh_related import RelatedDataProduct +from .data_quality_related import RelatedDataQualityRule, RelatedMetric +from .gcp_dataplex_related import RelatedGCPDataplexAspectType +from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile +from .model_related import RelatedModelAttribute, RelatedModelEntity +from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor +from .partial_related import RelatedPartialField, RelatedPartialObject +from .process_related import RelatedProcess +from .referenceable_related import RelatedReferenceable +from .resource_related import RelatedFile, RelatedLink, RelatedReadme +from .schema_registry_related import RelatedSchemaRegistrySubject +from .soda_related import RelatedSodaCheck +from .spark_related import RelatedSparkJob +from pyatlan_v9.model.conversion_utils import categorize_relationships, merge_relationships +from pyatlan_v9.model.serde import Serde, get_serde +from pyatlan_v9.model.transform import register_asset + +from .sap_analytics_cloud_related import RelatedSapAnalyticsCloudFolder, RelatedSapAnalyticsCloudModel, RelatedSapAnalyticsCloudStory + +# ============================================================================= +# FLAT ASSET CLASS +# ============================================================================= + +@register_asset +class SapAnalyticsCloudFolder(Asset): + """ + Folder in the SAP Analytics Cloud file repository. Folders nest to arbitrary depth and are the organizational container for stories and models. + """ + + SAP_ANALYTICS_CLOUD_RESOURCE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_OBJECT_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME: ClassVar[Any] = None + SAP_TECHNICAL_NAME: ClassVar[Any] = None + SAP_LOGICAL_NAME: ClassVar[Any] = None + SAP_PACKAGE_NAME: ClassVar[Any] = None + SAP_COMPONENT_NAME: ClassVar[Any] = None + SAP_DATA_TYPE: ClassVar[Any] = None + SAP_FIELD_COUNT: ClassVar[Any] = None + SAP_FIELD_ORDER: ClassVar[Any] = None + CATALOG_DATASET_GUID: ClassVar[Any] = None + INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None + OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None + ANOMALO_CHECKS: ClassVar[Any] = None + APPLICATION: ClassVar[Any] = None + APPLICATION_FIELD: ClassVar[Any] = None + CONTEXT_REPOSITORIES: ClassVar[Any] = None + DATA_CONTRACT_LATEST: ClassVar[Any] = None + DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None + OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None + MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None + METRICS: ClassVar[Any] = None + DQ_BASE_DATASET_RULES: ClassVar[Any] = None + DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None + GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None + MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None + MC_MONITORS: ClassVar[Any] = None + MC_INCIDENTS: ClassVar[Any] = None + PARTIAL_CHILD_FIELDS: ClassVar[Any] = None + PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None + INPUT_TO_PROCESSES: ClassVar[Any] = None + OUTPUT_FROM_PROCESSES: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None + FILES: ClassVar[Any] = None + LINKS: ClassVar[Any] = None + README: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_SUB_FOLDERS: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_MODELS: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_STORIES: ClassVar[Any] = None + SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None + SODA_CHECKS: ClassVar[Any] = None + INPUT_TO_SPARK_JOBS: ClassVar[Any] = None + OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + sap_analytics_cloud_sub_folders: Union[List[RelatedSapAnalyticsCloudFolder], None, UnsetType] = UNSET + """Folders nested within this folder.""" + + sap_analytics_cloud_parent_folder: Union[RelatedSapAnalyticsCloudFolder, None, UnsetType] = UNSET + """Folder containing this folder.""" + + sap_analytics_cloud_models: Union[List[RelatedSapAnalyticsCloudModel], None, UnsetType] = UNSET + """Models held in this folder.""" + + sap_analytics_cloud_stories: Union[List[RelatedSapAnalyticsCloudStory], None, UnsetType] = UNSET + """Stories held in this folder.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + def __post_init__(self) -> None: + self.type_name = "SapAnalyticsCloudFolder" + + # ========================================================================= + # SDK Methods + # ========================================================================= + + _QUALIFIED_NAME_PATTERN: ClassVar[re.Pattern] = re.compile( + r"^.+/[^/]+/[^/]+$" + ) + + def validate(self, for_creation: bool = False) -> None: + """ + Dry-run validation of this SapAnalyticsCloudFolder instance. + + Checks that required fields (type_name, name, qualified_name) are set. + When ``for_creation=True``, also checks hierarchy-specific fields + (parent references, denormalized attributes) needed to create this asset. + + This is purely opt-in and is NOT called by any serde path — only by + explicit user invocation (e.g., validating JSONL before sending to Atlan). + + Args: + for_creation: If True, also validate fields required for asset creation. + + Raises: + ValueError: If any required fields are missing or invalid. + """ + errors: list[str] = [] + if self.type_name is UNSET: + errors.append("type_name is required") + if self.name is UNSET: + errors.append("name is required") + if self.qualified_name is UNSET or self.qualified_name is None: + errors.append("qualified_name is required") + elif not self._QUALIFIED_NAME_PATTERN.match(self.qualified_name): + errors.append( + f"qualified_name '{self.qualified_name}' does not match expected " + f"pattern: {self._QUALIFIED_NAME_PATTERN.pattern}" + ) + if for_creation: + if self.connection_qualified_name is UNSET: + errors.append("connection_qualified_name is required for creation") + if errors: + raise ValueError(f"SapAnalyticsCloudFolder validation failed: {errors}") + + def minimize(self) -> "SapAnalyticsCloudFolder": + """ + Return a minimal copy of this SapAnalyticsCloudFolder with only updater-required fields. + + Calls :meth:`validate` first to ensure the instance is valid, then + returns a new SapAnalyticsCloudFolder with only the fields needed for an update + (qualified_name, name, and any type-specific additional fields). + + Returns: + A new SapAnalyticsCloudFolder instance with only the minimum required fields. + """ + self.validate() + return SapAnalyticsCloudFolder(qualified_name=self.qualified_name, name=self.name) + + def relate(self) -> "RelatedSapAnalyticsCloudFolder": + """ + Create a :class:`RelatedSapAnalyticsCloudFolder` reference from this instance. + + Returns a lightweight reference suitable for use in relationship + attributes. Prefers ``guid`` if set, otherwise falls back to + ``qualified_name``. + + Returns: + A RelatedSapAnalyticsCloudFolder reference to this asset. + """ + if self.guid is not UNSET: + return RelatedSapAnalyticsCloudFolder(guid=self.guid) + return RelatedSapAnalyticsCloudFolder(qualified_name=self.qualified_name) + + # ========================================================================= + # Optimized Serialization Methods (override Asset base class) + # ========================================================================= + + def to_json(self, nested: bool = True, serde: Serde | None = None) -> str: + """ + Convert to JSON string using optimized nested struct serialization. + + Args: + nested: If True (default), use nested API format. If False, use flat format. + serde: Optional Serde instance for encoder reuse. Uses shared singleton if None. + + Returns: + JSON string representation + """ + if serde is None: + serde = get_serde() + if nested: + return self.to_nested_bytes(serde).decode("utf-8") + else: + return serde.encode(self).decode("utf-8") + + def to_nested_bytes(self, serde: Serde | None = None) -> bytes: + """Serialize to Atlas nested-format JSON bytes (pure msgspec, no dict intermediate).""" + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_folder_to_nested_bytes(self, serde) + + @staticmethod + def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapAnalyticsCloudFolder: + """ + Create from JSON string or bytes using optimized nested struct deserialization. + + Args: + json_data: JSON string or bytes to deserialize + serde: Optional Serde instance for decoder reuse. Uses shared singleton if None. + + Returns: + SapAnalyticsCloudFolder instance + """ + if isinstance(json_data, str): + json_data = json_data.encode("utf-8") + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_folder_from_nested_bytes(json_data, serde) + + +# ============================================================================= +# NESTED FORMAT CLASSES +# ============================================================================= + +class SapAnalyticsCloudFolderAttributes(AssetAttributes): + """SapAnalyticsCloudFolder-specific attributes for nested API format.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + +class SapAnalyticsCloudFolderRelationshipAttributes(AssetRelationshipAttributes): + """SapAnalyticsCloudFolder-specific relationship attributes for nested API format.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + sap_analytics_cloud_sub_folders: Union[List[RelatedSapAnalyticsCloudFolder], None, UnsetType] = UNSET + """Folders nested within this folder.""" + + sap_analytics_cloud_parent_folder: Union[RelatedSapAnalyticsCloudFolder, None, UnsetType] = UNSET + """Folder containing this folder.""" + + sap_analytics_cloud_models: Union[List[RelatedSapAnalyticsCloudModel], None, UnsetType] = UNSET + """Models held in this folder.""" + + sap_analytics_cloud_stories: Union[List[RelatedSapAnalyticsCloudStory], None, UnsetType] = UNSET + """Stories held in this folder.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + +class SapAnalyticsCloudFolderNested(AssetNested): + """SapAnalyticsCloudFolder in nested API format for high-performance serialization.""" + + attributes: Union[SapAnalyticsCloudFolderAttributes, UnsetType] = UNSET + relationship_attributes: Union[SapAnalyticsCloudFolderRelationshipAttributes, UnsetType] = UNSET + append_relationship_attributes: Union[SapAnalyticsCloudFolderRelationshipAttributes, UnsetType] = UNSET + remove_relationship_attributes: Union[SapAnalyticsCloudFolderRelationshipAttributes, UnsetType] = UNSET + +# ============================================================================= +# CONVERSION HELPERS & CONSTANTS +# ============================================================================= + +_SAP_ANALYTICS_CLOUD_FOLDER_REL_FIELDS: List[str] = [ + *_ASSET_REL_FIELDS, + "input_to_airflow_tasks", + "output_from_airflow_tasks", + "anomalo_checks", + "application", + "application_field", + "context_repositories", + "data_contract_latest", + "data_contract_latest_certified", + "output_port_data_products", + "input_port_data_products", + "model_implemented_entities", + "model_implemented_attributes", + "metrics", + "dq_base_dataset_rules", + "dq_reference_dataset_rules", + "gcp_dataplex_aspect_type_metadata_entities", + "meanings", + "knowledge_linked_files", + "mc_monitors", + "mc_incidents", + "partial_child_fields", + "partial_child_objects", + "input_to_processes", + "output_from_processes", + "user_def_relationship_to", + "user_def_relationship_from", + "files", + "links", + "readme", + "sap_analytics_cloud_sub_folders", + "sap_analytics_cloud_parent_folder", + "sap_analytics_cloud_models", + "sap_analytics_cloud_stories", + "schema_registry_subjects", + "soda_checks", + "input_to_spark_jobs", + "output_from_spark_jobs", +] + +def _populate_sap_analytics_cloud_folder_attrs(attrs: SapAnalyticsCloudFolderAttributes, obj: SapAnalyticsCloudFolder) -> None: + """Populate SapAnalyticsCloudFolder-specific attributes on the attrs struct.""" + _populate_asset_attrs(attrs, obj) + attrs.sap_analytics_cloud_resource_id = obj.sap_analytics_cloud_resource_id + attrs.sap_analytics_cloud_object_id = obj.sap_analytics_cloud_object_id + attrs.sap_analytics_cloud_repository_partition = obj.sap_analytics_cloud_repository_partition + attrs.sap_analytics_cloud_workspace_id = obj.sap_analytics_cloud_workspace_id + attrs.sap_analytics_cloud_workspace_name = obj.sap_analytics_cloud_workspace_name + attrs.sap_analytics_cloud_parent_folder_qualified_name = obj.sap_analytics_cloud_parent_folder_qualified_name + attrs.sap_analytics_cloud_parent_folder_name = obj.sap_analytics_cloud_parent_folder_name + attrs.sap_technical_name = obj.sap_technical_name + attrs.sap_logical_name = obj.sap_logical_name + attrs.sap_package_name = obj.sap_package_name + attrs.sap_component_name = obj.sap_component_name + attrs.sap_data_type = obj.sap_data_type + attrs.sap_field_count = obj.sap_field_count + attrs.sap_field_order = obj.sap_field_order + attrs.catalog_dataset_guid = obj.catalog_dataset_guid + +def _extract_sap_analytics_cloud_folder_attrs(attrs: SapAnalyticsCloudFolderAttributes) -> dict: + """Extract all SapAnalyticsCloudFolder attributes from the attrs struct into a flat dict.""" + result = _extract_asset_attrs(attrs) + result["sap_analytics_cloud_resource_id"] = attrs.sap_analytics_cloud_resource_id + result["sap_analytics_cloud_object_id"] = attrs.sap_analytics_cloud_object_id + result["sap_analytics_cloud_repository_partition"] = attrs.sap_analytics_cloud_repository_partition + result["sap_analytics_cloud_workspace_id"] = attrs.sap_analytics_cloud_workspace_id + result["sap_analytics_cloud_workspace_name"] = attrs.sap_analytics_cloud_workspace_name + result["sap_analytics_cloud_parent_folder_qualified_name"] = attrs.sap_analytics_cloud_parent_folder_qualified_name + result["sap_analytics_cloud_parent_folder_name"] = attrs.sap_analytics_cloud_parent_folder_name + result["sap_technical_name"] = attrs.sap_technical_name + result["sap_logical_name"] = attrs.sap_logical_name + result["sap_package_name"] = attrs.sap_package_name + result["sap_component_name"] = attrs.sap_component_name + result["sap_data_type"] = attrs.sap_data_type + result["sap_field_count"] = attrs.sap_field_count + result["sap_field_order"] = attrs.sap_field_order + result["catalog_dataset_guid"] = attrs.catalog_dataset_guid + return result + +# ============================================================================= +# CONVERSION FUNCTIONS +# ============================================================================= + + +def _sap_analytics_cloud_folder_to_nested(sap_analytics_cloud_folder: SapAnalyticsCloudFolder) -> SapAnalyticsCloudFolderNested: + """Convert flat SapAnalyticsCloudFolder to nested format.""" + attrs = SapAnalyticsCloudFolderAttributes() + _populate_sap_analytics_cloud_folder_attrs(attrs, sap_analytics_cloud_folder) + # Categorize relationships by save semantic (REPLACE, APPEND, REMOVE) + replace_rels, append_rels, remove_rels = categorize_relationships( + sap_analytics_cloud_folder, _SAP_ANALYTICS_CLOUD_FOLDER_REL_FIELDS, SapAnalyticsCloudFolderRelationshipAttributes + ) + return SapAnalyticsCloudFolderNested( + guid=sap_analytics_cloud_folder.guid, + type_name=sap_analytics_cloud_folder.type_name, + status=sap_analytics_cloud_folder.status, + version=sap_analytics_cloud_folder.version, + create_time=sap_analytics_cloud_folder.create_time, + update_time=sap_analytics_cloud_folder.update_time, + created_by=sap_analytics_cloud_folder.created_by, + updated_by=sap_analytics_cloud_folder.updated_by, + classifications=sap_analytics_cloud_folder.classifications, + classification_names=sap_analytics_cloud_folder.classification_names, + meanings=sap_analytics_cloud_folder.meanings, + labels=sap_analytics_cloud_folder.labels, + business_attributes=sap_analytics_cloud_folder.business_attributes, + custom_attributes=sap_analytics_cloud_folder.custom_attributes, + pending_tasks=sap_analytics_cloud_folder.pending_tasks, + proxy=sap_analytics_cloud_folder.proxy, + is_incomplete=sap_analytics_cloud_folder.is_incomplete, + provenance_type=sap_analytics_cloud_folder.provenance_type, + home_id=sap_analytics_cloud_folder.home_id, + depth=sap_analytics_cloud_folder.depth, + immediate_upstream=sap_analytics_cloud_folder.immediate_upstream, + immediate_downstream=sap_analytics_cloud_folder.immediate_downstream, + attributes=attrs, + relationship_attributes=replace_rels, + append_relationship_attributes=append_rels, + remove_relationship_attributes=remove_rels, + ) + +def _sap_analytics_cloud_folder_from_nested(nested: SapAnalyticsCloudFolderNested) -> SapAnalyticsCloudFolder: + """Convert nested format to flat SapAnalyticsCloudFolder.""" + attrs = nested.attributes if nested.attributes is not UNSET else SapAnalyticsCloudFolderAttributes() + # Merge relationships from all three buckets + merged_rels = merge_relationships( + nested.relationship_attributes, + nested.append_relationship_attributes, + nested.remove_relationship_attributes, + _SAP_ANALYTICS_CLOUD_FOLDER_REL_FIELDS, + SapAnalyticsCloudFolderRelationshipAttributes + ) + return SapAnalyticsCloudFolder( + guid=nested.guid, + type_name=nested.type_name, + status=nested.status, + version=nested.version, + create_time=nested.create_time, + update_time=nested.update_time, + created_by=nested.created_by, + updated_by=nested.updated_by, + classifications=nested.classifications, + classification_names=nested.classification_names, + meanings=nested.meanings, + labels=nested.labels, + business_attributes=nested.business_attributes, + custom_attributes=nested.custom_attributes, + pending_tasks=nested.pending_tasks, + proxy=nested.proxy, + is_incomplete=nested.is_incomplete, + provenance_type=nested.provenance_type, + home_id=nested.home_id, + depth=nested.depth, + immediate_upstream=nested.immediate_upstream, + immediate_downstream=nested.immediate_downstream, + **_extract_sap_analytics_cloud_folder_attrs(attrs), + # Merged relationship attributes + **merged_rels, + ) + +def _sap_analytics_cloud_folder_to_nested_bytes(sap_analytics_cloud_folder: SapAnalyticsCloudFolder, serde: Serde) -> bytes: + """Convert flat SapAnalyticsCloudFolder to nested JSON bytes.""" + return serde.encode(_sap_analytics_cloud_folder_to_nested(sap_analytics_cloud_folder)) + + +def _sap_analytics_cloud_folder_from_nested_bytes(data: bytes, serde: Serde) -> SapAnalyticsCloudFolder: + """Convert nested JSON bytes to flat SapAnalyticsCloudFolder.""" + nested = serde.decode(data, SapAnalyticsCloudFolderNested) + return _sap_analytics_cloud_folder_from_nested(nested) + +# --------------------------------------------------------------------------- +# Deferred field descriptor initialization +# --------------------------------------------------------------------------- +from pyatlan.model.fields.atlan_fields import ( # noqa: E402 + KeywordField, + NumericField, + RelationField, +) + +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_RESOURCE_ID = KeywordField("sapAnalyticsCloudResourceId", "sapAnalyticsCloudResourceId") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_OBJECT_ID = KeywordField("sapAnalyticsCloudObjectId", "sapAnalyticsCloudObjectId") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION = KeywordField("sapAnalyticsCloudRepositoryPartition", "sapAnalyticsCloudRepositoryPartition") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_WORKSPACE_ID = KeywordField("sapAnalyticsCloudWorkspaceId", "sapAnalyticsCloudWorkspaceId") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_WORKSPACE_NAME = KeywordField("sapAnalyticsCloudWorkspaceName", "sapAnalyticsCloudWorkspaceName") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME = KeywordField("sapAnalyticsCloudParentFolderQualifiedName", "sapAnalyticsCloudParentFolderQualifiedName") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME = KeywordField("sapAnalyticsCloudParentFolderName", "sapAnalyticsCloudParentFolderName") +SapAnalyticsCloudFolder.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") +SapAnalyticsCloudFolder.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") +SapAnalyticsCloudFolder.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") +SapAnalyticsCloudFolder.SAP_COMPONENT_NAME = KeywordField("sapComponentName", "sapComponentName") +SapAnalyticsCloudFolder.SAP_DATA_TYPE = KeywordField("sapDataType", "sapDataType") +SapAnalyticsCloudFolder.SAP_FIELD_COUNT = NumericField("sapFieldCount", "sapFieldCount") +SapAnalyticsCloudFolder.SAP_FIELD_ORDER = NumericField("sapFieldOrder", "sapFieldOrder") +SapAnalyticsCloudFolder.CATALOG_DATASET_GUID = KeywordField("catalogDatasetGuid", "catalogDatasetGuid") +SapAnalyticsCloudFolder.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") +SapAnalyticsCloudFolder.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") +SapAnalyticsCloudFolder.ANOMALO_CHECKS = RelationField("anomaloChecks") +SapAnalyticsCloudFolder.APPLICATION = RelationField("application") +SapAnalyticsCloudFolder.APPLICATION_FIELD = RelationField("applicationField") +SapAnalyticsCloudFolder.CONTEXT_REPOSITORIES = RelationField("contextRepositories") +SapAnalyticsCloudFolder.DATA_CONTRACT_LATEST = RelationField("dataContractLatest") +SapAnalyticsCloudFolder.DATA_CONTRACT_LATEST_CERTIFIED = RelationField("dataContractLatestCertified") +SapAnalyticsCloudFolder.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") +SapAnalyticsCloudFolder.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") +SapAnalyticsCloudFolder.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") +SapAnalyticsCloudFolder.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") +SapAnalyticsCloudFolder.METRICS = RelationField("metrics") +SapAnalyticsCloudFolder.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") +SapAnalyticsCloudFolder.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") +SapAnalyticsCloudFolder.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField("gcpDataplexAspectTypeMetadataEntities") +SapAnalyticsCloudFolder.MEANINGS = RelationField("meanings") +SapAnalyticsCloudFolder.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") +SapAnalyticsCloudFolder.MC_MONITORS = RelationField("mcMonitors") +SapAnalyticsCloudFolder.MC_INCIDENTS = RelationField("mcIncidents") +SapAnalyticsCloudFolder.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") +SapAnalyticsCloudFolder.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") +SapAnalyticsCloudFolder.INPUT_TO_PROCESSES = RelationField("inputToProcesses") +SapAnalyticsCloudFolder.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") +SapAnalyticsCloudFolder.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") +SapAnalyticsCloudFolder.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") +SapAnalyticsCloudFolder.FILES = RelationField("files") +SapAnalyticsCloudFolder.LINKS = RelationField("links") +SapAnalyticsCloudFolder.README = RelationField("readme") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_SUB_FOLDERS = RelationField("sapAnalyticsCloudSubFolders") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_PARENT_FOLDER = RelationField("sapAnalyticsCloudParentFolder") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_MODELS = RelationField("sapAnalyticsCloudModels") +SapAnalyticsCloudFolder.SAP_ANALYTICS_CLOUD_STORIES = RelationField("sapAnalyticsCloudStories") +SapAnalyticsCloudFolder.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") +SapAnalyticsCloudFolder.SODA_CHECKS = RelationField("sodaChecks") +SapAnalyticsCloudFolder.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") +SapAnalyticsCloudFolder.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/sap_analytics_cloud_model.py b/pyatlan_v9/model/assets/sap_analytics_cloud_model.py new file mode 100644 index 000000000..3bb51ff3c --- /dev/null +++ b/pyatlan_v9/model/assets/sap_analytics_cloud_model.py @@ -0,0 +1,911 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# ruff: noqa: ARG002 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +SapAnalyticsCloudModel asset model with flattened inheritance. + +This module provides: +- SapAnalyticsCloudModel: Flat asset class (easy to use) +- SapAnalyticsCloudModelAttributes: Nested attributes struct (extends AssetAttributes) +- SapAnalyticsCloudModelNested: Nested API format struct +""" + +from __future__ import annotations + +import re +from typing import Any, ClassVar, Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .airflow_related import RelatedAirflowTask +from .anomalo_related import RelatedAnomaloCheck +from .app_related import RelatedApplication, RelatedApplicationField +from .asset import ( + _ASSET_REL_FIELDS, + Asset, + AssetAttributes, + AssetNested, + AssetRelationshipAttributes, + _extract_asset_attrs, + _populate_asset_attrs, +) +from .context_related import RelatedContextRepository +from .data_contract_related import RelatedDataContract +from .data_mesh_related import RelatedDataProduct +from .data_quality_related import RelatedDataQualityRule, RelatedMetric +from .gcp_dataplex_related import RelatedGCPDataplexAspectType +from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile +from .model_related import RelatedModelAttribute, RelatedModelEntity +from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor +from .partial_related import RelatedPartialField, RelatedPartialObject +from .process_related import RelatedProcess +from .referenceable_related import RelatedReferenceable +from .resource_related import RelatedFile, RelatedLink, RelatedReadme +from .schema_registry_related import RelatedSchemaRegistrySubject +from .soda_related import RelatedSodaCheck +from .spark_related import RelatedSparkJob +from pyatlan_v9.model.conversion_utils import categorize_relationships, merge_relationships +from pyatlan_v9.model.serde import Serde, get_serde +from pyatlan_v9.model.transform import register_asset + +from .sap_analytics_cloud_related import RelatedSapAnalyticsCloudColumn, RelatedSapAnalyticsCloudFolder, RelatedSapAnalyticsCloudModel + +# ============================================================================= +# FLAT ASSET CLASS +# ============================================================================= + +@register_asset +class SapAnalyticsCloudModel(Asset): + """ + Analytic or planning model in SAP Analytics Cloud. A model is a multidimensional object composed of a fact table, measures, dimensions and hierarchies, whose data is either imported into SAP Analytics Cloud or queried live from a remote system. + """ + + SAP_ANALYTICS_CLOUD_MODEL_KIND: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_DATA_ACCESS_MODE: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PROVIDER_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_MODEL_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_STORY_COUNT: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_TYPE: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_SYSTEM_TYPE: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_HOST: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_PORT: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_PROTOCOL: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_RESOURCE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_OBJECT_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME: ClassVar[Any] = None + SAP_TECHNICAL_NAME: ClassVar[Any] = None + SAP_LOGICAL_NAME: ClassVar[Any] = None + SAP_PACKAGE_NAME: ClassVar[Any] = None + SAP_COMPONENT_NAME: ClassVar[Any] = None + SAP_DATA_TYPE: ClassVar[Any] = None + SAP_FIELD_COUNT: ClassVar[Any] = None + SAP_FIELD_ORDER: ClassVar[Any] = None + CATALOG_DATASET_GUID: ClassVar[Any] = None + INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None + OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None + ANOMALO_CHECKS: ClassVar[Any] = None + APPLICATION: ClassVar[Any] = None + APPLICATION_FIELD: ClassVar[Any] = None + CONTEXT_REPOSITORIES: ClassVar[Any] = None + DATA_CONTRACT_LATEST: ClassVar[Any] = None + DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None + OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None + MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None + METRICS: ClassVar[Any] = None + DQ_BASE_DATASET_RULES: ClassVar[Any] = None + DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None + GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None + MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None + MC_MONITORS: ClassVar[Any] = None + MC_INCIDENTS: ClassVar[Any] = None + PARTIAL_CHILD_FIELDS: ClassVar[Any] = None + PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None + INPUT_TO_PROCESSES: ClassVar[Any] = None + OUTPUT_FROM_PROCESSES: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None + FILES: ClassVar[Any] = None + LINKS: ClassVar[Any] = None + README: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_FOLDER: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_COLUMNS: ClassVar[Any] = None + SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None + SODA_CHECKS: ClassVar[Any] = None + INPUT_TO_SPARK_JOBS: ClassVar[Any] = None + OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None + + sap_analytics_cloud_model_kind: Union[str, None, UnsetType] = UNSET + """Whether this model is an analytic model or a planning model, as reported by the source. ANALYTIC for a read-only model used for analysis and reporting, PLANNING for a model that supports write-back, versions and planning operations.""" + + sap_analytics_cloud_data_access_mode: Union[str, None, UnsetType] = UNSET + """How this model reaches its data, as reported by the source. IMPORT when the data is acquired into SAP Analytics Cloud and stored there, LIVE when it stays in a remote system and is queried live over a connection.""" + + sap_analytics_cloud_provider_id: Union[str, None, UnsetType] = UNSET + """Identifier of the OData provider that exposes this model's metadata. This is the key that joins a model to its columns.""" + + sap_analytics_cloud_model_id: Union[str, None, UnsetType] = UNSET + """Model identifier reported by the SAP Analytics Cloud tenant APIs, which differs from the file-repository resource identifier for live models.""" + + sap_analytics_cloud_story_count: Union[int, None, UnsetType] = UNSET + """Number of SAP Analytics Cloud stories that consume this model, as reported by the source.""" + + sap_analytics_cloud_live_connection_id: Union[str, None, UnsetType] = UNSET + """Identifier of the remote connection a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_name: Union[str, None, UnsetType] = UNSET + """Simple name of the remote connection a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_type: Union[str, None, UnsetType] = UNSET + """Type of the remote connection a live model reads from, such as DIRECT. Empty for imported models.""" + + sap_analytics_cloud_live_connection_system_type: Union[str, None, UnsetType] = UNSET + """Type of the remote system a live model reads from, such as DWC for SAP Datasphere. Empty for imported models.""" + + sap_analytics_cloud_live_connection_host: Union[str, None, UnsetType] = UNSET + """Host of the remote system a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_port: Union[int, None, UnsetType] = UNSET + """Port of the remote system a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_protocol: Union[str, None, UnsetType] = UNSET + """Protocol used to reach the remote system a live model reads from, such as HTTPS. Empty for imported models.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + sap_analytics_cloud_folder: Union[RelatedSapAnalyticsCloudFolder, None, UnsetType] = UNSET + """Folder containing this model.""" + + sap_analytics_cloud_columns: Union[List[RelatedSapAnalyticsCloudColumn], None, UnsetType] = UNSET + """Columns defined within this model.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + def __post_init__(self) -> None: + self.type_name = "SapAnalyticsCloudModel" + + # ========================================================================= + # SDK Methods + # ========================================================================= + + _QUALIFIED_NAME_PATTERN: ClassVar[re.Pattern] = re.compile( + r"^.+/[^/]+/[^/]+/[^/]+$" + ) + + def validate(self, for_creation: bool = False) -> None: + """ + Dry-run validation of this SapAnalyticsCloudModel instance. + + Checks that required fields (type_name, name, qualified_name) are set. + When ``for_creation=True``, also checks hierarchy-specific fields + (parent references, denormalized attributes) needed to create this asset. + + This is purely opt-in and is NOT called by any serde path — only by + explicit user invocation (e.g., validating JSONL before sending to Atlan). + + Args: + for_creation: If True, also validate fields required for asset creation. + + Raises: + ValueError: If any required fields are missing or invalid. + """ + errors: list[str] = [] + if self.type_name is UNSET: + errors.append("type_name is required") + if self.name is UNSET: + errors.append("name is required") + if self.qualified_name is UNSET or self.qualified_name is None: + errors.append("qualified_name is required") + elif not self._QUALIFIED_NAME_PATTERN.match(self.qualified_name): + errors.append( + f"qualified_name '{self.qualified_name}' does not match expected " + f"pattern: {self._QUALIFIED_NAME_PATTERN.pattern}" + ) + if for_creation: + if self.connection_qualified_name is UNSET: + errors.append("connection_qualified_name is required for creation") + if self.sap_analytics_cloud_folder is UNSET: + errors.append("sap_analytics_cloud_folder is required for creation") + if errors: + raise ValueError(f"SapAnalyticsCloudModel validation failed: {errors}") + + def minimize(self) -> "SapAnalyticsCloudModel": + """ + Return a minimal copy of this SapAnalyticsCloudModel with only updater-required fields. + + Calls :meth:`validate` first to ensure the instance is valid, then + returns a new SapAnalyticsCloudModel with only the fields needed for an update + (qualified_name, name, and any type-specific additional fields). + + Returns: + A new SapAnalyticsCloudModel instance with only the minimum required fields. + """ + self.validate() + return SapAnalyticsCloudModel(qualified_name=self.qualified_name, name=self.name) + + def relate(self) -> "RelatedSapAnalyticsCloudModel": + """ + Create a :class:`RelatedSapAnalyticsCloudModel` reference from this instance. + + Returns a lightweight reference suitable for use in relationship + attributes. Prefers ``guid`` if set, otherwise falls back to + ``qualified_name``. + + Returns: + A RelatedSapAnalyticsCloudModel reference to this asset. + """ + if self.guid is not UNSET: + return RelatedSapAnalyticsCloudModel(guid=self.guid) + return RelatedSapAnalyticsCloudModel(qualified_name=self.qualified_name) + + # ========================================================================= + # Optimized Serialization Methods (override Asset base class) + # ========================================================================= + + def to_json(self, nested: bool = True, serde: Serde | None = None) -> str: + """ + Convert to JSON string using optimized nested struct serialization. + + Args: + nested: If True (default), use nested API format. If False, use flat format. + serde: Optional Serde instance for encoder reuse. Uses shared singleton if None. + + Returns: + JSON string representation + """ + if serde is None: + serde = get_serde() + if nested: + return self.to_nested_bytes(serde).decode("utf-8") + else: + return serde.encode(self).decode("utf-8") + + def to_nested_bytes(self, serde: Serde | None = None) -> bytes: + """Serialize to Atlas nested-format JSON bytes (pure msgspec, no dict intermediate).""" + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_model_to_nested_bytes(self, serde) + + @staticmethod + def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapAnalyticsCloudModel: + """ + Create from JSON string or bytes using optimized nested struct deserialization. + + Args: + json_data: JSON string or bytes to deserialize + serde: Optional Serde instance for decoder reuse. Uses shared singleton if None. + + Returns: + SapAnalyticsCloudModel instance + """ + if isinstance(json_data, str): + json_data = json_data.encode("utf-8") + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_model_from_nested_bytes(json_data, serde) + + +# ============================================================================= +# NESTED FORMAT CLASSES +# ============================================================================= + +class SapAnalyticsCloudModelAttributes(AssetAttributes): + """SapAnalyticsCloudModel-specific attributes for nested API format.""" + + sap_analytics_cloud_model_kind: Union[str, None, UnsetType] = UNSET + """Whether this model is an analytic model or a planning model, as reported by the source. ANALYTIC for a read-only model used for analysis and reporting, PLANNING for a model that supports write-back, versions and planning operations.""" + + sap_analytics_cloud_data_access_mode: Union[str, None, UnsetType] = UNSET + """How this model reaches its data, as reported by the source. IMPORT when the data is acquired into SAP Analytics Cloud and stored there, LIVE when it stays in a remote system and is queried live over a connection.""" + + sap_analytics_cloud_provider_id: Union[str, None, UnsetType] = UNSET + """Identifier of the OData provider that exposes this model's metadata. This is the key that joins a model to its columns.""" + + sap_analytics_cloud_model_id: Union[str, None, UnsetType] = UNSET + """Model identifier reported by the SAP Analytics Cloud tenant APIs, which differs from the file-repository resource identifier for live models.""" + + sap_analytics_cloud_story_count: Union[int, None, UnsetType] = UNSET + """Number of SAP Analytics Cloud stories that consume this model, as reported by the source.""" + + sap_analytics_cloud_live_connection_id: Union[str, None, UnsetType] = UNSET + """Identifier of the remote connection a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_name: Union[str, None, UnsetType] = UNSET + """Simple name of the remote connection a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_type: Union[str, None, UnsetType] = UNSET + """Type of the remote connection a live model reads from, such as DIRECT. Empty for imported models.""" + + sap_analytics_cloud_live_connection_system_type: Union[str, None, UnsetType] = UNSET + """Type of the remote system a live model reads from, such as DWC for SAP Datasphere. Empty for imported models.""" + + sap_analytics_cloud_live_connection_host: Union[str, None, UnsetType] = UNSET + """Host of the remote system a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_port: Union[int, None, UnsetType] = UNSET + """Port of the remote system a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_protocol: Union[str, None, UnsetType] = UNSET + """Protocol used to reach the remote system a live model reads from, such as HTTPS. Empty for imported models.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + +class SapAnalyticsCloudModelRelationshipAttributes(AssetRelationshipAttributes): + """SapAnalyticsCloudModel-specific relationship attributes for nested API format.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + sap_analytics_cloud_folder: Union[RelatedSapAnalyticsCloudFolder, None, UnsetType] = UNSET + """Folder containing this model.""" + + sap_analytics_cloud_columns: Union[List[RelatedSapAnalyticsCloudColumn], None, UnsetType] = UNSET + """Columns defined within this model.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + +class SapAnalyticsCloudModelNested(AssetNested): + """SapAnalyticsCloudModel in nested API format for high-performance serialization.""" + + attributes: Union[SapAnalyticsCloudModelAttributes, UnsetType] = UNSET + relationship_attributes: Union[SapAnalyticsCloudModelRelationshipAttributes, UnsetType] = UNSET + append_relationship_attributes: Union[SapAnalyticsCloudModelRelationshipAttributes, UnsetType] = UNSET + remove_relationship_attributes: Union[SapAnalyticsCloudModelRelationshipAttributes, UnsetType] = UNSET + +# ============================================================================= +# CONVERSION HELPERS & CONSTANTS +# ============================================================================= + +_SAP_ANALYTICS_CLOUD_MODEL_REL_FIELDS: List[str] = [ + *_ASSET_REL_FIELDS, + "input_to_airflow_tasks", + "output_from_airflow_tasks", + "anomalo_checks", + "application", + "application_field", + "context_repositories", + "data_contract_latest", + "data_contract_latest_certified", + "output_port_data_products", + "input_port_data_products", + "model_implemented_entities", + "model_implemented_attributes", + "metrics", + "dq_base_dataset_rules", + "dq_reference_dataset_rules", + "gcp_dataplex_aspect_type_metadata_entities", + "meanings", + "knowledge_linked_files", + "mc_monitors", + "mc_incidents", + "partial_child_fields", + "partial_child_objects", + "input_to_processes", + "output_from_processes", + "user_def_relationship_to", + "user_def_relationship_from", + "files", + "links", + "readme", + "sap_analytics_cloud_folder", + "sap_analytics_cloud_columns", + "schema_registry_subjects", + "soda_checks", + "input_to_spark_jobs", + "output_from_spark_jobs", +] + +def _populate_sap_analytics_cloud_model_attrs(attrs: SapAnalyticsCloudModelAttributes, obj: SapAnalyticsCloudModel) -> None: + """Populate SapAnalyticsCloudModel-specific attributes on the attrs struct.""" + _populate_asset_attrs(attrs, obj) + attrs.sap_analytics_cloud_model_kind = obj.sap_analytics_cloud_model_kind + attrs.sap_analytics_cloud_data_access_mode = obj.sap_analytics_cloud_data_access_mode + attrs.sap_analytics_cloud_provider_id = obj.sap_analytics_cloud_provider_id + attrs.sap_analytics_cloud_model_id = obj.sap_analytics_cloud_model_id + attrs.sap_analytics_cloud_story_count = obj.sap_analytics_cloud_story_count + attrs.sap_analytics_cloud_live_connection_id = obj.sap_analytics_cloud_live_connection_id + attrs.sap_analytics_cloud_live_connection_name = obj.sap_analytics_cloud_live_connection_name + attrs.sap_analytics_cloud_live_connection_type = obj.sap_analytics_cloud_live_connection_type + attrs.sap_analytics_cloud_live_connection_system_type = obj.sap_analytics_cloud_live_connection_system_type + attrs.sap_analytics_cloud_live_connection_host = obj.sap_analytics_cloud_live_connection_host + attrs.sap_analytics_cloud_live_connection_port = obj.sap_analytics_cloud_live_connection_port + attrs.sap_analytics_cloud_live_connection_protocol = obj.sap_analytics_cloud_live_connection_protocol + attrs.sap_analytics_cloud_resource_id = obj.sap_analytics_cloud_resource_id + attrs.sap_analytics_cloud_object_id = obj.sap_analytics_cloud_object_id + attrs.sap_analytics_cloud_repository_partition = obj.sap_analytics_cloud_repository_partition + attrs.sap_analytics_cloud_workspace_id = obj.sap_analytics_cloud_workspace_id + attrs.sap_analytics_cloud_workspace_name = obj.sap_analytics_cloud_workspace_name + attrs.sap_analytics_cloud_parent_folder_qualified_name = obj.sap_analytics_cloud_parent_folder_qualified_name + attrs.sap_analytics_cloud_parent_folder_name = obj.sap_analytics_cloud_parent_folder_name + attrs.sap_technical_name = obj.sap_technical_name + attrs.sap_logical_name = obj.sap_logical_name + attrs.sap_package_name = obj.sap_package_name + attrs.sap_component_name = obj.sap_component_name + attrs.sap_data_type = obj.sap_data_type + attrs.sap_field_count = obj.sap_field_count + attrs.sap_field_order = obj.sap_field_order + attrs.catalog_dataset_guid = obj.catalog_dataset_guid + +def _extract_sap_analytics_cloud_model_attrs(attrs: SapAnalyticsCloudModelAttributes) -> dict: + """Extract all SapAnalyticsCloudModel attributes from the attrs struct into a flat dict.""" + result = _extract_asset_attrs(attrs) + result["sap_analytics_cloud_model_kind"] = attrs.sap_analytics_cloud_model_kind + result["sap_analytics_cloud_data_access_mode"] = attrs.sap_analytics_cloud_data_access_mode + result["sap_analytics_cloud_provider_id"] = attrs.sap_analytics_cloud_provider_id + result["sap_analytics_cloud_model_id"] = attrs.sap_analytics_cloud_model_id + result["sap_analytics_cloud_story_count"] = attrs.sap_analytics_cloud_story_count + result["sap_analytics_cloud_live_connection_id"] = attrs.sap_analytics_cloud_live_connection_id + result["sap_analytics_cloud_live_connection_name"] = attrs.sap_analytics_cloud_live_connection_name + result["sap_analytics_cloud_live_connection_type"] = attrs.sap_analytics_cloud_live_connection_type + result["sap_analytics_cloud_live_connection_system_type"] = attrs.sap_analytics_cloud_live_connection_system_type + result["sap_analytics_cloud_live_connection_host"] = attrs.sap_analytics_cloud_live_connection_host + result["sap_analytics_cloud_live_connection_port"] = attrs.sap_analytics_cloud_live_connection_port + result["sap_analytics_cloud_live_connection_protocol"] = attrs.sap_analytics_cloud_live_connection_protocol + result["sap_analytics_cloud_resource_id"] = attrs.sap_analytics_cloud_resource_id + result["sap_analytics_cloud_object_id"] = attrs.sap_analytics_cloud_object_id + result["sap_analytics_cloud_repository_partition"] = attrs.sap_analytics_cloud_repository_partition + result["sap_analytics_cloud_workspace_id"] = attrs.sap_analytics_cloud_workspace_id + result["sap_analytics_cloud_workspace_name"] = attrs.sap_analytics_cloud_workspace_name + result["sap_analytics_cloud_parent_folder_qualified_name"] = attrs.sap_analytics_cloud_parent_folder_qualified_name + result["sap_analytics_cloud_parent_folder_name"] = attrs.sap_analytics_cloud_parent_folder_name + result["sap_technical_name"] = attrs.sap_technical_name + result["sap_logical_name"] = attrs.sap_logical_name + result["sap_package_name"] = attrs.sap_package_name + result["sap_component_name"] = attrs.sap_component_name + result["sap_data_type"] = attrs.sap_data_type + result["sap_field_count"] = attrs.sap_field_count + result["sap_field_order"] = attrs.sap_field_order + result["catalog_dataset_guid"] = attrs.catalog_dataset_guid + return result + +# ============================================================================= +# CONVERSION FUNCTIONS +# ============================================================================= + + +def _sap_analytics_cloud_model_to_nested(sap_analytics_cloud_model: SapAnalyticsCloudModel) -> SapAnalyticsCloudModelNested: + """Convert flat SapAnalyticsCloudModel to nested format.""" + attrs = SapAnalyticsCloudModelAttributes() + _populate_sap_analytics_cloud_model_attrs(attrs, sap_analytics_cloud_model) + # Categorize relationships by save semantic (REPLACE, APPEND, REMOVE) + replace_rels, append_rels, remove_rels = categorize_relationships( + sap_analytics_cloud_model, _SAP_ANALYTICS_CLOUD_MODEL_REL_FIELDS, SapAnalyticsCloudModelRelationshipAttributes + ) + return SapAnalyticsCloudModelNested( + guid=sap_analytics_cloud_model.guid, + type_name=sap_analytics_cloud_model.type_name, + status=sap_analytics_cloud_model.status, + version=sap_analytics_cloud_model.version, + create_time=sap_analytics_cloud_model.create_time, + update_time=sap_analytics_cloud_model.update_time, + created_by=sap_analytics_cloud_model.created_by, + updated_by=sap_analytics_cloud_model.updated_by, + classifications=sap_analytics_cloud_model.classifications, + classification_names=sap_analytics_cloud_model.classification_names, + meanings=sap_analytics_cloud_model.meanings, + labels=sap_analytics_cloud_model.labels, + business_attributes=sap_analytics_cloud_model.business_attributes, + custom_attributes=sap_analytics_cloud_model.custom_attributes, + pending_tasks=sap_analytics_cloud_model.pending_tasks, + proxy=sap_analytics_cloud_model.proxy, + is_incomplete=sap_analytics_cloud_model.is_incomplete, + provenance_type=sap_analytics_cloud_model.provenance_type, + home_id=sap_analytics_cloud_model.home_id, + depth=sap_analytics_cloud_model.depth, + immediate_upstream=sap_analytics_cloud_model.immediate_upstream, + immediate_downstream=sap_analytics_cloud_model.immediate_downstream, + attributes=attrs, + relationship_attributes=replace_rels, + append_relationship_attributes=append_rels, + remove_relationship_attributes=remove_rels, + ) + +def _sap_analytics_cloud_model_from_nested(nested: SapAnalyticsCloudModelNested) -> SapAnalyticsCloudModel: + """Convert nested format to flat SapAnalyticsCloudModel.""" + attrs = nested.attributes if nested.attributes is not UNSET else SapAnalyticsCloudModelAttributes() + # Merge relationships from all three buckets + merged_rels = merge_relationships( + nested.relationship_attributes, + nested.append_relationship_attributes, + nested.remove_relationship_attributes, + _SAP_ANALYTICS_CLOUD_MODEL_REL_FIELDS, + SapAnalyticsCloudModelRelationshipAttributes + ) + return SapAnalyticsCloudModel( + guid=nested.guid, + type_name=nested.type_name, + status=nested.status, + version=nested.version, + create_time=nested.create_time, + update_time=nested.update_time, + created_by=nested.created_by, + updated_by=nested.updated_by, + classifications=nested.classifications, + classification_names=nested.classification_names, + meanings=nested.meanings, + labels=nested.labels, + business_attributes=nested.business_attributes, + custom_attributes=nested.custom_attributes, + pending_tasks=nested.pending_tasks, + proxy=nested.proxy, + is_incomplete=nested.is_incomplete, + provenance_type=nested.provenance_type, + home_id=nested.home_id, + depth=nested.depth, + immediate_upstream=nested.immediate_upstream, + immediate_downstream=nested.immediate_downstream, + **_extract_sap_analytics_cloud_model_attrs(attrs), + # Merged relationship attributes + **merged_rels, + ) + +def _sap_analytics_cloud_model_to_nested_bytes(sap_analytics_cloud_model: SapAnalyticsCloudModel, serde: Serde) -> bytes: + """Convert flat SapAnalyticsCloudModel to nested JSON bytes.""" + return serde.encode(_sap_analytics_cloud_model_to_nested(sap_analytics_cloud_model)) + + +def _sap_analytics_cloud_model_from_nested_bytes(data: bytes, serde: Serde) -> SapAnalyticsCloudModel: + """Convert nested JSON bytes to flat SapAnalyticsCloudModel.""" + nested = serde.decode(data, SapAnalyticsCloudModelNested) + return _sap_analytics_cloud_model_from_nested(nested) + +# --------------------------------------------------------------------------- +# Deferred field descriptor initialization +# --------------------------------------------------------------------------- +from pyatlan.model.fields.atlan_fields import ( # noqa: E402 + KeywordField, + NumericField, + RelationField, +) + +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_MODEL_KIND = KeywordField("sapAnalyticsCloudModelKind", "sapAnalyticsCloudModelKind") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_DATA_ACCESS_MODE = KeywordField("sapAnalyticsCloudDataAccessMode", "sapAnalyticsCloudDataAccessMode") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_PROVIDER_ID = KeywordField("sapAnalyticsCloudProviderId", "sapAnalyticsCloudProviderId") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_MODEL_ID = KeywordField("sapAnalyticsCloudModelId", "sapAnalyticsCloudModelId") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_STORY_COUNT = NumericField("sapAnalyticsCloudStoryCount", "sapAnalyticsCloudStoryCount") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_ID = KeywordField("sapAnalyticsCloudLiveConnectionId", "sapAnalyticsCloudLiveConnectionId") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_NAME = KeywordField("sapAnalyticsCloudLiveConnectionName", "sapAnalyticsCloudLiveConnectionName") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_TYPE = KeywordField("sapAnalyticsCloudLiveConnectionType", "sapAnalyticsCloudLiveConnectionType") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_SYSTEM_TYPE = KeywordField("sapAnalyticsCloudLiveConnectionSystemType", "sapAnalyticsCloudLiveConnectionSystemType") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_HOST = KeywordField("sapAnalyticsCloudLiveConnectionHost", "sapAnalyticsCloudLiveConnectionHost") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_PORT = NumericField("sapAnalyticsCloudLiveConnectionPort", "sapAnalyticsCloudLiveConnectionPort") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_PROTOCOL = KeywordField("sapAnalyticsCloudLiveConnectionProtocol", "sapAnalyticsCloudLiveConnectionProtocol") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_RESOURCE_ID = KeywordField("sapAnalyticsCloudResourceId", "sapAnalyticsCloudResourceId") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_OBJECT_ID = KeywordField("sapAnalyticsCloudObjectId", "sapAnalyticsCloudObjectId") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION = KeywordField("sapAnalyticsCloudRepositoryPartition", "sapAnalyticsCloudRepositoryPartition") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_WORKSPACE_ID = KeywordField("sapAnalyticsCloudWorkspaceId", "sapAnalyticsCloudWorkspaceId") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_WORKSPACE_NAME = KeywordField("sapAnalyticsCloudWorkspaceName", "sapAnalyticsCloudWorkspaceName") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME = KeywordField("sapAnalyticsCloudParentFolderQualifiedName", "sapAnalyticsCloudParentFolderQualifiedName") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME = KeywordField("sapAnalyticsCloudParentFolderName", "sapAnalyticsCloudParentFolderName") +SapAnalyticsCloudModel.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") +SapAnalyticsCloudModel.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") +SapAnalyticsCloudModel.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") +SapAnalyticsCloudModel.SAP_COMPONENT_NAME = KeywordField("sapComponentName", "sapComponentName") +SapAnalyticsCloudModel.SAP_DATA_TYPE = KeywordField("sapDataType", "sapDataType") +SapAnalyticsCloudModel.SAP_FIELD_COUNT = NumericField("sapFieldCount", "sapFieldCount") +SapAnalyticsCloudModel.SAP_FIELD_ORDER = NumericField("sapFieldOrder", "sapFieldOrder") +SapAnalyticsCloudModel.CATALOG_DATASET_GUID = KeywordField("catalogDatasetGuid", "catalogDatasetGuid") +SapAnalyticsCloudModel.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") +SapAnalyticsCloudModel.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") +SapAnalyticsCloudModel.ANOMALO_CHECKS = RelationField("anomaloChecks") +SapAnalyticsCloudModel.APPLICATION = RelationField("application") +SapAnalyticsCloudModel.APPLICATION_FIELD = RelationField("applicationField") +SapAnalyticsCloudModel.CONTEXT_REPOSITORIES = RelationField("contextRepositories") +SapAnalyticsCloudModel.DATA_CONTRACT_LATEST = RelationField("dataContractLatest") +SapAnalyticsCloudModel.DATA_CONTRACT_LATEST_CERTIFIED = RelationField("dataContractLatestCertified") +SapAnalyticsCloudModel.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") +SapAnalyticsCloudModel.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") +SapAnalyticsCloudModel.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") +SapAnalyticsCloudModel.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") +SapAnalyticsCloudModel.METRICS = RelationField("metrics") +SapAnalyticsCloudModel.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") +SapAnalyticsCloudModel.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") +SapAnalyticsCloudModel.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField("gcpDataplexAspectTypeMetadataEntities") +SapAnalyticsCloudModel.MEANINGS = RelationField("meanings") +SapAnalyticsCloudModel.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") +SapAnalyticsCloudModel.MC_MONITORS = RelationField("mcMonitors") +SapAnalyticsCloudModel.MC_INCIDENTS = RelationField("mcIncidents") +SapAnalyticsCloudModel.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") +SapAnalyticsCloudModel.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") +SapAnalyticsCloudModel.INPUT_TO_PROCESSES = RelationField("inputToProcesses") +SapAnalyticsCloudModel.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") +SapAnalyticsCloudModel.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") +SapAnalyticsCloudModel.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") +SapAnalyticsCloudModel.FILES = RelationField("files") +SapAnalyticsCloudModel.LINKS = RelationField("links") +SapAnalyticsCloudModel.README = RelationField("readme") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_FOLDER = RelationField("sapAnalyticsCloudFolder") +SapAnalyticsCloudModel.SAP_ANALYTICS_CLOUD_COLUMNS = RelationField("sapAnalyticsCloudColumns") +SapAnalyticsCloudModel.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") +SapAnalyticsCloudModel.SODA_CHECKS = RelationField("sodaChecks") +SapAnalyticsCloudModel.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") +SapAnalyticsCloudModel.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/sap_analytics_cloud_related.py b/pyatlan_v9/model/assets/sap_analytics_cloud_related.py new file mode 100644 index 000000000..cfb3a2ea1 --- /dev/null +++ b/pyatlan_v9/model/assets/sap_analytics_cloud_related.py @@ -0,0 +1,173 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +Related type classes for SapAnalyticsCloud module. + +This module contains all Related{Type} classes for the SapAnalyticsCloud type hierarchy. +These classes are used for relationship attributes to reference related entities. +""" + +from __future__ import annotations + +from typing import Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .referenceable_related import RelatedReferenceable +from .sap_related import RelatedSAP + +__all__ = [ + "RelatedSapAnalyticsCloud", + "RelatedSapAnalyticsCloudFolder", + "RelatedSapAnalyticsCloudModel", + "RelatedSapAnalyticsCloudStory", + "RelatedSapAnalyticsCloudColumn", +] + + +class RelatedSapAnalyticsCloud(RelatedSAP): + """ + Related entity reference for SapAnalyticsCloud assets. + + Extends RelatedSAP with SapAnalyticsCloud-specific attributes. + """ + + # type_name inherited from parent with default=UNSET + # __post_init__ sets it to "SapAnalyticsCloud" so it serializes correctly + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + def __post_init__(self) -> None: + RelatedReferenceable.__post_init__(self) + if self.type_name is UNSET: + self.type_name = "SapAnalyticsCloud" + +class RelatedSapAnalyticsCloudFolder(RelatedSapAnalyticsCloud): + """ + Related entity reference for SapAnalyticsCloudFolder assets. + + Extends RelatedSapAnalyticsCloud with SapAnalyticsCloudFolder-specific attributes. + """ + + # type_name inherited from parent with default=UNSET + # __post_init__ sets it to "SapAnalyticsCloudFolder" so it serializes correctly + + def __post_init__(self) -> None: + RelatedReferenceable.__post_init__(self) + if self.type_name is UNSET: + self.type_name = "SapAnalyticsCloudFolder" + +class RelatedSapAnalyticsCloudModel(RelatedSapAnalyticsCloud): + """ + Related entity reference for SapAnalyticsCloudModel assets. + + Extends RelatedSapAnalyticsCloud with SapAnalyticsCloudModel-specific attributes. + """ + + # type_name inherited from parent with default=UNSET + # __post_init__ sets it to "SapAnalyticsCloudModel" so it serializes correctly + + sap_analytics_cloud_model_kind: Union[str, None, UnsetType] = UNSET + """Whether this model is an analytic model or a planning model, as reported by the source. ANALYTIC for a read-only model used for analysis and reporting, PLANNING for a model that supports write-back, versions and planning operations.""" + + sap_analytics_cloud_data_access_mode: Union[str, None, UnsetType] = UNSET + """How this model reaches its data, as reported by the source. IMPORT when the data is acquired into SAP Analytics Cloud and stored there, LIVE when it stays in a remote system and is queried live over a connection.""" + + sap_analytics_cloud_provider_id: Union[str, None, UnsetType] = UNSET + """Identifier of the OData provider that exposes this model's metadata. This is the key that joins a model to its columns.""" + + sap_analytics_cloud_model_id: Union[str, None, UnsetType] = UNSET + """Model identifier reported by the SAP Analytics Cloud tenant APIs, which differs from the file-repository resource identifier for live models.""" + + sap_analytics_cloud_story_count: Union[int, None, UnsetType] = UNSET + """Number of SAP Analytics Cloud stories that consume this model, as reported by the source.""" + + sap_analytics_cloud_live_connection_id: Union[str, None, UnsetType] = UNSET + """Identifier of the remote connection a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_name: Union[str, None, UnsetType] = UNSET + """Simple name of the remote connection a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_type: Union[str, None, UnsetType] = UNSET + """Type of the remote connection a live model reads from, such as DIRECT. Empty for imported models.""" + + sap_analytics_cloud_live_connection_system_type: Union[str, None, UnsetType] = UNSET + """Type of the remote system a live model reads from, such as DWC for SAP Datasphere. Empty for imported models.""" + + sap_analytics_cloud_live_connection_host: Union[str, None, UnsetType] = UNSET + """Host of the remote system a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_port: Union[int, None, UnsetType] = UNSET + """Port of the remote system a live model reads from. Empty for imported models.""" + + sap_analytics_cloud_live_connection_protocol: Union[str, None, UnsetType] = UNSET + """Protocol used to reach the remote system a live model reads from, such as HTTPS. Empty for imported models.""" + + def __post_init__(self) -> None: + RelatedReferenceable.__post_init__(self) + if self.type_name is UNSET: + self.type_name = "SapAnalyticsCloudModel" + +class RelatedSapAnalyticsCloudStory(RelatedSapAnalyticsCloud): + """ + Related entity reference for SapAnalyticsCloudStory assets. + + Extends RelatedSapAnalyticsCloud with SapAnalyticsCloudStory-specific attributes. + """ + + # type_name inherited from parent with default=UNSET + # __post_init__ sets it to "SapAnalyticsCloudStory" so it serializes correctly + + sap_analytics_cloud_story_kind: Union[str, None, UnsetType] = UNSET + """Subtype of this story as reported by the source, such as COMPOSITE for a story that embeds other stories or TEMPLATE for a story used as the starting point for new ones. Empty for an ordinary story.""" + + sap_analytics_cloud_is_sample: Union[bool, None, UnsetType] = UNSET + """Whether this story is one of the samples shipped with SAP Analytics Cloud rather than tenant content.""" + + def __post_init__(self) -> None: + RelatedReferenceable.__post_init__(self) + if self.type_name is UNSET: + self.type_name = "SapAnalyticsCloudStory" + +class RelatedSapAnalyticsCloudColumn(RelatedSapAnalyticsCloud): + """ + Related entity reference for SapAnalyticsCloudColumn assets. + + Extends RelatedSapAnalyticsCloud with SapAnalyticsCloudColumn-specific attributes. + """ + + # type_name inherited from parent with default=UNSET + # __post_init__ sets it to "SapAnalyticsCloudColumn" so it serializes correctly + + sap_analytics_cloud_model_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud model in which this column exists.""" + + sap_analytics_cloud_model_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud model in which this column exists.""" + + def __post_init__(self) -> None: + RelatedReferenceable.__post_init__(self) + if self.type_name is UNSET: + self.type_name = "SapAnalyticsCloudColumn" diff --git a/pyatlan_v9/model/assets/sap_analytics_cloud_story.py b/pyatlan_v9/model/assets/sap_analytics_cloud_story.py new file mode 100644 index 000000000..5675e8ea5 --- /dev/null +++ b/pyatlan_v9/model/assets/sap_analytics_cloud_story.py @@ -0,0 +1,803 @@ +# Auto-generated by PythonMsgspecRenderer.pkl - DO NOT EDIT +# ruff: noqa: ARG002 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Atlan Pte. Ltd. + +""" +SapAnalyticsCloudStory asset model with flattened inheritance. + +This module provides: +- SapAnalyticsCloudStory: Flat asset class (easy to use) +- SapAnalyticsCloudStoryAttributes: Nested attributes struct (extends AssetAttributes) +- SapAnalyticsCloudStoryNested: Nested API format struct +""" + +from __future__ import annotations + +import re +from typing import Any, ClassVar, Dict, List, Set, Union + +import msgspec +from msgspec import UNSET, UnsetType + +from .airflow_related import RelatedAirflowTask +from .anomalo_related import RelatedAnomaloCheck +from .app_related import RelatedApplication, RelatedApplicationField +from .asset import ( + _ASSET_REL_FIELDS, + Asset, + AssetAttributes, + AssetNested, + AssetRelationshipAttributes, + _extract_asset_attrs, + _populate_asset_attrs, +) +from .context_related import RelatedContextRepository +from .data_contract_related import RelatedDataContract +from .data_mesh_related import RelatedDataProduct +from .data_quality_related import RelatedDataQualityRule, RelatedMetric +from .gcp_dataplex_related import RelatedGCPDataplexAspectType +from .gtc_related import RelatedAtlasGlossaryTerm +from .knowledge_related import RelatedKnowledgeFile +from .model_related import RelatedModelAttribute, RelatedModelEntity +from .monte_carlo_related import RelatedMCIncident, RelatedMCMonitor +from .partial_related import RelatedPartialField, RelatedPartialObject +from .process_related import RelatedProcess +from .referenceable_related import RelatedReferenceable +from .resource_related import RelatedFile, RelatedLink, RelatedReadme +from .schema_registry_related import RelatedSchemaRegistrySubject +from .soda_related import RelatedSodaCheck +from .spark_related import RelatedSparkJob +from pyatlan_v9.model.conversion_utils import categorize_relationships, merge_relationships +from pyatlan_v9.model.serde import Serde, get_serde +from pyatlan_v9.model.transform import register_asset + +from .sap_analytics_cloud_related import RelatedSapAnalyticsCloudFolder, RelatedSapAnalyticsCloudStory + +# ============================================================================= +# FLAT ASSET CLASS +# ============================================================================= + +@register_asset +class SapAnalyticsCloudStory(Asset): + """ + Story in SAP Analytics Cloud. A story is an interactive presentation built over one or more models, and can itself be composed of other stories or act as a template for new ones. + """ + + SAP_ANALYTICS_CLOUD_STORY_KIND: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_IS_SAMPLE: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_RESOURCE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_OBJECT_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_ID: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_WORKSPACE_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME: ClassVar[Any] = None + SAP_TECHNICAL_NAME: ClassVar[Any] = None + SAP_LOGICAL_NAME: ClassVar[Any] = None + SAP_PACKAGE_NAME: ClassVar[Any] = None + SAP_COMPONENT_NAME: ClassVar[Any] = None + SAP_DATA_TYPE: ClassVar[Any] = None + SAP_FIELD_COUNT: ClassVar[Any] = None + SAP_FIELD_ORDER: ClassVar[Any] = None + CATALOG_DATASET_GUID: ClassVar[Any] = None + INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None + OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None + ANOMALO_CHECKS: ClassVar[Any] = None + APPLICATION: ClassVar[Any] = None + APPLICATION_FIELD: ClassVar[Any] = None + CONTEXT_REPOSITORIES: ClassVar[Any] = None + DATA_CONTRACT_LATEST: ClassVar[Any] = None + DATA_CONTRACT_LATEST_CERTIFIED: ClassVar[Any] = None + OUTPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + INPUT_PORT_DATA_PRODUCTS: ClassVar[Any] = None + MODEL_IMPLEMENTED_ENTITIES: ClassVar[Any] = None + MODEL_IMPLEMENTED_ATTRIBUTES: ClassVar[Any] = None + METRICS: ClassVar[Any] = None + DQ_BASE_DATASET_RULES: ClassVar[Any] = None + DQ_REFERENCE_DATASET_RULES: ClassVar[Any] = None + GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES: ClassVar[Any] = None + MEANINGS: ClassVar[Any] = None + KNOWLEDGE_LINKED_FILES: ClassVar[Any] = None + MC_MONITORS: ClassVar[Any] = None + MC_INCIDENTS: ClassVar[Any] = None + PARTIAL_CHILD_FIELDS: ClassVar[Any] = None + PARTIAL_CHILD_OBJECTS: ClassVar[Any] = None + INPUT_TO_PROCESSES: ClassVar[Any] = None + OUTPUT_FROM_PROCESSES: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_TO: ClassVar[Any] = None + USER_DEF_RELATIONSHIP_FROM: ClassVar[Any] = None + FILES: ClassVar[Any] = None + LINKS: ClassVar[Any] = None + README: ClassVar[Any] = None + SAP_ANALYTICS_CLOUD_FOLDER: ClassVar[Any] = None + SCHEMA_REGISTRY_SUBJECTS: ClassVar[Any] = None + SODA_CHECKS: ClassVar[Any] = None + INPUT_TO_SPARK_JOBS: ClassVar[Any] = None + OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None + + sap_analytics_cloud_story_kind: Union[str, None, UnsetType] = UNSET + """Subtype of this story as reported by the source, such as COMPOSITE for a story that embeds other stories or TEMPLATE for a story used as the starting point for new ones. Empty for an ordinary story.""" + + sap_analytics_cloud_is_sample: Union[bool, None, UnsetType] = UNSET + """Whether this story is one of the samples shipped with SAP Analytics Cloud rather than tenant content.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + sap_analytics_cloud_folder: Union[RelatedSapAnalyticsCloudFolder, None, UnsetType] = UNSET + """Folder containing this story.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + def __post_init__(self) -> None: + self.type_name = "SapAnalyticsCloudStory" + + # ========================================================================= + # SDK Methods + # ========================================================================= + + _QUALIFIED_NAME_PATTERN: ClassVar[re.Pattern] = re.compile( + r"^.+/[^/]+/[^/]+/[^/]+$" + ) + + def validate(self, for_creation: bool = False) -> None: + """ + Dry-run validation of this SapAnalyticsCloudStory instance. + + Checks that required fields (type_name, name, qualified_name) are set. + When ``for_creation=True``, also checks hierarchy-specific fields + (parent references, denormalized attributes) needed to create this asset. + + This is purely opt-in and is NOT called by any serde path — only by + explicit user invocation (e.g., validating JSONL before sending to Atlan). + + Args: + for_creation: If True, also validate fields required for asset creation. + + Raises: + ValueError: If any required fields are missing or invalid. + """ + errors: list[str] = [] + if self.type_name is UNSET: + errors.append("type_name is required") + if self.name is UNSET: + errors.append("name is required") + if self.qualified_name is UNSET or self.qualified_name is None: + errors.append("qualified_name is required") + elif not self._QUALIFIED_NAME_PATTERN.match(self.qualified_name): + errors.append( + f"qualified_name '{self.qualified_name}' does not match expected " + f"pattern: {self._QUALIFIED_NAME_PATTERN.pattern}" + ) + if for_creation: + if self.connection_qualified_name is UNSET: + errors.append("connection_qualified_name is required for creation") + if self.sap_analytics_cloud_folder is UNSET: + errors.append("sap_analytics_cloud_folder is required for creation") + if errors: + raise ValueError(f"SapAnalyticsCloudStory validation failed: {errors}") + + def minimize(self) -> "SapAnalyticsCloudStory": + """ + Return a minimal copy of this SapAnalyticsCloudStory with only updater-required fields. + + Calls :meth:`validate` first to ensure the instance is valid, then + returns a new SapAnalyticsCloudStory with only the fields needed for an update + (qualified_name, name, and any type-specific additional fields). + + Returns: + A new SapAnalyticsCloudStory instance with only the minimum required fields. + """ + self.validate() + return SapAnalyticsCloudStory(qualified_name=self.qualified_name, name=self.name) + + def relate(self) -> "RelatedSapAnalyticsCloudStory": + """ + Create a :class:`RelatedSapAnalyticsCloudStory` reference from this instance. + + Returns a lightweight reference suitable for use in relationship + attributes. Prefers ``guid`` if set, otherwise falls back to + ``qualified_name``. + + Returns: + A RelatedSapAnalyticsCloudStory reference to this asset. + """ + if self.guid is not UNSET: + return RelatedSapAnalyticsCloudStory(guid=self.guid) + return RelatedSapAnalyticsCloudStory(qualified_name=self.qualified_name) + + # ========================================================================= + # Optimized Serialization Methods (override Asset base class) + # ========================================================================= + + def to_json(self, nested: bool = True, serde: Serde | None = None) -> str: + """ + Convert to JSON string using optimized nested struct serialization. + + Args: + nested: If True (default), use nested API format. If False, use flat format. + serde: Optional Serde instance for encoder reuse. Uses shared singleton if None. + + Returns: + JSON string representation + """ + if serde is None: + serde = get_serde() + if nested: + return self.to_nested_bytes(serde).decode("utf-8") + else: + return serde.encode(self).decode("utf-8") + + def to_nested_bytes(self, serde: Serde | None = None) -> bytes: + """Serialize to Atlas nested-format JSON bytes (pure msgspec, no dict intermediate).""" + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_story_to_nested_bytes(self, serde) + + @staticmethod + def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapAnalyticsCloudStory: + """ + Create from JSON string or bytes using optimized nested struct deserialization. + + Args: + json_data: JSON string or bytes to deserialize + serde: Optional Serde instance for decoder reuse. Uses shared singleton if None. + + Returns: + SapAnalyticsCloudStory instance + """ + if isinstance(json_data, str): + json_data = json_data.encode("utf-8") + if serde is None: + serde = get_serde() + return _sap_analytics_cloud_story_from_nested_bytes(json_data, serde) + + +# ============================================================================= +# NESTED FORMAT CLASSES +# ============================================================================= + +class SapAnalyticsCloudStoryAttributes(AssetAttributes): + """SapAnalyticsCloudStory-specific attributes for nested API format.""" + + sap_analytics_cloud_story_kind: Union[str, None, UnsetType] = UNSET + """Subtype of this story as reported by the source, such as COMPOSITE for a story that embeds other stories or TEMPLATE for a story used as the starting point for new ones. Empty for an ordinary story.""" + + sap_analytics_cloud_is_sample: Union[bool, None, UnsetType] = UNSET + """Whether this story is one of the samples shipped with SAP Analytics Cloud rather than tenant content.""" + + sap_analytics_cloud_resource_id: Union[str, None, UnsetType] = UNSET + """Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource.""" + + sap_analytics_cloud_object_id: Union[str, None, UnsetType] = UNSET + """Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset.""" + + sap_analytics_cloud_repository_partition: Union[str, None, UnsetType] = UNSET + """Partition of the SAP Analytics Cloud file repository this asset lives in: PUBLIC for shared tenant content, SYSTEM for SAP-shipped content and SAP Analytics Cloud's own telemetry, USERS for the container holding per-user private areas, and PRIVATE for an individual user's own content. Reported by the source as folderType, and carried by every resource rather than only by folders.""" + + sap_analytics_cloud_workspace_id: Union[str, None, UnsetType] = UNSET + """Identifier of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_workspace_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud workspace that owns this asset.""" + + sap_analytics_cloud_parent_folder_qualified_name: Union[str, None, UnsetType] = UNSET + """Unique name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_analytics_cloud_parent_folder_name: Union[str, None, UnsetType] = UNSET + """Simple name of the SAP Analytics Cloud folder that directly contains this asset. Empty for a root-level folder and for a live model, neither of which is contained by a folder.""" + + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + + sap_logical_name: Union[str, None, UnsetType] = UNSET + """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" + + sap_package_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP package, representing a logical grouping of related SAP data objects.""" + + sap_component_name: Union[str, None, UnsetType] = UNSET + """Name of the SAP component, representing a specific functional area in SAP.""" + + sap_data_type: Union[str, None, UnsetType] = UNSET + """SAP-specific data types.""" + + sap_field_count: Union[int, None, UnsetType] = UNSET + """Represents the total number of fields, columns, or child assets present in a given SAP asset.""" + + sap_field_order: Union[int, None, UnsetType] = UNSET + """Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1.""" + + catalog_dataset_guid: Union[str, None, UnsetType] = UNSET + """Unique identifier of the dataset this asset belongs to.""" + +class SapAnalyticsCloudStoryRelationshipAttributes(AssetRelationshipAttributes): + """SapAnalyticsCloudStory-specific relationship attributes for nested API format.""" + + input_to_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks to which this asset provides input.""" + + output_from_airflow_tasks: Union[List[RelatedAirflowTask], None, UnsetType] = UNSET + """Tasks from which this asset is output.""" + + anomalo_checks: Union[List[RelatedAnomaloCheck], None, UnsetType] = UNSET + """Checks that run on this asset.""" + + application: Union[RelatedApplication, None, UnsetType] = UNSET + """Application owning the Asset.""" + + application_field: Union[RelatedApplicationField, None, UnsetType] = UNSET + """ApplicationField owning the Asset.""" + + context_repositories: Union[List[RelatedContextRepository], None, UnsetType] = UNSET + """Context repositories that use this asset as input.""" + + data_contract_latest: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest version of the data contract (in any status) for this asset.""" + + data_contract_latest_certified: Union[RelatedDataContract, None, UnsetType] = UNSET + """Latest certified version of the data contract for this asset.""" + + output_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an output port.""" + + input_port_data_products: Union[List[RelatedDataProduct], None, UnsetType] = UNSET + """Data products for which this asset is an input port.""" + + model_implemented_entities: Union[List[RelatedModelEntity], None, UnsetType] = UNSET + """Entities implemented by this asset.""" + + model_implemented_attributes: Union[List[RelatedModelAttribute], None, UnsetType] = UNSET + """Attributes implemented by this asset.""" + + metrics: Union[List[RelatedMetric], None, UnsetType] = UNSET + """""" + + dq_base_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules that are applied on this dataset.""" + + dq_reference_dataset_rules: Union[List[RelatedDataQualityRule], None, UnsetType] = UNSET + """Rules where this dataset is referenced.""" + + gcp_dataplex_aspect_type_metadata_entities: Union[List[RelatedGCPDataplexAspectType], None, UnsetType] = UNSET + """Dataplex entries (assets) that have aspects of this Aspect Type attached.""" + + meanings: Union[List[RelatedAtlasGlossaryTerm], None, UnsetType] = UNSET + """Glossary terms that are linked to this asset.""" + + knowledge_linked_files: Union[List[RelatedKnowledgeFile], None, UnsetType] = UNSET + """Knowledge files linked to this asset.""" + + mc_monitors: Union[List[RelatedMCMonitor], None, UnsetType] = UNSET + """Monitors that observe this asset.""" + + mc_incidents: Union[List[RelatedMCIncident], None, UnsetType] = UNSET + """""" + + partial_child_fields: Union[List[RelatedPartialField], None, UnsetType] = UNSET + """Partial fields contained in the asset.""" + + partial_child_objects: Union[List[RelatedPartialObject], None, UnsetType] = UNSET + """Partial objects contained in the asset.""" + + input_to_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes to which this asset provides input.""" + + output_from_processes: Union[List[RelatedProcess], None, UnsetType] = UNSET + """Processes from which this asset is produced as output.""" + + user_def_relationship_to: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + user_def_relationship_from: Union[List[RelatedReferenceable], None, UnsetType] = UNSET + """""" + + files: Union[List[RelatedFile], None, UnsetType] = UNSET + """""" + + links: Union[List[RelatedLink], None, UnsetType] = UNSET + """Links that are attached to this asset.""" + + readme: Union[RelatedReadme, None, UnsetType] = UNSET + """README that is linked to this asset.""" + + sap_analytics_cloud_folder: Union[RelatedSapAnalyticsCloudFolder, None, UnsetType] = UNSET + """Folder containing this story.""" + + schema_registry_subjects: Union[List[RelatedSchemaRegistrySubject], None, UnsetType] = UNSET + """Schema registry subjects associated with this asset.""" + + soda_checks: Union[List[RelatedSodaCheck], None, UnsetType] = UNSET + """""" + + input_to_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + + output_from_spark_jobs: Union[List[RelatedSparkJob], None, UnsetType] = UNSET + """""" + +class SapAnalyticsCloudStoryNested(AssetNested): + """SapAnalyticsCloudStory in nested API format for high-performance serialization.""" + + attributes: Union[SapAnalyticsCloudStoryAttributes, UnsetType] = UNSET + relationship_attributes: Union[SapAnalyticsCloudStoryRelationshipAttributes, UnsetType] = UNSET + append_relationship_attributes: Union[SapAnalyticsCloudStoryRelationshipAttributes, UnsetType] = UNSET + remove_relationship_attributes: Union[SapAnalyticsCloudStoryRelationshipAttributes, UnsetType] = UNSET + +# ============================================================================= +# CONVERSION HELPERS & CONSTANTS +# ============================================================================= + +_SAP_ANALYTICS_CLOUD_STORY_REL_FIELDS: List[str] = [ + *_ASSET_REL_FIELDS, + "input_to_airflow_tasks", + "output_from_airflow_tasks", + "anomalo_checks", + "application", + "application_field", + "context_repositories", + "data_contract_latest", + "data_contract_latest_certified", + "output_port_data_products", + "input_port_data_products", + "model_implemented_entities", + "model_implemented_attributes", + "metrics", + "dq_base_dataset_rules", + "dq_reference_dataset_rules", + "gcp_dataplex_aspect_type_metadata_entities", + "meanings", + "knowledge_linked_files", + "mc_monitors", + "mc_incidents", + "partial_child_fields", + "partial_child_objects", + "input_to_processes", + "output_from_processes", + "user_def_relationship_to", + "user_def_relationship_from", + "files", + "links", + "readme", + "sap_analytics_cloud_folder", + "schema_registry_subjects", + "soda_checks", + "input_to_spark_jobs", + "output_from_spark_jobs", +] + +def _populate_sap_analytics_cloud_story_attrs(attrs: SapAnalyticsCloudStoryAttributes, obj: SapAnalyticsCloudStory) -> None: + """Populate SapAnalyticsCloudStory-specific attributes on the attrs struct.""" + _populate_asset_attrs(attrs, obj) + attrs.sap_analytics_cloud_story_kind = obj.sap_analytics_cloud_story_kind + attrs.sap_analytics_cloud_is_sample = obj.sap_analytics_cloud_is_sample + attrs.sap_analytics_cloud_resource_id = obj.sap_analytics_cloud_resource_id + attrs.sap_analytics_cloud_object_id = obj.sap_analytics_cloud_object_id + attrs.sap_analytics_cloud_repository_partition = obj.sap_analytics_cloud_repository_partition + attrs.sap_analytics_cloud_workspace_id = obj.sap_analytics_cloud_workspace_id + attrs.sap_analytics_cloud_workspace_name = obj.sap_analytics_cloud_workspace_name + attrs.sap_analytics_cloud_parent_folder_qualified_name = obj.sap_analytics_cloud_parent_folder_qualified_name + attrs.sap_analytics_cloud_parent_folder_name = obj.sap_analytics_cloud_parent_folder_name + attrs.sap_technical_name = obj.sap_technical_name + attrs.sap_logical_name = obj.sap_logical_name + attrs.sap_package_name = obj.sap_package_name + attrs.sap_component_name = obj.sap_component_name + attrs.sap_data_type = obj.sap_data_type + attrs.sap_field_count = obj.sap_field_count + attrs.sap_field_order = obj.sap_field_order + attrs.catalog_dataset_guid = obj.catalog_dataset_guid + +def _extract_sap_analytics_cloud_story_attrs(attrs: SapAnalyticsCloudStoryAttributes) -> dict: + """Extract all SapAnalyticsCloudStory attributes from the attrs struct into a flat dict.""" + result = _extract_asset_attrs(attrs) + result["sap_analytics_cloud_story_kind"] = attrs.sap_analytics_cloud_story_kind + result["sap_analytics_cloud_is_sample"] = attrs.sap_analytics_cloud_is_sample + result["sap_analytics_cloud_resource_id"] = attrs.sap_analytics_cloud_resource_id + result["sap_analytics_cloud_object_id"] = attrs.sap_analytics_cloud_object_id + result["sap_analytics_cloud_repository_partition"] = attrs.sap_analytics_cloud_repository_partition + result["sap_analytics_cloud_workspace_id"] = attrs.sap_analytics_cloud_workspace_id + result["sap_analytics_cloud_workspace_name"] = attrs.sap_analytics_cloud_workspace_name + result["sap_analytics_cloud_parent_folder_qualified_name"] = attrs.sap_analytics_cloud_parent_folder_qualified_name + result["sap_analytics_cloud_parent_folder_name"] = attrs.sap_analytics_cloud_parent_folder_name + result["sap_technical_name"] = attrs.sap_technical_name + result["sap_logical_name"] = attrs.sap_logical_name + result["sap_package_name"] = attrs.sap_package_name + result["sap_component_name"] = attrs.sap_component_name + result["sap_data_type"] = attrs.sap_data_type + result["sap_field_count"] = attrs.sap_field_count + result["sap_field_order"] = attrs.sap_field_order + result["catalog_dataset_guid"] = attrs.catalog_dataset_guid + return result + +# ============================================================================= +# CONVERSION FUNCTIONS +# ============================================================================= + + +def _sap_analytics_cloud_story_to_nested(sap_analytics_cloud_story: SapAnalyticsCloudStory) -> SapAnalyticsCloudStoryNested: + """Convert flat SapAnalyticsCloudStory to nested format.""" + attrs = SapAnalyticsCloudStoryAttributes() + _populate_sap_analytics_cloud_story_attrs(attrs, sap_analytics_cloud_story) + # Categorize relationships by save semantic (REPLACE, APPEND, REMOVE) + replace_rels, append_rels, remove_rels = categorize_relationships( + sap_analytics_cloud_story, _SAP_ANALYTICS_CLOUD_STORY_REL_FIELDS, SapAnalyticsCloudStoryRelationshipAttributes + ) + return SapAnalyticsCloudStoryNested( + guid=sap_analytics_cloud_story.guid, + type_name=sap_analytics_cloud_story.type_name, + status=sap_analytics_cloud_story.status, + version=sap_analytics_cloud_story.version, + create_time=sap_analytics_cloud_story.create_time, + update_time=sap_analytics_cloud_story.update_time, + created_by=sap_analytics_cloud_story.created_by, + updated_by=sap_analytics_cloud_story.updated_by, + classifications=sap_analytics_cloud_story.classifications, + classification_names=sap_analytics_cloud_story.classification_names, + meanings=sap_analytics_cloud_story.meanings, + labels=sap_analytics_cloud_story.labels, + business_attributes=sap_analytics_cloud_story.business_attributes, + custom_attributes=sap_analytics_cloud_story.custom_attributes, + pending_tasks=sap_analytics_cloud_story.pending_tasks, + proxy=sap_analytics_cloud_story.proxy, + is_incomplete=sap_analytics_cloud_story.is_incomplete, + provenance_type=sap_analytics_cloud_story.provenance_type, + home_id=sap_analytics_cloud_story.home_id, + depth=sap_analytics_cloud_story.depth, + immediate_upstream=sap_analytics_cloud_story.immediate_upstream, + immediate_downstream=sap_analytics_cloud_story.immediate_downstream, + attributes=attrs, + relationship_attributes=replace_rels, + append_relationship_attributes=append_rels, + remove_relationship_attributes=remove_rels, + ) + +def _sap_analytics_cloud_story_from_nested(nested: SapAnalyticsCloudStoryNested) -> SapAnalyticsCloudStory: + """Convert nested format to flat SapAnalyticsCloudStory.""" + attrs = nested.attributes if nested.attributes is not UNSET else SapAnalyticsCloudStoryAttributes() + # Merge relationships from all three buckets + merged_rels = merge_relationships( + nested.relationship_attributes, + nested.append_relationship_attributes, + nested.remove_relationship_attributes, + _SAP_ANALYTICS_CLOUD_STORY_REL_FIELDS, + SapAnalyticsCloudStoryRelationshipAttributes + ) + return SapAnalyticsCloudStory( + guid=nested.guid, + type_name=nested.type_name, + status=nested.status, + version=nested.version, + create_time=nested.create_time, + update_time=nested.update_time, + created_by=nested.created_by, + updated_by=nested.updated_by, + classifications=nested.classifications, + classification_names=nested.classification_names, + meanings=nested.meanings, + labels=nested.labels, + business_attributes=nested.business_attributes, + custom_attributes=nested.custom_attributes, + pending_tasks=nested.pending_tasks, + proxy=nested.proxy, + is_incomplete=nested.is_incomplete, + provenance_type=nested.provenance_type, + home_id=nested.home_id, + depth=nested.depth, + immediate_upstream=nested.immediate_upstream, + immediate_downstream=nested.immediate_downstream, + **_extract_sap_analytics_cloud_story_attrs(attrs), + # Merged relationship attributes + **merged_rels, + ) + +def _sap_analytics_cloud_story_to_nested_bytes(sap_analytics_cloud_story: SapAnalyticsCloudStory, serde: Serde) -> bytes: + """Convert flat SapAnalyticsCloudStory to nested JSON bytes.""" + return serde.encode(_sap_analytics_cloud_story_to_nested(sap_analytics_cloud_story)) + + +def _sap_analytics_cloud_story_from_nested_bytes(data: bytes, serde: Serde) -> SapAnalyticsCloudStory: + """Convert nested JSON bytes to flat SapAnalyticsCloudStory.""" + nested = serde.decode(data, SapAnalyticsCloudStoryNested) + return _sap_analytics_cloud_story_from_nested(nested) + +# --------------------------------------------------------------------------- +# Deferred field descriptor initialization +# --------------------------------------------------------------------------- +from pyatlan.model.fields.atlan_fields import ( # noqa: E402 + BooleanField, + KeywordField, + NumericField, + RelationField, +) + +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_STORY_KIND = KeywordField("sapAnalyticsCloudStoryKind", "sapAnalyticsCloudStoryKind") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_IS_SAMPLE = BooleanField("sapAnalyticsCloudIsSample", "sapAnalyticsCloudIsSample") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_RESOURCE_ID = KeywordField("sapAnalyticsCloudResourceId", "sapAnalyticsCloudResourceId") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_OBJECT_ID = KeywordField("sapAnalyticsCloudObjectId", "sapAnalyticsCloudObjectId") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION = KeywordField("sapAnalyticsCloudRepositoryPartition", "sapAnalyticsCloudRepositoryPartition") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_WORKSPACE_ID = KeywordField("sapAnalyticsCloudWorkspaceId", "sapAnalyticsCloudWorkspaceId") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_WORKSPACE_NAME = KeywordField("sapAnalyticsCloudWorkspaceName", "sapAnalyticsCloudWorkspaceName") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME = KeywordField("sapAnalyticsCloudParentFolderQualifiedName", "sapAnalyticsCloudParentFolderQualifiedName") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME = KeywordField("sapAnalyticsCloudParentFolderName", "sapAnalyticsCloudParentFolderName") +SapAnalyticsCloudStory.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") +SapAnalyticsCloudStory.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") +SapAnalyticsCloudStory.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") +SapAnalyticsCloudStory.SAP_COMPONENT_NAME = KeywordField("sapComponentName", "sapComponentName") +SapAnalyticsCloudStory.SAP_DATA_TYPE = KeywordField("sapDataType", "sapDataType") +SapAnalyticsCloudStory.SAP_FIELD_COUNT = NumericField("sapFieldCount", "sapFieldCount") +SapAnalyticsCloudStory.SAP_FIELD_ORDER = NumericField("sapFieldOrder", "sapFieldOrder") +SapAnalyticsCloudStory.CATALOG_DATASET_GUID = KeywordField("catalogDatasetGuid", "catalogDatasetGuid") +SapAnalyticsCloudStory.INPUT_TO_AIRFLOW_TASKS = RelationField("inputToAirflowTasks") +SapAnalyticsCloudStory.OUTPUT_FROM_AIRFLOW_TASKS = RelationField("outputFromAirflowTasks") +SapAnalyticsCloudStory.ANOMALO_CHECKS = RelationField("anomaloChecks") +SapAnalyticsCloudStory.APPLICATION = RelationField("application") +SapAnalyticsCloudStory.APPLICATION_FIELD = RelationField("applicationField") +SapAnalyticsCloudStory.CONTEXT_REPOSITORIES = RelationField("contextRepositories") +SapAnalyticsCloudStory.DATA_CONTRACT_LATEST = RelationField("dataContractLatest") +SapAnalyticsCloudStory.DATA_CONTRACT_LATEST_CERTIFIED = RelationField("dataContractLatestCertified") +SapAnalyticsCloudStory.OUTPUT_PORT_DATA_PRODUCTS = RelationField("outputPortDataProducts") +SapAnalyticsCloudStory.INPUT_PORT_DATA_PRODUCTS = RelationField("inputPortDataProducts") +SapAnalyticsCloudStory.MODEL_IMPLEMENTED_ENTITIES = RelationField("modelImplementedEntities") +SapAnalyticsCloudStory.MODEL_IMPLEMENTED_ATTRIBUTES = RelationField("modelImplementedAttributes") +SapAnalyticsCloudStory.METRICS = RelationField("metrics") +SapAnalyticsCloudStory.DQ_BASE_DATASET_RULES = RelationField("dqBaseDatasetRules") +SapAnalyticsCloudStory.DQ_REFERENCE_DATASET_RULES = RelationField("dqReferenceDatasetRules") +SapAnalyticsCloudStory.GCP_DATAPLEX_ASPECT_TYPE_METADATA_ENTITIES = RelationField("gcpDataplexAspectTypeMetadataEntities") +SapAnalyticsCloudStory.MEANINGS = RelationField("meanings") +SapAnalyticsCloudStory.KNOWLEDGE_LINKED_FILES = RelationField("knowledgeLinkedFiles") +SapAnalyticsCloudStory.MC_MONITORS = RelationField("mcMonitors") +SapAnalyticsCloudStory.MC_INCIDENTS = RelationField("mcIncidents") +SapAnalyticsCloudStory.PARTIAL_CHILD_FIELDS = RelationField("partialChildFields") +SapAnalyticsCloudStory.PARTIAL_CHILD_OBJECTS = RelationField("partialChildObjects") +SapAnalyticsCloudStory.INPUT_TO_PROCESSES = RelationField("inputToProcesses") +SapAnalyticsCloudStory.OUTPUT_FROM_PROCESSES = RelationField("outputFromProcesses") +SapAnalyticsCloudStory.USER_DEF_RELATIONSHIP_TO = RelationField("userDefRelationshipTo") +SapAnalyticsCloudStory.USER_DEF_RELATIONSHIP_FROM = RelationField("userDefRelationshipFrom") +SapAnalyticsCloudStory.FILES = RelationField("files") +SapAnalyticsCloudStory.LINKS = RelationField("links") +SapAnalyticsCloudStory.README = RelationField("readme") +SapAnalyticsCloudStory.SAP_ANALYTICS_CLOUD_FOLDER = RelationField("sapAnalyticsCloudFolder") +SapAnalyticsCloudStory.SCHEMA_REGISTRY_SUBJECTS = RelationField("schemaRegistrySubjects") +SapAnalyticsCloudStory.SODA_CHECKS = RelationField("sodaChecks") +SapAnalyticsCloudStory.INPUT_TO_SPARK_JOBS = RelationField("inputToSparkJobs") +SapAnalyticsCloudStory.OUTPUT_FROM_SPARK_JOBS = RelationField("outputFromSparkJobs") diff --git a/pyatlan_v9/model/assets/sap_datasphere_replication_flow.py b/pyatlan_v9/model/assets/sap_datasphere_replication_flow.py index 6c90194f1..83b863587 100644 --- a/pyatlan_v9/model/assets/sap_datasphere_replication_flow.py +++ b/pyatlan_v9/model/assets/sap_datasphere_replication_flow.py @@ -69,12 +69,12 @@ class SapDatasphereReplicationFlow(Asset): Instance of a SAP Datasphere replication flow in Atlan. A replication flow is a trigger that moves data from sources outside Datasphere (such as S/4HANA, SAP ECC, SAP BW, or S3) into tables created within a Datasphere space, which is modelled as a SQL Schema in Atlan. """ - SAP_SPACE_NAME: ClassVar[Any] = None - SAP_SPACE_QUALIFIED_NAME: ClassVar[Any] = None - SAP_SOURCE_CONNECTION: ClassVar[Any] = None - SAP_TARGET_CONNECTION: ClassVar[Any] = None - SAP_LOAD_TYPE: ClassVar[Any] = None - SAP_DATASET_COUNT: ClassVar[Any] = None + SAP_DATASPHERE_REPLICATION_FLOW_SPACE_NAME: ClassVar[Any] = None + SAP_DATASPHERE_REPLICATION_FLOW_SPACE_QUALIFIED_NAME: ClassVar[Any] = None + SAP_DATASPHERE_REPLICATION_FLOW_SOURCE_CONNECTION: ClassVar[Any] = None + SAP_DATASPHERE_REPLICATION_FLOW_TARGET_CONNECTION: ClassVar[Any] = None + SAP_DATASPHERE_REPLICATION_FLOW_LOAD_TYPE: ClassVar[Any] = None + SAP_DATASPHERE_REPLICATION_FLOW_DATASET_COUNT: ClassVar[Any] = None FLOW_STARTED_AT: ClassVar[Any] = None FLOW_FINISHED_AT: ClassVar[Any] = None FLOW_STATUS: ClassVar[Any] = None @@ -129,22 +129,28 @@ class SapDatasphereReplicationFlow(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sap_space_name: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_space_name: Union[str, None, UnsetType] = UNSET """Simple name of the Datasphere space in which this replication flow runs and creates its target tables.""" - sap_space_qualified_name: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_space_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Unique name of the Datasphere space in which this replication flow runs and creates its target tables.""" - sap_source_connection: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_source_connection: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the source connection from which this replication flow reads data, such as an S/4HANA, SAP ECC, SAP BW, or S3 connection outside Datasphere.""" - sap_target_connection: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_target_connection: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the target connection into which this replication flow writes data, such as the local Datasphere repository.""" - sap_load_type: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_load_type: Union[str, None, UnsetType] = UNSET """Type of load performed by this replication flow, such as INITIAL or INITIAL_AND_DELTA.""" - sap_dataset_count: Union[int, None, UnsetType] = UNSET + sap_datasphere_replication_flow_dataset_count: Union[int, None, UnsetType] = UNSET """Number of datasets moved by this replication flow.""" flow_started_at: Union[int, None, UnsetType] = UNSET @@ -452,22 +458,28 @@ def from_json( class SapDatasphereReplicationFlowAttributes(AssetAttributes): """SapDatasphereReplicationFlow-specific attributes for nested API format.""" - sap_space_name: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_space_name: Union[str, None, UnsetType] = UNSET """Simple name of the Datasphere space in which this replication flow runs and creates its target tables.""" - sap_space_qualified_name: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_space_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Unique name of the Datasphere space in which this replication flow runs and creates its target tables.""" - sap_source_connection: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_source_connection: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the source connection from which this replication flow reads data, such as an S/4HANA, SAP ECC, SAP BW, or S3 connection outside Datasphere.""" - sap_target_connection: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_target_connection: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the target connection into which this replication flow writes data, such as the local Datasphere repository.""" - sap_load_type: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_load_type: Union[str, None, UnsetType] = UNSET """Type of load performed by this replication flow, such as INITIAL or INITIAL_AND_DELTA.""" - sap_dataset_count: Union[int, None, UnsetType] = UNSET + sap_datasphere_replication_flow_dataset_count: Union[int, None, UnsetType] = UNSET """Number of datasets moved by this replication flow.""" flow_started_at: Union[int, None, UnsetType] = UNSET @@ -714,12 +726,24 @@ def _populate_sap_datasphere_replication_flow_attrs( ) -> None: """Populate SapDatasphereReplicationFlow-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sap_space_name = obj.sap_space_name - attrs.sap_space_qualified_name = obj.sap_space_qualified_name - attrs.sap_source_connection = obj.sap_source_connection - attrs.sap_target_connection = obj.sap_target_connection - attrs.sap_load_type = obj.sap_load_type - attrs.sap_dataset_count = obj.sap_dataset_count + attrs.sap_datasphere_replication_flow_space_name = ( + obj.sap_datasphere_replication_flow_space_name + ) + attrs.sap_datasphere_replication_flow_space_qualified_name = ( + obj.sap_datasphere_replication_flow_space_qualified_name + ) + attrs.sap_datasphere_replication_flow_source_connection = ( + obj.sap_datasphere_replication_flow_source_connection + ) + attrs.sap_datasphere_replication_flow_target_connection = ( + obj.sap_datasphere_replication_flow_target_connection + ) + attrs.sap_datasphere_replication_flow_load_type = ( + obj.sap_datasphere_replication_flow_load_type + ) + attrs.sap_datasphere_replication_flow_dataset_count = ( + obj.sap_datasphere_replication_flow_dataset_count + ) attrs.flow_started_at = obj.flow_started_at attrs.flow_finished_at = obj.flow_finished_at attrs.flow_status = obj.flow_status @@ -741,12 +765,24 @@ def _extract_sap_datasphere_replication_flow_attrs( ) -> dict: """Extract all SapDatasphereReplicationFlow attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sap_space_name"] = attrs.sap_space_name - result["sap_space_qualified_name"] = attrs.sap_space_qualified_name - result["sap_source_connection"] = attrs.sap_source_connection - result["sap_target_connection"] = attrs.sap_target_connection - result["sap_load_type"] = attrs.sap_load_type - result["sap_dataset_count"] = attrs.sap_dataset_count + result["sap_datasphere_replication_flow_space_name"] = ( + attrs.sap_datasphere_replication_flow_space_name + ) + result["sap_datasphere_replication_flow_space_qualified_name"] = ( + attrs.sap_datasphere_replication_flow_space_qualified_name + ) + result["sap_datasphere_replication_flow_source_connection"] = ( + attrs.sap_datasphere_replication_flow_source_connection + ) + result["sap_datasphere_replication_flow_target_connection"] = ( + attrs.sap_datasphere_replication_flow_target_connection + ) + result["sap_datasphere_replication_flow_load_type"] = ( + attrs.sap_datasphere_replication_flow_load_type + ) + result["sap_datasphere_replication_flow_dataset_count"] = ( + attrs.sap_datasphere_replication_flow_dataset_count + ) result["flow_started_at"] = attrs.flow_started_at result["flow_finished_at"] = attrs.flow_finished_at result["flow_status"] = attrs.flow_status @@ -888,21 +924,39 @@ def _sap_datasphere_replication_flow_from_nested_bytes( RelationField, ) -SapDatasphereReplicationFlow.SAP_SPACE_NAME = KeywordTextField( - "sapSpaceName", "sapSpaceName", "sapSpaceName.text" +SapDatasphereReplicationFlow.SAP_DATASPHERE_REPLICATION_FLOW_SPACE_NAME = ( + KeywordTextField( + "sapDatasphereReplicationFlowSpaceName", + "sapDatasphereReplicationFlowSpaceName", + "sapDatasphereReplicationFlowSpaceName.text", + ) ) -SapDatasphereReplicationFlow.SAP_SPACE_QUALIFIED_NAME = KeywordField( - "sapSpaceQualifiedName", "sapSpaceQualifiedName" +SapDatasphereReplicationFlow.SAP_DATASPHERE_REPLICATION_FLOW_SPACE_QUALIFIED_NAME = ( + KeywordField( + "sapDatasphereReplicationFlowSpaceQualifiedName", + "sapDatasphereReplicationFlowSpaceQualifiedName", + ) ) -SapDatasphereReplicationFlow.SAP_SOURCE_CONNECTION = KeywordField( - "sapSourceConnection", "sapSourceConnection" +SapDatasphereReplicationFlow.SAP_DATASPHERE_REPLICATION_FLOW_SOURCE_CONNECTION = ( + KeywordField( + "sapDatasphereReplicationFlowSourceConnection", + "sapDatasphereReplicationFlowSourceConnection", + ) ) -SapDatasphereReplicationFlow.SAP_TARGET_CONNECTION = KeywordField( - "sapTargetConnection", "sapTargetConnection" +SapDatasphereReplicationFlow.SAP_DATASPHERE_REPLICATION_FLOW_TARGET_CONNECTION = ( + KeywordField( + "sapDatasphereReplicationFlowTargetConnection", + "sapDatasphereReplicationFlowTargetConnection", + ) +) +SapDatasphereReplicationFlow.SAP_DATASPHERE_REPLICATION_FLOW_LOAD_TYPE = KeywordField( + "sapDatasphereReplicationFlowLoadType", "sapDatasphereReplicationFlowLoadType" ) -SapDatasphereReplicationFlow.SAP_LOAD_TYPE = KeywordField("sapLoadType", "sapLoadType") -SapDatasphereReplicationFlow.SAP_DATASET_COUNT = NumericField( - "sapDatasetCount", "sapDatasetCount" +SapDatasphereReplicationFlow.SAP_DATASPHERE_REPLICATION_FLOW_DATASET_COUNT = ( + NumericField( + "sapDatasphereReplicationFlowDatasetCount", + "sapDatasphereReplicationFlowDatasetCount", + ) ) SapDatasphereReplicationFlow.FLOW_STARTED_AT = NumericField( "flowStartedAt", "flowStartedAt" diff --git a/pyatlan_v9/model/assets/sap_erp_cds_view.py b/pyatlan_v9/model/assets/sap_erp_cds_view.py index 15841e2fc..76d95b9df 100644 --- a/pyatlan_v9/model/assets/sap_erp_cds_view.py +++ b/pyatlan_v9/model/assets/sap_erp_cds_view.py @@ -70,9 +70,10 @@ class SapErpCdsView(Asset): Instance of a SAP CDS View in Atlan. """ + SAP_ERP_CDS_VIEW_TECHNICAL_NAME: ClassVar[Any] = None + SAP_ERP_CDS_VIEW_SOURCE_NAME: ClassVar[Any] = None + SAP_ERP_CDS_VIEW_SOURCE_TYPE: ClassVar[Any] = None SAP_TECHNICAL_NAME: ClassVar[Any] = None - SAP_SOURCE_NAME: ClassVar[Any] = None - SAP_SOURCE_TYPE: ClassVar[Any] = None SAP_LOGICAL_NAME: ClassVar[Any] = None SAP_PACKAGE_NAME: ClassVar[Any] = None SAP_COMPONENT_NAME: ClassVar[Any] = None @@ -116,15 +117,18 @@ class SapErpCdsView(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sap_technical_name: Union[str, None, UnsetType] = UNSET - """Technical identifier for SAP data objects, used for integration and internal reference.""" + sap_erp_cds_view_technical_name: Union[str, None, UnsetType] = UNSET + """The technical database view name of the SAP ERP CDS View.""" - sap_source_name: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_source_name: Union[str, None, UnsetType] = UNSET """The source name of the SAP ERP CDS View Definition.""" - sap_source_type: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_source_type: Union[str, None, UnsetType] = UNSET """The source type of the SAP ERP CDS View Definition.""" + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + sap_logical_name: Union[str, None, UnsetType] = UNSET """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" @@ -379,15 +383,18 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapErpCdsVi class SapErpCdsViewAttributes(AssetAttributes): """SapErpCdsView-specific attributes for nested API format.""" - sap_technical_name: Union[str, None, UnsetType] = UNSET - """Technical identifier for SAP data objects, used for integration and internal reference.""" + sap_erp_cds_view_technical_name: Union[str, None, UnsetType] = UNSET + """The technical database view name of the SAP ERP CDS View.""" - sap_source_name: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_source_name: Union[str, None, UnsetType] = UNSET """The source name of the SAP ERP CDS View Definition.""" - sap_source_type: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_source_type: Union[str, None, UnsetType] = UNSET """The source type of the SAP ERP CDS View Definition.""" + sap_technical_name: Union[str, None, UnsetType] = UNSET + """Technical identifier for SAP data objects, used for integration and internal reference.""" + sap_logical_name: Union[str, None, UnsetType] = UNSET """Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts.""" @@ -593,9 +600,10 @@ def _populate_sap_erp_cds_view_attrs( ) -> None: """Populate SapErpCdsView-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) + attrs.sap_erp_cds_view_technical_name = obj.sap_erp_cds_view_technical_name + attrs.sap_erp_cds_view_source_name = obj.sap_erp_cds_view_source_name + attrs.sap_erp_cds_view_source_type = obj.sap_erp_cds_view_source_type attrs.sap_technical_name = obj.sap_technical_name - attrs.sap_source_name = obj.sap_source_name - attrs.sap_source_type = obj.sap_source_type attrs.sap_logical_name = obj.sap_logical_name attrs.sap_package_name = obj.sap_package_name attrs.sap_component_name = obj.sap_component_name @@ -608,9 +616,10 @@ def _populate_sap_erp_cds_view_attrs( def _extract_sap_erp_cds_view_attrs(attrs: SapErpCdsViewAttributes) -> dict: """Extract all SapErpCdsView attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) + result["sap_erp_cds_view_technical_name"] = attrs.sap_erp_cds_view_technical_name + result["sap_erp_cds_view_source_name"] = attrs.sap_erp_cds_view_source_name + result["sap_erp_cds_view_source_type"] = attrs.sap_erp_cds_view_source_type result["sap_technical_name"] = attrs.sap_technical_name - result["sap_source_name"] = attrs.sap_source_name - result["sap_source_type"] = attrs.sap_source_type result["sap_logical_name"] = attrs.sap_logical_name result["sap_package_name"] = attrs.sap_package_name result["sap_component_name"] = attrs.sap_component_name @@ -732,9 +741,16 @@ def _sap_erp_cds_view_from_nested_bytes(data: bytes, serde: Serde) -> SapErpCdsV RelationField, ) +SapErpCdsView.SAP_ERP_CDS_VIEW_TECHNICAL_NAME = KeywordField( + "sapErpCdsViewTechnicalName", "sapErpCdsViewTechnicalName" +) +SapErpCdsView.SAP_ERP_CDS_VIEW_SOURCE_NAME = KeywordField( + "sapErpCdsViewSourceName", "sapErpCdsViewSourceName" +) +SapErpCdsView.SAP_ERP_CDS_VIEW_SOURCE_TYPE = KeywordField( + "sapErpCdsViewSourceType", "sapErpCdsViewSourceType" +) SapErpCdsView.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") -SapErpCdsView.SAP_SOURCE_NAME = KeywordField("sapSourceName", "sapSourceName") -SapErpCdsView.SAP_SOURCE_TYPE = KeywordField("sapSourceType", "sapSourceType") SapErpCdsView.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") SapErpCdsView.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") SapErpCdsView.SAP_COMPONENT_NAME = KeywordField("sapComponentName", "sapComponentName") diff --git a/pyatlan_v9/model/assets/sap_erp_column.py b/pyatlan_v9/model/assets/sap_erp_column.py index 3dbcef275..f428e4424 100644 --- a/pyatlan_v9/model/assets/sap_erp_column.py +++ b/pyatlan_v9/model/assets/sap_erp_column.py @@ -84,21 +84,21 @@ class SapErpColumn(Asset): Instance of a SAP Column in Atlan. """ - SAP_DATA_ELEMENT: ClassVar[Any] = None - SAP_LOGICAL_DATA_TYPE: ClassVar[Any] = None - SAP_LENGTH: ClassVar[Any] = None - SAP_DECIMALS: ClassVar[Any] = None - SAP_IS_PRIMARY: ClassVar[Any] = None - SAP_IS_FOREIGN: ClassVar[Any] = None - SAP_IS_MANDATORY: ClassVar[Any] = None + SAP_ERP_COLUMN_DATA_ELEMENT: ClassVar[Any] = None + SAP_ERP_COLUMN_LOGICAL_DATA_TYPE: ClassVar[Any] = None + SAP_ERP_COLUMN_LENGTH: ClassVar[Any] = None + SAP_ERP_COLUMN_DECIMALS: ClassVar[Any] = None + SAP_ERP_COLUMN_IS_PRIMARY: ClassVar[Any] = None + SAP_ERP_COLUMN_IS_FOREIGN: ClassVar[Any] = None + SAP_ERP_COLUMN_IS_MANDATORY: ClassVar[Any] = None SAP_ERP_TABLE_NAME: ClassVar[Any] = None SAP_ERP_TABLE_QUALIFIED_NAME: ClassVar[Any] = None SAP_ERP_VIEW_NAME: ClassVar[Any] = None SAP_ERP_VIEW_QUALIFIED_NAME: ClassVar[Any] = None SAP_ERP_CDS_VIEW_NAME: ClassVar[Any] = None SAP_ERP_CDS_VIEW_QUALIFIED_NAME: ClassVar[Any] = None - SAP_CHECK_TABLE_NAME: ClassVar[Any] = None - SAP_CHECK_TABLE_QUALIFIED_NAME: ClassVar[Any] = None + SAP_ERP_COLUMN_CHECK_TABLE_NAME: ClassVar[Any] = None + SAP_ERP_COLUMN_CHECK_TABLE_QUALIFIED_NAME: ClassVar[Any] = None SAP_TECHNICAL_NAME: ClassVar[Any] = None SAP_LOGICAL_NAME: ClassVar[Any] = None SAP_PACKAGE_NAME: ClassVar[Any] = None @@ -187,25 +187,25 @@ class SapErpColumn(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - sap_data_element: Union[str, None, UnsetType] = UNSET + sap_erp_column_data_element: Union[str, None, UnsetType] = UNSET """Represents the SAP ERP data element, providing semantic information about the column.""" - sap_logical_data_type: Union[str, None, UnsetType] = UNSET + sap_erp_column_logical_data_type: Union[str, None, UnsetType] = UNSET """Specifies the logical data type of values in this SAP ERP column.""" - sap_length: Union[str, None, UnsetType] = UNSET + sap_erp_column_length: Union[str, None, UnsetType] = UNSET """Indicates the maximum length of the values that the SAP ERP column can store.""" - sap_decimals: Union[str, None, UnsetType] = UNSET + sap_erp_column_decimals: Union[str, None, UnsetType] = UNSET """Defines the number of decimal places allowed for numeric values in the SAP ERP column.""" - sap_is_primary: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_primary: Union[bool, None, UnsetType] = UNSET """When true, this column is the primary key for the SAP ERP table or view.""" - sap_is_foreign: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_foreign: Union[bool, None, UnsetType] = UNSET """When true, this column is the foreign key for the SAP ERP table or view.""" - sap_is_mandatory: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_mandatory: Union[bool, None, UnsetType] = UNSET """When true, the values in this column can be null.""" sap_erp_table_name: Union[str, None, UnsetType] = UNSET @@ -226,10 +226,10 @@ class SapErpColumn(Asset): sap_erp_cds_view_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the SAP ERP CDS view in which this column asset exists.""" - sap_check_table_name: Union[str, None, UnsetType] = UNSET + sap_erp_column_check_table_name: Union[str, None, UnsetType] = UNSET """Defines the SAP ERP table name used as a foreign key reference to validate permissible values for this column.""" - sap_check_table_qualified_name: Union[str, None, UnsetType] = UNSET + sap_erp_column_check_table_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the SAP ERP Table used as a foreign key reference to validate permissible values for this column.""" sap_technical_name: Union[str, None, UnsetType] = UNSET @@ -649,25 +649,25 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapErpColum class SapErpColumnAttributes(AssetAttributes): """SapErpColumn-specific attributes for nested API format.""" - sap_data_element: Union[str, None, UnsetType] = UNSET + sap_erp_column_data_element: Union[str, None, UnsetType] = UNSET """Represents the SAP ERP data element, providing semantic information about the column.""" - sap_logical_data_type: Union[str, None, UnsetType] = UNSET + sap_erp_column_logical_data_type: Union[str, None, UnsetType] = UNSET """Specifies the logical data type of values in this SAP ERP column.""" - sap_length: Union[str, None, UnsetType] = UNSET + sap_erp_column_length: Union[str, None, UnsetType] = UNSET """Indicates the maximum length of the values that the SAP ERP column can store.""" - sap_decimals: Union[str, None, UnsetType] = UNSET + sap_erp_column_decimals: Union[str, None, UnsetType] = UNSET """Defines the number of decimal places allowed for numeric values in the SAP ERP column.""" - sap_is_primary: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_primary: Union[bool, None, UnsetType] = UNSET """When true, this column is the primary key for the SAP ERP table or view.""" - sap_is_foreign: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_foreign: Union[bool, None, UnsetType] = UNSET """When true, this column is the foreign key for the SAP ERP table or view.""" - sap_is_mandatory: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_mandatory: Union[bool, None, UnsetType] = UNSET """When true, the values in this column can be null.""" sap_erp_table_name: Union[str, None, UnsetType] = UNSET @@ -688,10 +688,10 @@ class SapErpColumnAttributes(AssetAttributes): sap_erp_cds_view_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the SAP ERP CDS view in which this column asset exists.""" - sap_check_table_name: Union[str, None, UnsetType] = UNSET + sap_erp_column_check_table_name: Union[str, None, UnsetType] = UNSET """Defines the SAP ERP table name used as a foreign key reference to validate permissible values for this column.""" - sap_check_table_qualified_name: Union[str, None, UnsetType] = UNSET + sap_erp_column_check_table_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the SAP ERP Table used as a foreign key reference to validate permissible values for this column.""" sap_technical_name: Union[str, None, UnsetType] = UNSET @@ -1057,21 +1057,23 @@ def _populate_sap_erp_column_attrs( ) -> None: """Populate SapErpColumn-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sap_data_element = obj.sap_data_element - attrs.sap_logical_data_type = obj.sap_logical_data_type - attrs.sap_length = obj.sap_length - attrs.sap_decimals = obj.sap_decimals - attrs.sap_is_primary = obj.sap_is_primary - attrs.sap_is_foreign = obj.sap_is_foreign - attrs.sap_is_mandatory = obj.sap_is_mandatory + attrs.sap_erp_column_data_element = obj.sap_erp_column_data_element + attrs.sap_erp_column_logical_data_type = obj.sap_erp_column_logical_data_type + attrs.sap_erp_column_length = obj.sap_erp_column_length + attrs.sap_erp_column_decimals = obj.sap_erp_column_decimals + attrs.sap_erp_column_is_primary = obj.sap_erp_column_is_primary + attrs.sap_erp_column_is_foreign = obj.sap_erp_column_is_foreign + attrs.sap_erp_column_is_mandatory = obj.sap_erp_column_is_mandatory attrs.sap_erp_table_name = obj.sap_erp_table_name attrs.sap_erp_table_qualified_name = obj.sap_erp_table_qualified_name attrs.sap_erp_view_name = obj.sap_erp_view_name attrs.sap_erp_view_qualified_name = obj.sap_erp_view_qualified_name attrs.sap_erp_cds_view_name = obj.sap_erp_cds_view_name attrs.sap_erp_cds_view_qualified_name = obj.sap_erp_cds_view_qualified_name - attrs.sap_check_table_name = obj.sap_check_table_name - attrs.sap_check_table_qualified_name = obj.sap_check_table_qualified_name + attrs.sap_erp_column_check_table_name = obj.sap_erp_column_check_table_name + attrs.sap_erp_column_check_table_qualified_name = ( + obj.sap_erp_column_check_table_qualified_name + ) attrs.sap_technical_name = obj.sap_technical_name attrs.sap_logical_name = obj.sap_logical_name attrs.sap_package_name = obj.sap_package_name @@ -1122,21 +1124,23 @@ def _populate_sap_erp_column_attrs( def _extract_sap_erp_column_attrs(attrs: SapErpColumnAttributes) -> dict: """Extract all SapErpColumn attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sap_data_element"] = attrs.sap_data_element - result["sap_logical_data_type"] = attrs.sap_logical_data_type - result["sap_length"] = attrs.sap_length - result["sap_decimals"] = attrs.sap_decimals - result["sap_is_primary"] = attrs.sap_is_primary - result["sap_is_foreign"] = attrs.sap_is_foreign - result["sap_is_mandatory"] = attrs.sap_is_mandatory + result["sap_erp_column_data_element"] = attrs.sap_erp_column_data_element + result["sap_erp_column_logical_data_type"] = attrs.sap_erp_column_logical_data_type + result["sap_erp_column_length"] = attrs.sap_erp_column_length + result["sap_erp_column_decimals"] = attrs.sap_erp_column_decimals + result["sap_erp_column_is_primary"] = attrs.sap_erp_column_is_primary + result["sap_erp_column_is_foreign"] = attrs.sap_erp_column_is_foreign + result["sap_erp_column_is_mandatory"] = attrs.sap_erp_column_is_mandatory result["sap_erp_table_name"] = attrs.sap_erp_table_name result["sap_erp_table_qualified_name"] = attrs.sap_erp_table_qualified_name result["sap_erp_view_name"] = attrs.sap_erp_view_name result["sap_erp_view_qualified_name"] = attrs.sap_erp_view_qualified_name result["sap_erp_cds_view_name"] = attrs.sap_erp_cds_view_name result["sap_erp_cds_view_qualified_name"] = attrs.sap_erp_cds_view_qualified_name - result["sap_check_table_name"] = attrs.sap_check_table_name - result["sap_check_table_qualified_name"] = attrs.sap_check_table_qualified_name + result["sap_erp_column_check_table_name"] = attrs.sap_erp_column_check_table_name + result["sap_erp_column_check_table_qualified_name"] = ( + attrs.sap_erp_column_check_table_qualified_name + ) result["sap_technical_name"] = attrs.sap_technical_name result["sap_logical_name"] = attrs.sap_logical_name result["sap_package_name"] = attrs.sap_package_name @@ -1302,15 +1306,27 @@ def _sap_erp_column_from_nested_bytes(data: bytes, serde: Serde) -> SapErpColumn RelationField, ) -SapErpColumn.SAP_DATA_ELEMENT = KeywordField("sapDataElement", "sapDataElement") -SapErpColumn.SAP_LOGICAL_DATA_TYPE = KeywordField( - "sapLogicalDataType", "sapLogicalDataType" +SapErpColumn.SAP_ERP_COLUMN_DATA_ELEMENT = KeywordField( + "sapErpColumnDataElement", "sapErpColumnDataElement" +) +SapErpColumn.SAP_ERP_COLUMN_LOGICAL_DATA_TYPE = KeywordField( + "sapErpColumnLogicalDataType", "sapErpColumnLogicalDataType" +) +SapErpColumn.SAP_ERP_COLUMN_LENGTH = KeywordField( + "sapErpColumnLength", "sapErpColumnLength" +) +SapErpColumn.SAP_ERP_COLUMN_DECIMALS = KeywordField( + "sapErpColumnDecimals", "sapErpColumnDecimals" +) +SapErpColumn.SAP_ERP_COLUMN_IS_PRIMARY = BooleanField( + "sapErpColumnIsPrimary", "sapErpColumnIsPrimary" +) +SapErpColumn.SAP_ERP_COLUMN_IS_FOREIGN = BooleanField( + "sapErpColumnIsForeign", "sapErpColumnIsForeign" +) +SapErpColumn.SAP_ERP_COLUMN_IS_MANDATORY = BooleanField( + "sapErpColumnIsMandatory", "sapErpColumnIsMandatory" ) -SapErpColumn.SAP_LENGTH = KeywordField("sapLength", "sapLength") -SapErpColumn.SAP_DECIMALS = KeywordField("sapDecimals", "sapDecimals") -SapErpColumn.SAP_IS_PRIMARY = BooleanField("sapIsPrimary", "sapIsPrimary") -SapErpColumn.SAP_IS_FOREIGN = BooleanField("sapIsForeign", "sapIsForeign") -SapErpColumn.SAP_IS_MANDATORY = BooleanField("sapIsMandatory", "sapIsMandatory") SapErpColumn.SAP_ERP_TABLE_NAME = KeywordField("sapErpTableName", "sapErpTableName") SapErpColumn.SAP_ERP_TABLE_QUALIFIED_NAME = KeywordTextField( "sapErpTableQualifiedName", @@ -1329,11 +1345,11 @@ def _sap_erp_column_from_nested_bytes(data: bytes, serde: Serde) -> SapErpColumn "sapErpCdsViewQualifiedName", "sapErpCdsViewQualifiedName.text", ) -SapErpColumn.SAP_CHECK_TABLE_NAME = KeywordField( - "sapCheckTableName", "sapCheckTableName" +SapErpColumn.SAP_ERP_COLUMN_CHECK_TABLE_NAME = KeywordField( + "sapErpColumnCheckTableName", "sapErpColumnCheckTableName" ) -SapErpColumn.SAP_CHECK_TABLE_QUALIFIED_NAME = KeywordField( - "sapCheckTableQualifiedName", "sapCheckTableQualifiedName" +SapErpColumn.SAP_ERP_COLUMN_CHECK_TABLE_QUALIFIED_NAME = KeywordField( + "sapErpColumnCheckTableQualifiedName", "sapErpColumnCheckTableQualifiedName" ) SapErpColumn.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") SapErpColumn.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") diff --git a/pyatlan_v9/model/assets/sap_erp_fiori_app.py b/pyatlan_v9/model/assets/sap_erp_fiori_app.py index 51ea3cd13..85a6dac44 100644 --- a/pyatlan_v9/model/assets/sap_erp_fiori_app.py +++ b/pyatlan_v9/model/assets/sap_erp_fiori_app.py @@ -67,13 +67,13 @@ class SapErpFioriApp(Asset): Instance of a SAP ERP Fiori App in Atlan. """ - SAP_TYPE: ClassVar[Any] = None - SAP_ARCHE_TYPE: ClassVar[Any] = None - SAP_IS_CUSTOM: ClassVar[Any] = None - SAP_BSP_APPLICATION: ClassVar[Any] = None - SAP_ODATA_SERVICE_NAME: ClassVar[Any] = None - SAP_ODATA_SERVICE_URI: ClassVar[Any] = None - SAP_ODATA_VERSION: ClassVar[Any] = None + SAP_ERP_FIORI_APP_TYPE: ClassVar[Any] = None + SAP_ERP_FIORI_APP_ARCHE_TYPE: ClassVar[Any] = None + SAP_ERP_FIORI_APP_IS_CUSTOM: ClassVar[Any] = None + SAP_ERP_FIORI_APP_BSP_APPLICATION: ClassVar[Any] = None + SAP_ERP_FIORI_APP_ODATA_SERVICE_NAME: ClassVar[Any] = None + SAP_ERP_FIORI_APP_ODATA_SERVICE_URI: ClassVar[Any] = None + SAP_ERP_FIORI_APP_ODATA_VERSION: ClassVar[Any] = None SAP_TECHNICAL_NAME: ClassVar[Any] = None SAP_LOGICAL_NAME: ClassVar[Any] = None SAP_PACKAGE_NAME: ClassVar[Any] = None @@ -117,25 +117,25 @@ class SapErpFioriApp(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sap_type: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_type: Union[str, None, UnsetType] = UNSET """Application type of the Fiori App from sap.app.type in the manifest, such as application, transactional, or factsheet.""" - sap_arche_type: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_arche_type: Union[str, None, UnsetType] = UNSET """Fiori archetype from sap.fiori.archeType in the manifest, such as transactional.""" - sap_is_custom: Union[bool, None, UnsetType] = UNSET + sap_erp_fiori_app_is_custom: Union[bool, None, UnsetType] = UNSET """When true, the Fiori App has no sap.fiori.registrationIds in its manifest and is treated as a customer (Z-app) build.""" - sap_bsp_application: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_bsp_application: Union[str, None, UnsetType] = UNSET """BSP container name for the Fiori App as registered in O2APPL (e.g. ATP_ABOPVARS1).""" - sap_odata_service_name: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_service_name: Union[str, None, UnsetType] = UNSET """Resolved OData service name extracted from the manifest mainService URI (e.g. UI_ABOPVARIANT_CONFIGURE or C_SUPPLIEREVALUATION_CDS).""" - sap_odata_service_uri: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_service_uri: Union[str, None, UnsetType] = UNSET """Full OData service URI from sap.app.dataSources.mainService.uri in the manifest.""" - sap_odata_version: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_version: Union[str, None, UnsetType] = UNSET """OData protocol version of the Fiori App's main data source, such as 2.0 or 4.0.""" sap_technical_name: Union[str, None, UnsetType] = UNSET @@ -404,25 +404,25 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapErpFiori class SapErpFioriAppAttributes(AssetAttributes): """SapErpFioriApp-specific attributes for nested API format.""" - sap_type: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_type: Union[str, None, UnsetType] = UNSET """Application type of the Fiori App from sap.app.type in the manifest, such as application, transactional, or factsheet.""" - sap_arche_type: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_arche_type: Union[str, None, UnsetType] = UNSET """Fiori archetype from sap.fiori.archeType in the manifest, such as transactional.""" - sap_is_custom: Union[bool, None, UnsetType] = UNSET + sap_erp_fiori_app_is_custom: Union[bool, None, UnsetType] = UNSET """When true, the Fiori App has no sap.fiori.registrationIds in its manifest and is treated as a customer (Z-app) build.""" - sap_bsp_application: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_bsp_application: Union[str, None, UnsetType] = UNSET """BSP container name for the Fiori App as registered in O2APPL (e.g. ATP_ABOPVARS1).""" - sap_odata_service_name: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_service_name: Union[str, None, UnsetType] = UNSET """Resolved OData service name extracted from the manifest mainService URI (e.g. UI_ABOPVARIANT_CONFIGURE or C_SUPPLIEREVALUATION_CDS).""" - sap_odata_service_uri: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_service_uri: Union[str, None, UnsetType] = UNSET """Full OData service URI from sap.app.dataSources.mainService.uri in the manifest.""" - sap_odata_version: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_version: Union[str, None, UnsetType] = UNSET """OData protocol version of the Fiori App's main data source, such as 2.0 or 4.0.""" sap_technical_name: Union[str, None, UnsetType] = UNSET @@ -629,13 +629,15 @@ def _populate_sap_erp_fiori_app_attrs( ) -> None: """Populate SapErpFioriApp-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sap_type = obj.sap_type - attrs.sap_arche_type = obj.sap_arche_type - attrs.sap_is_custom = obj.sap_is_custom - attrs.sap_bsp_application = obj.sap_bsp_application - attrs.sap_odata_service_name = obj.sap_odata_service_name - attrs.sap_odata_service_uri = obj.sap_odata_service_uri - attrs.sap_odata_version = obj.sap_odata_version + attrs.sap_erp_fiori_app_type = obj.sap_erp_fiori_app_type + attrs.sap_erp_fiori_app_arche_type = obj.sap_erp_fiori_app_arche_type + attrs.sap_erp_fiori_app_is_custom = obj.sap_erp_fiori_app_is_custom + attrs.sap_erp_fiori_app_bsp_application = obj.sap_erp_fiori_app_bsp_application + attrs.sap_erp_fiori_app_odata_service_name = ( + obj.sap_erp_fiori_app_odata_service_name + ) + attrs.sap_erp_fiori_app_odata_service_uri = obj.sap_erp_fiori_app_odata_service_uri + attrs.sap_erp_fiori_app_odata_version = obj.sap_erp_fiori_app_odata_version attrs.sap_technical_name = obj.sap_technical_name attrs.sap_logical_name = obj.sap_logical_name attrs.sap_package_name = obj.sap_package_name @@ -649,13 +651,19 @@ def _populate_sap_erp_fiori_app_attrs( def _extract_sap_erp_fiori_app_attrs(attrs: SapErpFioriAppAttributes) -> dict: """Extract all SapErpFioriApp attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sap_type"] = attrs.sap_type - result["sap_arche_type"] = attrs.sap_arche_type - result["sap_is_custom"] = attrs.sap_is_custom - result["sap_bsp_application"] = attrs.sap_bsp_application - result["sap_odata_service_name"] = attrs.sap_odata_service_name - result["sap_odata_service_uri"] = attrs.sap_odata_service_uri - result["sap_odata_version"] = attrs.sap_odata_version + result["sap_erp_fiori_app_type"] = attrs.sap_erp_fiori_app_type + result["sap_erp_fiori_app_arche_type"] = attrs.sap_erp_fiori_app_arche_type + result["sap_erp_fiori_app_is_custom"] = attrs.sap_erp_fiori_app_is_custom + result["sap_erp_fiori_app_bsp_application"] = ( + attrs.sap_erp_fiori_app_bsp_application + ) + result["sap_erp_fiori_app_odata_service_name"] = ( + attrs.sap_erp_fiori_app_odata_service_name + ) + result["sap_erp_fiori_app_odata_service_uri"] = ( + attrs.sap_erp_fiori_app_odata_service_uri + ) + result["sap_erp_fiori_app_odata_version"] = attrs.sap_erp_fiori_app_odata_version result["sap_technical_name"] = attrs.sap_technical_name result["sap_logical_name"] = attrs.sap_logical_name result["sap_package_name"] = attrs.sap_package_name @@ -781,19 +789,27 @@ def _sap_erp_fiori_app_from_nested_bytes(data: bytes, serde: Serde) -> SapErpFio RelationField, ) -SapErpFioriApp.SAP_TYPE = KeywordField("sapType", "sapType") -SapErpFioriApp.SAP_ARCHE_TYPE = KeywordField("sapArcheType", "sapArcheType") -SapErpFioriApp.SAP_IS_CUSTOM = BooleanField("sapIsCustom", "sapIsCustom") -SapErpFioriApp.SAP_BSP_APPLICATION = KeywordField( - "sapBspApplication", "sapBspApplication" +SapErpFioriApp.SAP_ERP_FIORI_APP_TYPE = KeywordField( + "sapErpFioriAppType", "sapErpFioriAppType" +) +SapErpFioriApp.SAP_ERP_FIORI_APP_ARCHE_TYPE = KeywordField( + "sapErpFioriAppArcheType", "sapErpFioriAppArcheType" +) +SapErpFioriApp.SAP_ERP_FIORI_APP_IS_CUSTOM = BooleanField( + "sapErpFioriAppIsCustom", "sapErpFioriAppIsCustom" +) +SapErpFioriApp.SAP_ERP_FIORI_APP_BSP_APPLICATION = KeywordField( + "sapErpFioriAppBspApplication", "sapErpFioriAppBspApplication" +) +SapErpFioriApp.SAP_ERP_FIORI_APP_ODATA_SERVICE_NAME = KeywordField( + "sapErpFioriAppOdataServiceName", "sapErpFioriAppOdataServiceName" ) -SapErpFioriApp.SAP_ODATA_SERVICE_NAME = KeywordField( - "sapOdataServiceName", "sapOdataServiceName" +SapErpFioriApp.SAP_ERP_FIORI_APP_ODATA_SERVICE_URI = KeywordField( + "sapErpFioriAppOdataServiceUri", "sapErpFioriAppOdataServiceUri" ) -SapErpFioriApp.SAP_ODATA_SERVICE_URI = KeywordField( - "sapOdataServiceUri", "sapOdataServiceUri" +SapErpFioriApp.SAP_ERP_FIORI_APP_ODATA_VERSION = KeywordField( + "sapErpFioriAppOdataVersion", "sapErpFioriAppOdataVersion" ) -SapErpFioriApp.SAP_ODATA_VERSION = KeywordField("sapOdataVersion", "sapOdataVersion") SapErpFioriApp.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") SapErpFioriApp.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") SapErpFioriApp.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") diff --git a/pyatlan_v9/model/assets/sap_erp_function_module.py b/pyatlan_v9/model/assets/sap_erp_function_module.py index 8a21ca660..466e85896 100644 --- a/pyatlan_v9/model/assets/sap_erp_function_module.py +++ b/pyatlan_v9/model/assets/sap_erp_function_module.py @@ -70,11 +70,11 @@ class SapErpFunctionModule(Asset): Instance of a SAP Function in Atlan. """ - SAP_GROUP: ClassVar[Any] = None + SAP_ERP_FUNCTION_MODULE_GROUP: ClassVar[Any] = None SAP_ERP_FUNCTION_MODULE_IMPORT_PARAMS: ClassVar[Any] = None - SAP_IMPORT_PARAMS_COUNT: ClassVar[Any] = None + SAP_ERP_FUNCTION_MODULE_IMPORT_PARAMS_COUNT: ClassVar[Any] = None SAP_ERP_FUNCTION_MODULE_EXPORT_PARAMS: ClassVar[Any] = None - SAP_EXPORT_PARAMS_COUNT: ClassVar[Any] = None + SAP_ERP_FUNCTION_MODULE_EXPORT_PARAMS_COUNT: ClassVar[Any] = None SAP_ERP_FUNCTION_EXCEPTION_LIST: ClassVar[Any] = None SAP_ERP_FUNCTION_EXCEPTION_LIST_COUNT: ClassVar[Any] = None SAP_TECHNICAL_NAME: ClassVar[Any] = None @@ -121,7 +121,7 @@ class SapErpFunctionModule(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sap_group: Union[str, None, UnsetType] = UNSET + sap_erp_function_module_group: Union[str, None, UnsetType] = UNSET """Represents the group to which the SAP ERP function module belongs.""" sap_erp_function_module_import_params: Union[ @@ -129,7 +129,7 @@ class SapErpFunctionModule(Asset): ] = UNSET """Parameters imported by the SAP ERP function module, defined as key-value pairs.""" - sap_import_params_count: Union[int, None, UnsetType] = UNSET + sap_erp_function_module_import_params_count: Union[int, None, UnsetType] = UNSET """Represents the total number of Import Parameters in a given SAP ERP Function Module.""" sap_erp_function_module_export_params: Union[ @@ -137,7 +137,7 @@ class SapErpFunctionModule(Asset): ] = UNSET """Parameters exported by the SAP ERP function module, defined as key-value pairs.""" - sap_export_params_count: Union[int, None, UnsetType] = UNSET + sap_erp_function_module_export_params_count: Union[int, None, UnsetType] = UNSET """Represents the total number of Export Parameters in a given SAP ERP Function Module.""" sap_erp_function_exception_list: Union[List[Dict[str, str]], None, UnsetType] = ( @@ -407,7 +407,7 @@ def from_json( class SapErpFunctionModuleAttributes(AssetAttributes): """SapErpFunctionModule-specific attributes for nested API format.""" - sap_group: Union[str, None, UnsetType] = UNSET + sap_erp_function_module_group: Union[str, None, UnsetType] = UNSET """Represents the group to which the SAP ERP function module belongs.""" sap_erp_function_module_import_params: Union[ @@ -415,7 +415,7 @@ class SapErpFunctionModuleAttributes(AssetAttributes): ] = UNSET """Parameters imported by the SAP ERP function module, defined as key-value pairs.""" - sap_import_params_count: Union[int, None, UnsetType] = UNSET + sap_erp_function_module_import_params_count: Union[int, None, UnsetType] = UNSET """Represents the total number of Import Parameters in a given SAP ERP Function Module.""" sap_erp_function_module_export_params: Union[ @@ -423,7 +423,7 @@ class SapErpFunctionModuleAttributes(AssetAttributes): ] = UNSET """Parameters exported by the SAP ERP function module, defined as key-value pairs.""" - sap_export_params_count: Union[int, None, UnsetType] = UNSET + sap_erp_function_module_export_params_count: Union[int, None, UnsetType] = UNSET """Represents the total number of Export Parameters in a given SAP ERP Function Module.""" sap_erp_function_exception_list: Union[List[Dict[str, str]], None, UnsetType] = ( @@ -642,15 +642,19 @@ def _populate_sap_erp_function_module_attrs( ) -> None: """Populate SapErpFunctionModule-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sap_group = obj.sap_group + attrs.sap_erp_function_module_group = obj.sap_erp_function_module_group attrs.sap_erp_function_module_import_params = ( obj.sap_erp_function_module_import_params ) - attrs.sap_import_params_count = obj.sap_import_params_count + attrs.sap_erp_function_module_import_params_count = ( + obj.sap_erp_function_module_import_params_count + ) attrs.sap_erp_function_module_export_params = ( obj.sap_erp_function_module_export_params ) - attrs.sap_export_params_count = obj.sap_export_params_count + attrs.sap_erp_function_module_export_params_count = ( + obj.sap_erp_function_module_export_params_count + ) attrs.sap_erp_function_exception_list = obj.sap_erp_function_exception_list attrs.sap_erp_function_exception_list_count = ( obj.sap_erp_function_exception_list_count @@ -670,15 +674,19 @@ def _extract_sap_erp_function_module_attrs( ) -> dict: """Extract all SapErpFunctionModule attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sap_group"] = attrs.sap_group + result["sap_erp_function_module_group"] = attrs.sap_erp_function_module_group result["sap_erp_function_module_import_params"] = ( attrs.sap_erp_function_module_import_params ) - result["sap_import_params_count"] = attrs.sap_import_params_count + result["sap_erp_function_module_import_params_count"] = ( + attrs.sap_erp_function_module_import_params_count + ) result["sap_erp_function_module_export_params"] = ( attrs.sap_erp_function_module_export_params ) - result["sap_export_params_count"] = attrs.sap_export_params_count + result["sap_erp_function_module_export_params_count"] = ( + attrs.sap_erp_function_module_export_params_count + ) result["sap_erp_function_exception_list"] = attrs.sap_erp_function_exception_list result["sap_erp_function_exception_list_count"] = ( attrs.sap_erp_function_exception_list_count @@ -811,18 +819,20 @@ def _sap_erp_function_module_from_nested_bytes( RelationField, ) -SapErpFunctionModule.SAP_GROUP = KeywordField("sapGroup", "sapGroup") +SapErpFunctionModule.SAP_ERP_FUNCTION_MODULE_GROUP = KeywordField( + "sapErpFunctionModuleGroup", "sapErpFunctionModuleGroup" +) SapErpFunctionModule.SAP_ERP_FUNCTION_MODULE_IMPORT_PARAMS = KeywordField( "sapErpFunctionModuleImportParams", "sapErpFunctionModuleImportParams" ) -SapErpFunctionModule.SAP_IMPORT_PARAMS_COUNT = NumericField( - "sapImportParamsCount", "sapImportParamsCount" +SapErpFunctionModule.SAP_ERP_FUNCTION_MODULE_IMPORT_PARAMS_COUNT = NumericField( + "sapErpFunctionModuleImportParamsCount", "sapErpFunctionModuleImportParamsCount" ) SapErpFunctionModule.SAP_ERP_FUNCTION_MODULE_EXPORT_PARAMS = KeywordField( "sapErpFunctionModuleExportParams", "sapErpFunctionModuleExportParams" ) -SapErpFunctionModule.SAP_EXPORT_PARAMS_COUNT = NumericField( - "sapExportParamsCount", "sapExportParamsCount" +SapErpFunctionModule.SAP_ERP_FUNCTION_MODULE_EXPORT_PARAMS_COUNT = NumericField( + "sapErpFunctionModuleExportParamsCount", "sapErpFunctionModuleExportParamsCount" ) SapErpFunctionModule.SAP_ERP_FUNCTION_EXCEPTION_LIST = KeywordField( "sapErpFunctionExceptionList", "sapErpFunctionExceptionList" diff --git a/pyatlan_v9/model/assets/sap_erp_view.py b/pyatlan_v9/model/assets/sap_erp_view.py index 8885a8d09..e40a4f817 100644 --- a/pyatlan_v9/model/assets/sap_erp_view.py +++ b/pyatlan_v9/model/assets/sap_erp_view.py @@ -66,8 +66,8 @@ class SapErpView(Asset): Instance of a SAP table in Atlan. """ - SAP_TYPE: ClassVar[Any] = None - SAP_DEFINITION: ClassVar[Any] = None + SAP_ERP_VIEW_TYPE: ClassVar[Any] = None + SAP_ERP_VIEW_DEFINITION: ClassVar[Any] = None SAP_TECHNICAL_NAME: ClassVar[Any] = None SAP_LOGICAL_NAME: ClassVar[Any] = None SAP_PACKAGE_NAME: ClassVar[Any] = None @@ -112,10 +112,10 @@ class SapErpView(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sap_type: Union[str, None, UnsetType] = UNSET + sap_erp_view_type: Union[str, None, UnsetType] = UNSET """Type of the SAP ERP View.""" - sap_definition: Union[str, None, UnsetType] = UNSET + sap_erp_view_definition: Union[str, None, UnsetType] = UNSET """Specifies the definition of the SAP ERP View.""" sap_technical_name: Union[str, None, UnsetType] = UNSET @@ -375,10 +375,10 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SapErpView: class SapErpViewAttributes(AssetAttributes): """SapErpView-specific attributes for nested API format.""" - sap_type: Union[str, None, UnsetType] = UNSET + sap_erp_view_type: Union[str, None, UnsetType] = UNSET """Type of the SAP ERP View.""" - sap_definition: Union[str, None, UnsetType] = UNSET + sap_erp_view_definition: Union[str, None, UnsetType] = UNSET """Specifies the definition of the SAP ERP View.""" sap_technical_name: Union[str, None, UnsetType] = UNSET @@ -585,8 +585,8 @@ class SapErpViewNested(AssetNested): def _populate_sap_erp_view_attrs(attrs: SapErpViewAttributes, obj: SapErpView) -> None: """Populate SapErpView-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sap_type = obj.sap_type - attrs.sap_definition = obj.sap_definition + attrs.sap_erp_view_type = obj.sap_erp_view_type + attrs.sap_erp_view_definition = obj.sap_erp_view_definition attrs.sap_technical_name = obj.sap_technical_name attrs.sap_logical_name = obj.sap_logical_name attrs.sap_package_name = obj.sap_package_name @@ -600,8 +600,8 @@ def _populate_sap_erp_view_attrs(attrs: SapErpViewAttributes, obj: SapErpView) - def _extract_sap_erp_view_attrs(attrs: SapErpViewAttributes) -> dict: """Extract all SapErpView attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sap_type"] = attrs.sap_type - result["sap_definition"] = attrs.sap_definition + result["sap_erp_view_type"] = attrs.sap_erp_view_type + result["sap_erp_view_definition"] = attrs.sap_erp_view_definition result["sap_technical_name"] = attrs.sap_technical_name result["sap_logical_name"] = attrs.sap_logical_name result["sap_package_name"] = attrs.sap_package_name @@ -718,8 +718,10 @@ def _sap_erp_view_from_nested_bytes(data: bytes, serde: Serde) -> SapErpView: RelationField, ) -SapErpView.SAP_TYPE = KeywordField("sapType", "sapType") -SapErpView.SAP_DEFINITION = KeywordField("sapDefinition", "sapDefinition") +SapErpView.SAP_ERP_VIEW_TYPE = KeywordField("sapErpViewType", "sapErpViewType") +SapErpView.SAP_ERP_VIEW_DEFINITION = KeywordField( + "sapErpViewDefinition", "sapErpViewDefinition" +) SapErpView.SAP_TECHNICAL_NAME = KeywordField("sapTechnicalName", "sapTechnicalName") SapErpView.SAP_LOGICAL_NAME = KeywordField("sapLogicalName", "sapLogicalName") SapErpView.SAP_PACKAGE_NAME = KeywordField("sapPackageName", "sapPackageName") diff --git a/pyatlan_v9/model/assets/sap_related.py b/pyatlan_v9/model/assets/sap_related.py index 06180f278..2a77548c7 100644 --- a/pyatlan_v9/model/assets/sap_related.py +++ b/pyatlan_v9/model/assets/sap_related.py @@ -131,10 +131,10 @@ class RelatedSapErpView(RelatedSAP): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SapErpView" so it serializes correctly - sap_type: Union[str, None, UnsetType] = UNSET + sap_erp_view_type: Union[str, None, UnsetType] = UNSET """Type of the SAP ERP View.""" - sap_definition: Union[str, None, UnsetType] = UNSET + sap_erp_view_definition: Union[str, None, UnsetType] = UNSET """Specifies the definition of the SAP ERP View.""" def __post_init__(self) -> None: @@ -153,13 +153,13 @@ class RelatedSapErpCdsView(RelatedSAP): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SapErpCdsView" so it serializes correctly - sap_technical_name: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_technical_name: Union[str, None, UnsetType] = UNSET """The technical database view name of the SAP ERP CDS View.""" - sap_source_name: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_source_name: Union[str, None, UnsetType] = UNSET """The source name of the SAP ERP CDS View Definition.""" - sap_source_type: Union[str, None, UnsetType] = UNSET + sap_erp_cds_view_source_type: Union[str, None, UnsetType] = UNSET """The source type of the SAP ERP CDS View Definition.""" def __post_init__(self) -> None: @@ -178,25 +178,25 @@ class RelatedSapErpColumn(RelatedSAP): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SapErpColumn" so it serializes correctly - sap_data_element: Union[str, None, UnsetType] = UNSET + sap_erp_column_data_element: Union[str, None, UnsetType] = UNSET """Represents the SAP ERP data element, providing semantic information about the column.""" - sap_logical_data_type: Union[str, None, UnsetType] = UNSET + sap_erp_column_logical_data_type: Union[str, None, UnsetType] = UNSET """Specifies the logical data type of values in this SAP ERP column.""" - sap_length: Union[str, None, UnsetType] = UNSET + sap_erp_column_length: Union[str, None, UnsetType] = UNSET """Indicates the maximum length of the values that the SAP ERP column can store.""" - sap_decimals: Union[str, None, UnsetType] = UNSET + sap_erp_column_decimals: Union[str, None, UnsetType] = UNSET """Defines the number of decimal places allowed for numeric values in the SAP ERP column.""" - sap_is_primary: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_primary: Union[bool, None, UnsetType] = UNSET """When true, this column is the primary key for the SAP ERP table or view.""" - sap_is_foreign: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_foreign: Union[bool, None, UnsetType] = UNSET """When true, this column is the foreign key for the SAP ERP table or view.""" - sap_is_mandatory: Union[bool, None, UnsetType] = UNSET + sap_erp_column_is_mandatory: Union[bool, None, UnsetType] = UNSET """When true, the values in this column can be null.""" sap_erp_table_name: Union[str, None, UnsetType] = UNSET @@ -217,10 +217,10 @@ class RelatedSapErpColumn(RelatedSAP): sap_erp_cds_view_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the SAP ERP CDS view in which this column asset exists.""" - sap_check_table_name: Union[str, None, UnsetType] = UNSET + sap_erp_column_check_table_name: Union[str, None, UnsetType] = UNSET """Defines the SAP ERP table name used as a foreign key reference to validate permissible values for this column.""" - sap_check_table_qualified_name: Union[str, None, UnsetType] = UNSET + sap_erp_column_check_table_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the SAP ERP Table used as a foreign key reference to validate permissible values for this column.""" def __post_init__(self) -> None: @@ -255,7 +255,7 @@ class RelatedSapErpFunctionModule(RelatedSAP): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SapErpFunctionModule" so it serializes correctly - sap_group: Union[str, None, UnsetType] = UNSET + sap_erp_function_module_group: Union[str, None, UnsetType] = UNSET """Represents the group to which the SAP ERP function module belongs.""" sap_erp_function_module_import_params: Union[ @@ -263,7 +263,7 @@ class RelatedSapErpFunctionModule(RelatedSAP): ] = UNSET """Parameters imported by the SAP ERP function module, defined as key-value pairs.""" - sap_import_params_count: Union[int, None, UnsetType] = UNSET + sap_erp_function_module_import_params_count: Union[int, None, UnsetType] = UNSET """Represents the total number of Import Parameters in a given SAP ERP Function Module.""" sap_erp_function_module_export_params: Union[ @@ -271,7 +271,7 @@ class RelatedSapErpFunctionModule(RelatedSAP): ] = UNSET """Parameters exported by the SAP ERP function module, defined as key-value pairs.""" - sap_export_params_count: Union[int, None, UnsetType] = UNSET + sap_erp_function_module_export_params_count: Union[int, None, UnsetType] = UNSET """Represents the total number of Export Parameters in a given SAP ERP Function Module.""" sap_erp_function_exception_list: Union[List[Dict[str, str]], None, UnsetType] = ( @@ -339,25 +339,25 @@ class RelatedSapErpFioriApp(RelatedSAP): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SapErpFioriApp" so it serializes correctly - sap_type: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_type: Union[str, None, UnsetType] = UNSET """Application type of the Fiori App from sap.app.type in the manifest, such as application, transactional, or factsheet.""" - sap_arche_type: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_arche_type: Union[str, None, UnsetType] = UNSET """Fiori archetype from sap.fiori.archeType in the manifest, such as transactional.""" - sap_is_custom: Union[bool, None, UnsetType] = UNSET + sap_erp_fiori_app_is_custom: Union[bool, None, UnsetType] = UNSET """When true, the Fiori App has no sap.fiori.registrationIds in its manifest and is treated as a customer (Z-app) build.""" - sap_bsp_application: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_bsp_application: Union[str, None, UnsetType] = UNSET """BSP container name for the Fiori App as registered in O2APPL (e.g. ATP_ABOPVARS1).""" - sap_odata_service_name: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_service_name: Union[str, None, UnsetType] = UNSET """Resolved OData service name extracted from the manifest mainService URI (e.g. UI_ABOPVARIANT_CONFIGURE or C_SUPPLIEREVALUATION_CDS).""" - sap_odata_service_uri: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_service_uri: Union[str, None, UnsetType] = UNSET """Full OData service URI from sap.app.dataSources.mainService.uri in the manifest.""" - sap_odata_version: Union[str, None, UnsetType] = UNSET + sap_erp_fiori_app_odata_version: Union[str, None, UnsetType] = UNSET """OData protocol version of the Fiori App's main data source, such as 2.0 or 4.0.""" def __post_init__(self) -> None: @@ -376,22 +376,28 @@ class RelatedSapDatasphereReplicationFlow(RelatedFlowControlOperation): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SapDatasphereReplicationFlow" so it serializes correctly - sap_space_name: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_space_name: Union[str, None, UnsetType] = UNSET """Simple name of the Datasphere space in which this replication flow runs and creates its target tables.""" - sap_space_qualified_name: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_space_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Unique name of the Datasphere space in which this replication flow runs and creates its target tables.""" - sap_source_connection: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_source_connection: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the source connection from which this replication flow reads data, such as an S/4HANA, SAP ECC, SAP BW, or S3 connection outside Datasphere.""" - sap_target_connection: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_target_connection: Union[str, None, UnsetType] = ( + UNSET + ) """Name of the target connection into which this replication flow writes data, such as the local Datasphere repository.""" - sap_load_type: Union[str, None, UnsetType] = UNSET + sap_datasphere_replication_flow_load_type: Union[str, None, UnsetType] = UNSET """Type of load performed by this replication flow, such as INITIAL or INITIAL_AND_DELTA.""" - sap_dataset_count: Union[int, None, UnsetType] = UNSET + sap_datasphere_replication_flow_dataset_count: Union[int, None, UnsetType] = UNSET """Number of datasets moved by this replication flow.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/schema.py b/pyatlan_v9/model/assets/schema.py index 2d9671611..674dde67e 100644 --- a/pyatlan_v9/model/assets/schema.py +++ b/pyatlan_v9/model/assets/schema.py @@ -101,7 +101,7 @@ class Schema(Asset): """ TABLE_COUNT: ClassVar[Any] = None - SQL_EXTERNAL_LOCATION: ClassVar[Any] = None + SCHEMA_EXTERNAL_LOCATION: ClassVar[Any] = None VIEWS_COUNT: ClassVar[Any] = None LINKED_SCHEMA_QUALIFIED_NAME: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None @@ -203,7 +203,7 @@ class Schema(Asset): table_count: Union[int, None, UnsetType] = UNSET """Number of tables in this schema.""" - sql_external_location: Union[str, None, UnsetType] = UNSET + schema_external_location: Union[str, None, UnsetType] = UNSET """External location of this schema, for example: an S3 object location.""" views_count: Union[int, None, UnsetType] = UNSET @@ -758,7 +758,7 @@ class SchemaAttributes(AssetAttributes): table_count: Union[int, None, UnsetType] = UNSET """Number of tables in this schema.""" - sql_external_location: Union[str, None, UnsetType] = UNSET + schema_external_location: Union[str, None, UnsetType] = UNSET """External location of this schema, for example: an S3 object location.""" views_count: Union[int, None, UnsetType] = UNSET @@ -1176,7 +1176,7 @@ def _populate_schema__attrs(attrs: SchemaAttributes, obj: Schema) -> None: """Populate Schema-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) attrs.table_count = obj.table_count - attrs.sql_external_location = obj.sql_external_location + attrs.schema_external_location = obj.schema_external_location attrs.views_count = obj.views_count attrs.linked_schema_qualified_name = obj.linked_schema_qualified_name attrs.query_count = obj.query_count @@ -1223,7 +1223,7 @@ def _extract_schema__attrs(attrs: SchemaAttributes) -> dict: """Extract all Schema attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) result["table_count"] = attrs.table_count - result["sql_external_location"] = attrs.sql_external_location + result["schema_external_location"] = attrs.schema_external_location result["views_count"] = attrs.views_count result["linked_schema_qualified_name"] = attrs.linked_schema_qualified_name result["query_count"] = attrs.query_count @@ -1379,8 +1379,8 @@ def _schema__from_nested_bytes(data: bytes, serde: Serde) -> Schema: ) Schema.TABLE_COUNT = NumericField("tableCount", "tableCount") -Schema.SQL_EXTERNAL_LOCATION = KeywordField( - "sqlExternalLocation", "sqlExternalLocation" +Schema.SCHEMA_EXTERNAL_LOCATION = KeywordField( + "schemaExternalLocation", "schemaExternalLocation" ) Schema.VIEWS_COUNT = NumericField("viewsCount", "viewsCount") Schema.LINKED_SCHEMA_QUALIFIED_NAME = KeywordField( diff --git a/pyatlan_v9/model/assets/sigma_data_element_field.py b/pyatlan_v9/model/assets/sigma_data_element_field.py index 034c68c9d..6ff916f6b 100644 --- a/pyatlan_v9/model/assets/sigma_data_element_field.py +++ b/pyatlan_v9/model/assets/sigma_data_element_field.py @@ -67,7 +67,7 @@ class SigmaDataElementField(Asset): Instance of a Sigma data element field in Atlan. """ - SIGMA_IS_HIDDEN: ClassVar[Any] = None + SIGMA_DATA_ELEMENT_FIELD_IS_HIDDEN: ClassVar[Any] = None SIGMA_DATA_ELEMENT_FIELD_FORMULA: ClassVar[Any] = None SIGMA_WORKBOOK_QUALIFIED_NAME: ClassVar[Any] = None SIGMA_WORKBOOK_NAME: ClassVar[Any] = None @@ -111,7 +111,7 @@ class SigmaDataElementField(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sigma_is_hidden: Union[bool, None, UnsetType] = UNSET + sigma_data_element_field_is_hidden: Union[bool, None, UnsetType] = UNSET """Whether this field is hidden (true) or not (false).""" sigma_data_element_field_formula: Union[str, None, UnsetType] = UNSET @@ -398,7 +398,7 @@ def from_json( class SigmaDataElementFieldAttributes(AssetAttributes): """SigmaDataElementField-specific attributes for nested API format.""" - sigma_is_hidden: Union[bool, None, UnsetType] = UNSET + sigma_data_element_field_is_hidden: Union[bool, None, UnsetType] = UNSET """Whether this field is hidden (true) or not (false).""" sigma_data_element_field_formula: Union[str, None, UnsetType] = UNSET @@ -605,7 +605,7 @@ def _populate_sigma_data_element_field_attrs( ) -> None: """Populate SigmaDataElementField-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sigma_is_hidden = obj.sigma_is_hidden + attrs.sigma_data_element_field_is_hidden = obj.sigma_data_element_field_is_hidden attrs.sigma_data_element_field_formula = obj.sigma_data_element_field_formula attrs.sigma_workbook_qualified_name = obj.sigma_workbook_qualified_name attrs.sigma_workbook_name = obj.sigma_workbook_name @@ -621,7 +621,9 @@ def _extract_sigma_data_element_field_attrs( ) -> dict: """Extract all SigmaDataElementField attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sigma_is_hidden"] = attrs.sigma_is_hidden + result["sigma_data_element_field_is_hidden"] = ( + attrs.sigma_data_element_field_is_hidden + ) result["sigma_data_element_field_formula"] = attrs.sigma_data_element_field_formula result["sigma_workbook_qualified_name"] = attrs.sigma_workbook_qualified_name result["sigma_workbook_name"] = attrs.sigma_workbook_name @@ -753,7 +755,9 @@ def _sigma_data_element_field_from_nested_bytes( RelationField, ) -SigmaDataElementField.SIGMA_IS_HIDDEN = BooleanField("sigmaIsHidden", "sigmaIsHidden") +SigmaDataElementField.SIGMA_DATA_ELEMENT_FIELD_IS_HIDDEN = BooleanField( + "sigmaDataElementFieldIsHidden", "sigmaDataElementFieldIsHidden" +) SigmaDataElementField.SIGMA_DATA_ELEMENT_FIELD_FORMULA = KeywordField( "sigmaDataElementFieldFormula", "sigmaDataElementFieldFormula" ) diff --git a/pyatlan_v9/model/assets/sigma_dataset.py b/pyatlan_v9/model/assets/sigma_dataset.py index cb82192ed..c985a3a18 100644 --- a/pyatlan_v9/model/assets/sigma_dataset.py +++ b/pyatlan_v9/model/assets/sigma_dataset.py @@ -66,7 +66,7 @@ class SigmaDataset(Asset): Instance of a Sigma dataset in Atlan. """ - SIGMA_COLUMN_COUNT: ClassVar[Any] = None + SIGMA_DATASET_COLUMN_COUNT: ClassVar[Any] = None SIGMA_WORKBOOK_QUALIFIED_NAME: ClassVar[Any] = None SIGMA_WORKBOOK_NAME: ClassVar[Any] = None SIGMA_PAGE_QUALIFIED_NAME: ClassVar[Any] = None @@ -109,7 +109,7 @@ class SigmaDataset(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sigma_column_count: Union[int, None, UnsetType] = UNSET + sigma_dataset_column_count: Union[int, None, UnsetType] = UNSET """Number of columns in this dataset.""" sigma_workbook_qualified_name: Union[str, None, UnsetType] = UNSET @@ -365,7 +365,7 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SigmaDatase class SigmaDatasetAttributes(AssetAttributes): """SigmaDataset-specific attributes for nested API format.""" - sigma_column_count: Union[int, None, UnsetType] = UNSET + sigma_dataset_column_count: Union[int, None, UnsetType] = UNSET """Number of columns in this dataset.""" sigma_workbook_qualified_name: Union[str, None, UnsetType] = UNSET @@ -571,7 +571,7 @@ def _populate_sigma_dataset_attrs( ) -> None: """Populate SigmaDataset-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sigma_column_count = obj.sigma_column_count + attrs.sigma_dataset_column_count = obj.sigma_dataset_column_count attrs.sigma_workbook_qualified_name = obj.sigma_workbook_qualified_name attrs.sigma_workbook_name = obj.sigma_workbook_name attrs.sigma_page_qualified_name = obj.sigma_page_qualified_name @@ -584,7 +584,7 @@ def _populate_sigma_dataset_attrs( def _extract_sigma_dataset_attrs(attrs: SigmaDatasetAttributes) -> dict: """Extract all SigmaDataset attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sigma_column_count"] = attrs.sigma_column_count + result["sigma_dataset_column_count"] = attrs.sigma_dataset_column_count result["sigma_workbook_qualified_name"] = attrs.sigma_workbook_qualified_name result["sigma_workbook_name"] = attrs.sigma_workbook_name result["sigma_page_qualified_name"] = attrs.sigma_page_qualified_name @@ -705,7 +705,9 @@ def _sigma_dataset_from_nested_bytes(data: bytes, serde: Serde) -> SigmaDataset: RelationField, ) -SigmaDataset.SIGMA_COLUMN_COUNT = NumericField("sigmaColumnCount", "sigmaColumnCount") +SigmaDataset.SIGMA_DATASET_COLUMN_COUNT = NumericField( + "sigmaDatasetColumnCount", "sigmaDatasetColumnCount" +) SigmaDataset.SIGMA_WORKBOOK_QUALIFIED_NAME = KeywordTextField( "sigmaWorkbookQualifiedName", "sigmaWorkbookQualifiedName", diff --git a/pyatlan_v9/model/assets/sigma_related.py b/pyatlan_v9/model/assets/sigma_related.py index 1959b3db7..0f5c840a1 100644 --- a/pyatlan_v9/model/assets/sigma_related.py +++ b/pyatlan_v9/model/assets/sigma_related.py @@ -100,7 +100,7 @@ class RelatedSigmaDataElementField(RelatedSigma): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SigmaDataElementField" so it serializes correctly - sigma_is_hidden: Union[bool, None, UnsetType] = UNSET + sigma_data_element_field_is_hidden: Union[bool, None, UnsetType] = UNSET """Whether this field is hidden (true) or not (false).""" sigma_data_element_field_formula: Union[str, None, UnsetType] = UNSET @@ -122,7 +122,7 @@ class RelatedSigmaDataset(RelatedSigma): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SigmaDataset" so it serializes correctly - sigma_column_count: Union[int, None, UnsetType] = UNSET + sigma_dataset_column_count: Union[int, None, UnsetType] = UNSET """Number of columns in this dataset.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/sisense_dashboard.py b/pyatlan_v9/model/assets/sisense_dashboard.py index 3751a025e..13bdcfb39 100644 --- a/pyatlan_v9/model/assets/sisense_dashboard.py +++ b/pyatlan_v9/model/assets/sisense_dashboard.py @@ -73,7 +73,7 @@ class SisenseDashboard(Asset): """ SISENSE_DASHBOARD_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None - SISENSE_WIDGET_COUNT: ClassVar[Any] = None + SISENSE_DASHBOARD_WIDGET_COUNT: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None @@ -115,7 +115,7 @@ class SisenseDashboard(Asset): sisense_dashboard_folder_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the folder in which this dashboard exists.""" - sisense_widget_count: Union[int, None, UnsetType] = UNSET + sisense_dashboard_widget_count: Union[int, None, UnsetType] = UNSET """Number of widgets in this dashboard.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -374,7 +374,7 @@ class SisenseDashboardAttributes(AssetAttributes): sisense_dashboard_folder_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the folder in which this dashboard exists.""" - sisense_widget_count: Union[int, None, UnsetType] = UNSET + sisense_dashboard_widget_count: Union[int, None, UnsetType] = UNSET """Number of widgets in this dashboard.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -571,7 +571,7 @@ def _populate_sisense_dashboard_attrs( attrs.sisense_dashboard_folder_qualified_name = ( obj.sisense_dashboard_folder_qualified_name ) - attrs.sisense_widget_count = obj.sisense_widget_count + attrs.sisense_dashboard_widget_count = obj.sisense_dashboard_widget_count attrs.catalog_dataset_guid = obj.catalog_dataset_guid @@ -581,7 +581,7 @@ def _extract_sisense_dashboard_attrs(attrs: SisenseDashboardAttributes) -> dict: result["sisense_dashboard_folder_qualified_name"] = ( attrs.sisense_dashboard_folder_qualified_name ) - result["sisense_widget_count"] = attrs.sisense_widget_count + result["sisense_dashboard_widget_count"] = attrs.sisense_dashboard_widget_count result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -705,8 +705,8 @@ def _sisense_dashboard_from_nested_bytes(data: bytes, serde: Serde) -> SisenseDa "sisenseDashboardFolderQualifiedName", "sisenseDashboardFolderQualifiedName.text", ) -SisenseDashboard.SISENSE_WIDGET_COUNT = NumericField( - "sisenseWidgetCount", "sisenseWidgetCount" +SisenseDashboard.SISENSE_DASHBOARD_WIDGET_COUNT = NumericField( + "sisenseDashboardWidgetCount", "sisenseDashboardWidgetCount" ) SisenseDashboard.CATALOG_DATASET_GUID = KeywordField( "catalogDatasetGuid", "catalogDatasetGuid" diff --git a/pyatlan_v9/model/assets/sisense_datamodel.py b/pyatlan_v9/model/assets/sisense_datamodel.py index 1df497970..13aa83307 100644 --- a/pyatlan_v9/model/assets/sisense_datamodel.py +++ b/pyatlan_v9/model/assets/sisense_datamodel.py @@ -70,12 +70,12 @@ class SisenseDatamodel(Asset): Instance of a Sisense datamodel in Atlan. These group tables together that you can use to build dashboards. """ - SISENSE_TABLE_COUNT: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_COUNT: ClassVar[Any] = None SISENSE_DATAMODEL_SERVER: ClassVar[Any] = None - SISENSE_REVISION: ClassVar[Any] = None - SISENSE_LAST_BUILD_TIME: ClassVar[Any] = None - SISENSE_LAST_SUCCESSFUL_BUILD_TIME: ClassVar[Any] = None - SISENSE_LAST_PUBLISH_TIME: ClassVar[Any] = None + SISENSE_DATAMODEL_REVISION: ClassVar[Any] = None + SISENSE_DATAMODEL_LAST_BUILD_TIME: ClassVar[Any] = None + SISENSE_DATAMODEL_LAST_SUCCESSFUL_BUILD_TIME: ClassVar[Any] = None + SISENSE_DATAMODEL_LAST_PUBLISH_TIME: ClassVar[Any] = None SISENSE_DATAMODEL_TYPE: ClassVar[Any] = None SISENSE_DATAMODEL_RELATION_TYPE: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None @@ -115,22 +115,22 @@ class SisenseDatamodel(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sisense_table_count: Union[int, None, UnsetType] = UNSET + sisense_datamodel_table_count: Union[int, None, UnsetType] = UNSET """Number of tables in this datamodel.""" sisense_datamodel_server: Union[str, None, UnsetType] = UNSET """Hostname of the server on which this datamodel was created.""" - sisense_revision: Union[str, None, UnsetType] = UNSET + sisense_datamodel_revision: Union[str, None, UnsetType] = UNSET """Revision of this datamodel.""" - sisense_last_build_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_build_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last built, in milliseconds.""" - sisense_last_successful_build_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_successful_build_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last built successfully, in milliseconds.""" - sisense_last_publish_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_publish_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last published, in milliseconds.""" sisense_datamodel_type: Union[str, None, UnsetType] = UNSET @@ -379,22 +379,22 @@ def from_json( class SisenseDatamodelAttributes(AssetAttributes): """SisenseDatamodel-specific attributes for nested API format.""" - sisense_table_count: Union[int, None, UnsetType] = UNSET + sisense_datamodel_table_count: Union[int, None, UnsetType] = UNSET """Number of tables in this datamodel.""" sisense_datamodel_server: Union[str, None, UnsetType] = UNSET """Hostname of the server on which this datamodel was created.""" - sisense_revision: Union[str, None, UnsetType] = UNSET + sisense_datamodel_revision: Union[str, None, UnsetType] = UNSET """Revision of this datamodel.""" - sisense_last_build_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_build_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last built, in milliseconds.""" - sisense_last_successful_build_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_successful_build_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last built successfully, in milliseconds.""" - sisense_last_publish_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_publish_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last published, in milliseconds.""" sisense_datamodel_type: Union[str, None, UnsetType] = UNSET @@ -592,12 +592,14 @@ def _populate_sisense_datamodel_attrs( ) -> None: """Populate SisenseDatamodel-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sisense_table_count = obj.sisense_table_count + attrs.sisense_datamodel_table_count = obj.sisense_datamodel_table_count attrs.sisense_datamodel_server = obj.sisense_datamodel_server - attrs.sisense_revision = obj.sisense_revision - attrs.sisense_last_build_time = obj.sisense_last_build_time - attrs.sisense_last_successful_build_time = obj.sisense_last_successful_build_time - attrs.sisense_last_publish_time = obj.sisense_last_publish_time + attrs.sisense_datamodel_revision = obj.sisense_datamodel_revision + attrs.sisense_datamodel_last_build_time = obj.sisense_datamodel_last_build_time + attrs.sisense_datamodel_last_successful_build_time = ( + obj.sisense_datamodel_last_successful_build_time + ) + attrs.sisense_datamodel_last_publish_time = obj.sisense_datamodel_last_publish_time attrs.sisense_datamodel_type = obj.sisense_datamodel_type attrs.sisense_datamodel_relation_type = obj.sisense_datamodel_relation_type attrs.catalog_dataset_guid = obj.catalog_dataset_guid @@ -606,14 +608,18 @@ def _populate_sisense_datamodel_attrs( def _extract_sisense_datamodel_attrs(attrs: SisenseDatamodelAttributes) -> dict: """Extract all SisenseDatamodel attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sisense_table_count"] = attrs.sisense_table_count + result["sisense_datamodel_table_count"] = attrs.sisense_datamodel_table_count result["sisense_datamodel_server"] = attrs.sisense_datamodel_server - result["sisense_revision"] = attrs.sisense_revision - result["sisense_last_build_time"] = attrs.sisense_last_build_time - result["sisense_last_successful_build_time"] = ( - attrs.sisense_last_successful_build_time + result["sisense_datamodel_revision"] = attrs.sisense_datamodel_revision + result["sisense_datamodel_last_build_time"] = ( + attrs.sisense_datamodel_last_build_time + ) + result["sisense_datamodel_last_successful_build_time"] = ( + attrs.sisense_datamodel_last_successful_build_time + ) + result["sisense_datamodel_last_publish_time"] = ( + attrs.sisense_datamodel_last_publish_time ) - result["sisense_last_publish_time"] = attrs.sisense_last_publish_time result["sisense_datamodel_type"] = attrs.sisense_datamodel_type result["sisense_datamodel_relation_type"] = attrs.sisense_datamodel_relation_type result["catalog_dataset_guid"] = attrs.catalog_dataset_guid @@ -733,21 +739,23 @@ def _sisense_datamodel_from_nested_bytes(data: bytes, serde: Serde) -> SisenseDa RelationField, ) -SisenseDatamodel.SISENSE_TABLE_COUNT = NumericField( - "sisenseTableCount", "sisenseTableCount" +SisenseDatamodel.SISENSE_DATAMODEL_TABLE_COUNT = NumericField( + "sisenseDatamodelTableCount", "sisenseDatamodelTableCount" ) SisenseDatamodel.SISENSE_DATAMODEL_SERVER = KeywordField( "sisenseDatamodelServer", "sisenseDatamodelServer" ) -SisenseDatamodel.SISENSE_REVISION = KeywordField("sisenseRevision", "sisenseRevision") -SisenseDatamodel.SISENSE_LAST_BUILD_TIME = NumericField( - "sisenseLastBuildTime", "sisenseLastBuildTime" +SisenseDatamodel.SISENSE_DATAMODEL_REVISION = KeywordField( + "sisenseDatamodelRevision", "sisenseDatamodelRevision" +) +SisenseDatamodel.SISENSE_DATAMODEL_LAST_BUILD_TIME = NumericField( + "sisenseDatamodelLastBuildTime", "sisenseDatamodelLastBuildTime" ) -SisenseDatamodel.SISENSE_LAST_SUCCESSFUL_BUILD_TIME = NumericField( - "sisenseLastSuccessfulBuildTime", "sisenseLastSuccessfulBuildTime" +SisenseDatamodel.SISENSE_DATAMODEL_LAST_SUCCESSFUL_BUILD_TIME = NumericField( + "sisenseDatamodelLastSuccessfulBuildTime", "sisenseDatamodelLastSuccessfulBuildTime" ) -SisenseDatamodel.SISENSE_LAST_PUBLISH_TIME = NumericField( - "sisenseLastPublishTime", "sisenseLastPublishTime" +SisenseDatamodel.SISENSE_DATAMODEL_LAST_PUBLISH_TIME = NumericField( + "sisenseDatamodelLastPublishTime", "sisenseDatamodelLastPublishTime" ) SisenseDatamodel.SISENSE_DATAMODEL_TYPE = KeywordField( "sisenseDatamodelType", "sisenseDatamodelType" diff --git a/pyatlan_v9/model/assets/sisense_datamodel_table.py b/pyatlan_v9/model/assets/sisense_datamodel_table.py index 0c47f70f8..bf957241e 100644 --- a/pyatlan_v9/model/assets/sisense_datamodel_table.py +++ b/pyatlan_v9/model/assets/sisense_datamodel_table.py @@ -72,13 +72,13 @@ class SisenseDatamodelTable(Asset): """ SISENSE_DATAMODEL_QUALIFIED_NAME: ClassVar[Any] = None - SISENSE_COLUMN_COUNT: ClassVar[Any] = None - SISENSE_TYPE: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_COLUMN_COUNT: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_TYPE: ClassVar[Any] = None SISENSE_DATAMODEL_TABLE_EXPRESSION: ClassVar[Any] = None - SISENSE_IS_MATERIALIZED: ClassVar[Any] = None - SISENSE_IS_HIDDEN: ClassVar[Any] = None - SISENSE_SCHEDULE: ClassVar[Any] = None - SISENSE_LIVE_QUERY_SETTINGS: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_IS_MATERIALIZED: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_IS_HIDDEN: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_SCHEDULE: ClassVar[Any] = None + SISENSE_DATAMODEL_TABLE_LIVE_QUERY_SETTINGS: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None @@ -119,25 +119,25 @@ class SisenseDatamodelTable(Asset): sisense_datamodel_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the datamodel in which this datamodel table exists.""" - sisense_column_count: Union[int, None, UnsetType] = UNSET + sisense_datamodel_table_column_count: Union[int, None, UnsetType] = UNSET """Number of columns present in this datamodel table.""" - sisense_type: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_type: Union[str, None, UnsetType] = UNSET """Type of this datamodel table, for example: 'base' for regular tables, 'custom' for SQL expression-based tables.""" sisense_datamodel_table_expression: Union[str, None, UnsetType] = UNSET """SQL expression of this datamodel table.""" - sisense_is_materialized: Union[bool, None, UnsetType] = UNSET + sisense_datamodel_table_is_materialized: Union[bool, None, UnsetType] = UNSET """Whether this datamodel table is materialised (true) or not (false).""" - sisense_is_hidden: Union[bool, None, UnsetType] = UNSET + sisense_datamodel_table_is_hidden: Union[bool, None, UnsetType] = UNSET """Whether this datamodel table is hidden in Sisense (true) or not (false).""" - sisense_schedule: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_schedule: Union[str, None, UnsetType] = UNSET """JSON specifying the refresh schedule of this datamodel table.""" - sisense_live_query_settings: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_live_query_settings: Union[str, None, UnsetType] = UNSET """JSON specifying the LiveQuery settings of this datamodel table.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -397,25 +397,25 @@ class SisenseDatamodelTableAttributes(AssetAttributes): sisense_datamodel_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the datamodel in which this datamodel table exists.""" - sisense_column_count: Union[int, None, UnsetType] = UNSET + sisense_datamodel_table_column_count: Union[int, None, UnsetType] = UNSET """Number of columns present in this datamodel table.""" - sisense_type: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_type: Union[str, None, UnsetType] = UNSET """Type of this datamodel table, for example: 'base' for regular tables, 'custom' for SQL expression-based tables.""" sisense_datamodel_table_expression: Union[str, None, UnsetType] = UNSET """SQL expression of this datamodel table.""" - sisense_is_materialized: Union[bool, None, UnsetType] = UNSET + sisense_datamodel_table_is_materialized: Union[bool, None, UnsetType] = UNSET """Whether this datamodel table is materialised (true) or not (false).""" - sisense_is_hidden: Union[bool, None, UnsetType] = UNSET + sisense_datamodel_table_is_hidden: Union[bool, None, UnsetType] = UNSET """Whether this datamodel table is hidden in Sisense (true) or not (false).""" - sisense_schedule: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_schedule: Union[str, None, UnsetType] = UNSET """JSON specifying the refresh schedule of this datamodel table.""" - sisense_live_query_settings: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_live_query_settings: Union[str, None, UnsetType] = UNSET """JSON specifying the LiveQuery settings of this datamodel table.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -606,13 +606,19 @@ def _populate_sisense_datamodel_table_attrs( """Populate SisenseDatamodelTable-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) attrs.sisense_datamodel_qualified_name = obj.sisense_datamodel_qualified_name - attrs.sisense_column_count = obj.sisense_column_count - attrs.sisense_type = obj.sisense_type + attrs.sisense_datamodel_table_column_count = ( + obj.sisense_datamodel_table_column_count + ) + attrs.sisense_datamodel_table_type = obj.sisense_datamodel_table_type attrs.sisense_datamodel_table_expression = obj.sisense_datamodel_table_expression - attrs.sisense_is_materialized = obj.sisense_is_materialized - attrs.sisense_is_hidden = obj.sisense_is_hidden - attrs.sisense_schedule = obj.sisense_schedule - attrs.sisense_live_query_settings = obj.sisense_live_query_settings + attrs.sisense_datamodel_table_is_materialized = ( + obj.sisense_datamodel_table_is_materialized + ) + attrs.sisense_datamodel_table_is_hidden = obj.sisense_datamodel_table_is_hidden + attrs.sisense_datamodel_table_schedule = obj.sisense_datamodel_table_schedule + attrs.sisense_datamodel_table_live_query_settings = ( + obj.sisense_datamodel_table_live_query_settings + ) attrs.catalog_dataset_guid = obj.catalog_dataset_guid @@ -622,15 +628,23 @@ def _extract_sisense_datamodel_table_attrs( """Extract all SisenseDatamodelTable attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) result["sisense_datamodel_qualified_name"] = attrs.sisense_datamodel_qualified_name - result["sisense_column_count"] = attrs.sisense_column_count - result["sisense_type"] = attrs.sisense_type + result["sisense_datamodel_table_column_count"] = ( + attrs.sisense_datamodel_table_column_count + ) + result["sisense_datamodel_table_type"] = attrs.sisense_datamodel_table_type result["sisense_datamodel_table_expression"] = ( attrs.sisense_datamodel_table_expression ) - result["sisense_is_materialized"] = attrs.sisense_is_materialized - result["sisense_is_hidden"] = attrs.sisense_is_hidden - result["sisense_schedule"] = attrs.sisense_schedule - result["sisense_live_query_settings"] = attrs.sisense_live_query_settings + result["sisense_datamodel_table_is_materialized"] = ( + attrs.sisense_datamodel_table_is_materialized + ) + result["sisense_datamodel_table_is_hidden"] = ( + attrs.sisense_datamodel_table_is_hidden + ) + result["sisense_datamodel_table_schedule"] = attrs.sisense_datamodel_table_schedule + result["sisense_datamodel_table_live_query_settings"] = ( + attrs.sisense_datamodel_table_live_query_settings + ) result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -759,24 +773,26 @@ def _sisense_datamodel_table_from_nested_bytes( "sisenseDatamodelQualifiedName", "sisenseDatamodelQualifiedName.text", ) -SisenseDatamodelTable.SISENSE_COLUMN_COUNT = NumericField( - "sisenseColumnCount", "sisenseColumnCount" +SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_COLUMN_COUNT = NumericField( + "sisenseDatamodelTableColumnCount", "sisenseDatamodelTableColumnCount" +) +SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_TYPE = KeywordField( + "sisenseDatamodelTableType", "sisenseDatamodelTableType" ) -SisenseDatamodelTable.SISENSE_TYPE = KeywordField("sisenseType", "sisenseType") SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_EXPRESSION = KeywordField( "sisenseDatamodelTableExpression", "sisenseDatamodelTableExpression" ) -SisenseDatamodelTable.SISENSE_IS_MATERIALIZED = BooleanField( - "sisenseIsMaterialized", "sisenseIsMaterialized" +SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_IS_MATERIALIZED = BooleanField( + "sisenseDatamodelTableIsMaterialized", "sisenseDatamodelTableIsMaterialized" ) -SisenseDatamodelTable.SISENSE_IS_HIDDEN = BooleanField( - "sisenseIsHidden", "sisenseIsHidden" +SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_IS_HIDDEN = BooleanField( + "sisenseDatamodelTableIsHidden", "sisenseDatamodelTableIsHidden" ) -SisenseDatamodelTable.SISENSE_SCHEDULE = KeywordField( - "sisenseSchedule", "sisenseSchedule" +SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_SCHEDULE = KeywordField( + "sisenseDatamodelTableSchedule", "sisenseDatamodelTableSchedule" ) -SisenseDatamodelTable.SISENSE_LIVE_QUERY_SETTINGS = KeywordField( - "sisenseLiveQuerySettings", "sisenseLiveQuerySettings" +SisenseDatamodelTable.SISENSE_DATAMODEL_TABLE_LIVE_QUERY_SETTINGS = KeywordField( + "sisenseDatamodelTableLiveQuerySettings", "sisenseDatamodelTableLiveQuerySettings" ) SisenseDatamodelTable.CATALOG_DATASET_GUID = KeywordField( "catalogDatasetGuid", "catalogDatasetGuid" diff --git a/pyatlan_v9/model/assets/sisense_related.py b/pyatlan_v9/model/assets/sisense_related.py index 20d16e28f..802b49d79 100644 --- a/pyatlan_v9/model/assets/sisense_related.py +++ b/pyatlan_v9/model/assets/sisense_related.py @@ -57,7 +57,7 @@ class RelatedSisenseDashboard(RelatedSisense): sisense_dashboard_folder_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the folder in which this dashboard exists.""" - sisense_widget_count: Union[int, None, UnsetType] = UNSET + sisense_dashboard_widget_count: Union[int, None, UnsetType] = UNSET """Number of widgets in this dashboard.""" def __post_init__(self) -> None: @@ -76,22 +76,22 @@ class RelatedSisenseDatamodel(RelatedSisense): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SisenseDatamodel" so it serializes correctly - sisense_table_count: Union[int, None, UnsetType] = UNSET + sisense_datamodel_table_count: Union[int, None, UnsetType] = UNSET """Number of tables in this datamodel.""" sisense_datamodel_server: Union[str, None, UnsetType] = UNSET """Hostname of the server on which this datamodel was created.""" - sisense_revision: Union[str, None, UnsetType] = UNSET + sisense_datamodel_revision: Union[str, None, UnsetType] = UNSET """Revision of this datamodel.""" - sisense_last_build_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_build_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last built, in milliseconds.""" - sisense_last_successful_build_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_successful_build_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last built successfully, in milliseconds.""" - sisense_last_publish_time: Union[int, None, UnsetType] = UNSET + sisense_datamodel_last_publish_time: Union[int, None, UnsetType] = UNSET """Time (epoch) when this datamodel was last published, in milliseconds.""" sisense_datamodel_type: Union[str, None, UnsetType] = UNSET @@ -119,25 +119,25 @@ class RelatedSisenseDatamodelTable(RelatedSisense): sisense_datamodel_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the datamodel in which this datamodel table exists.""" - sisense_column_count: Union[int, None, UnsetType] = UNSET + sisense_datamodel_table_column_count: Union[int, None, UnsetType] = UNSET """Number of columns present in this datamodel table.""" - sisense_type: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_type: Union[str, None, UnsetType] = UNSET """Type of this datamodel table, for example: 'base' for regular tables, 'custom' for SQL expression-based tables.""" sisense_datamodel_table_expression: Union[str, None, UnsetType] = UNSET """SQL expression of this datamodel table.""" - sisense_is_materialized: Union[bool, None, UnsetType] = UNSET + sisense_datamodel_table_is_materialized: Union[bool, None, UnsetType] = UNSET """Whether this datamodel table is materialised (true) or not (false).""" - sisense_is_hidden: Union[bool, None, UnsetType] = UNSET + sisense_datamodel_table_is_hidden: Union[bool, None, UnsetType] = UNSET """Whether this datamodel table is hidden in Sisense (true) or not (false).""" - sisense_schedule: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_schedule: Union[str, None, UnsetType] = UNSET """JSON specifying the refresh schedule of this datamodel table.""" - sisense_live_query_settings: Union[str, None, UnsetType] = UNSET + sisense_datamodel_table_live_query_settings: Union[str, None, UnsetType] = UNSET """JSON specifying the LiveQuery settings of this datamodel table.""" def __post_init__(self) -> None: @@ -175,13 +175,13 @@ class RelatedSisenseWidget(RelatedSisense): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SisenseWidget" so it serializes correctly - sisense_column_count: Union[int, None, UnsetType] = UNSET + sisense_widget_column_count: Union[int, None, UnsetType] = UNSET """Number of columns used in this widget.""" - sisense_sub_type: Union[str, None, UnsetType] = UNSET + sisense_widget_sub_type: Union[str, None, UnsetType] = UNSET """Subtype of this widget.""" - sisense_size: Union[str, None, UnsetType] = UNSET + sisense_widget_size: Union[str, None, UnsetType] = UNSET """Size of this widget.""" sisense_widget_dashboard_qualified_name: Union[str, None, UnsetType] = UNSET diff --git a/pyatlan_v9/model/assets/sisense_widget.py b/pyatlan_v9/model/assets/sisense_widget.py index 7c638ab97..1271bd163 100644 --- a/pyatlan_v9/model/assets/sisense_widget.py +++ b/pyatlan_v9/model/assets/sisense_widget.py @@ -72,9 +72,9 @@ class SisenseWidget(Asset): Instance of a Sisense widget in Atlan. """ - SISENSE_COLUMN_COUNT: ClassVar[Any] = None - SISENSE_SUB_TYPE: ClassVar[Any] = None - SISENSE_SIZE: ClassVar[Any] = None + SISENSE_WIDGET_COLUMN_COUNT: ClassVar[Any] = None + SISENSE_WIDGET_SUB_TYPE: ClassVar[Any] = None + SISENSE_WIDGET_SIZE: ClassVar[Any] = None SISENSE_WIDGET_DASHBOARD_QUALIFIED_NAME: ClassVar[Any] = None SISENSE_WIDGET_FOLDER_QUALIFIED_NAME: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None @@ -115,13 +115,13 @@ class SisenseWidget(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - sisense_column_count: Union[int, None, UnsetType] = UNSET + sisense_widget_column_count: Union[int, None, UnsetType] = UNSET """Number of columns used in this widget.""" - sisense_sub_type: Union[str, None, UnsetType] = UNSET + sisense_widget_sub_type: Union[str, None, UnsetType] = UNSET """Subtype of this widget.""" - sisense_size: Union[str, None, UnsetType] = UNSET + sisense_widget_size: Union[str, None, UnsetType] = UNSET """Size of this widget.""" sisense_widget_dashboard_qualified_name: Union[str, None, UnsetType] = UNSET @@ -385,13 +385,13 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SisenseWidg class SisenseWidgetAttributes(AssetAttributes): """SisenseWidget-specific attributes for nested API format.""" - sisense_column_count: Union[int, None, UnsetType] = UNSET + sisense_widget_column_count: Union[int, None, UnsetType] = UNSET """Number of columns used in this widget.""" - sisense_sub_type: Union[str, None, UnsetType] = UNSET + sisense_widget_sub_type: Union[str, None, UnsetType] = UNSET """Subtype of this widget.""" - sisense_size: Union[str, None, UnsetType] = UNSET + sisense_widget_size: Union[str, None, UnsetType] = UNSET """Size of this widget.""" sisense_widget_dashboard_qualified_name: Union[str, None, UnsetType] = UNSET @@ -593,9 +593,9 @@ def _populate_sisense_widget_attrs( ) -> None: """Populate SisenseWidget-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sisense_column_count = obj.sisense_column_count - attrs.sisense_sub_type = obj.sisense_sub_type - attrs.sisense_size = obj.sisense_size + attrs.sisense_widget_column_count = obj.sisense_widget_column_count + attrs.sisense_widget_sub_type = obj.sisense_widget_sub_type + attrs.sisense_widget_size = obj.sisense_widget_size attrs.sisense_widget_dashboard_qualified_name = ( obj.sisense_widget_dashboard_qualified_name ) @@ -608,9 +608,9 @@ def _populate_sisense_widget_attrs( def _extract_sisense_widget_attrs(attrs: SisenseWidgetAttributes) -> dict: """Extract all SisenseWidget attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sisense_column_count"] = attrs.sisense_column_count - result["sisense_sub_type"] = attrs.sisense_sub_type - result["sisense_size"] = attrs.sisense_size + result["sisense_widget_column_count"] = attrs.sisense_widget_column_count + result["sisense_widget_sub_type"] = attrs.sisense_widget_sub_type + result["sisense_widget_size"] = attrs.sisense_widget_size result["sisense_widget_dashboard_qualified_name"] = ( attrs.sisense_widget_dashboard_qualified_name ) @@ -731,11 +731,15 @@ def _sisense_widget_from_nested_bytes(data: bytes, serde: Serde) -> SisenseWidge RelationField, ) -SisenseWidget.SISENSE_COLUMN_COUNT = NumericField( - "sisenseColumnCount", "sisenseColumnCount" +SisenseWidget.SISENSE_WIDGET_COLUMN_COUNT = NumericField( + "sisenseWidgetColumnCount", "sisenseWidgetColumnCount" +) +SisenseWidget.SISENSE_WIDGET_SUB_TYPE = KeywordField( + "sisenseWidgetSubType", "sisenseWidgetSubType" +) +SisenseWidget.SISENSE_WIDGET_SIZE = KeywordField( + "sisenseWidgetSize", "sisenseWidgetSize" ) -SisenseWidget.SISENSE_SUB_TYPE = KeywordField("sisenseSubType", "sisenseSubType") -SisenseWidget.SISENSE_SIZE = KeywordField("sisenseSize", "sisenseSize") SisenseWidget.SISENSE_WIDGET_DASHBOARD_QUALIFIED_NAME = KeywordTextField( "sisenseWidgetDashboardQualifiedName", "sisenseWidgetDashboardQualifiedName", diff --git a/pyatlan_v9/model/assets/snowflake_ai_model_version.py b/pyatlan_v9/model/assets/snowflake_ai_model_version.py index ebefc54e5..5e6a2b247 100644 --- a/pyatlan_v9/model/assets/snowflake_ai_model_version.py +++ b/pyatlan_v9/model/assets/snowflake_ai_model_version.py @@ -83,11 +83,11 @@ class SnowflakeAIModelVersion(Asset): Instance of an ai model version in snowflake. """ - SNOWFLAKE_NAME: ClassVar[Any] = None - SNOWFLAKE_TYPE: ClassVar[Any] = None - SNOWFLAKE_ALIASES: ClassVar[Any] = None - SNOWFLAKE_METRICS: ClassVar[Any] = None - SNOWFLAKE_FUNCTIONS: ClassVar[Any] = None + SNOWFLAKE_AI_MODEL_VERSION_NAME: ClassVar[Any] = None + SNOWFLAKE_AI_MODEL_VERSION_TYPE: ClassVar[Any] = None + SNOWFLAKE_AI_MODEL_VERSION_ALIASES: ClassVar[Any] = None + SNOWFLAKE_AI_MODEL_VERSION_METRICS: ClassVar[Any] = None + SNOWFLAKE_AI_MODEL_VERSION_FUNCTIONS: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -178,19 +178,29 @@ class SnowflakeAIModelVersion(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - snowflake_name: Union[str, None, UnsetType] = UNSET + snowflake_ai_model_version_name: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="snowflakeAIModelVersionName" + ) """Version part of the model name.""" - snowflake_type: Union[str, None, UnsetType] = UNSET + snowflake_ai_model_version_type: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="snowflakeAIModelVersionType" + ) """The type of the model version.""" - snowflake_aliases: Union[List[str], None, UnsetType] = UNSET + snowflake_ai_model_version_aliases: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionAliases") + ) """The aliases for the model version.""" - snowflake_metrics: Union[Dict[str, str], None, UnsetType] = UNSET + snowflake_ai_model_version_metrics: Union[Dict[str, str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionMetrics") + ) """Metrics for an individual experiment.""" - snowflake_functions: Union[List[str], None, UnsetType] = UNSET + snowflake_ai_model_version_functions: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionFunctions") + ) """Functions used in the model version.""" query_count: Union[int, None, UnsetType] = UNSET @@ -642,19 +652,29 @@ def from_json( class SnowflakeAIModelVersionAttributes(AssetAttributes): """SnowflakeAIModelVersion-specific attributes for nested API format.""" - snowflake_name: Union[str, None, UnsetType] = UNSET + snowflake_ai_model_version_name: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="snowflakeAIModelVersionName" + ) """Version part of the model name.""" - snowflake_type: Union[str, None, UnsetType] = UNSET + snowflake_ai_model_version_type: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="snowflakeAIModelVersionType" + ) """The type of the model version.""" - snowflake_aliases: Union[List[str], None, UnsetType] = UNSET + snowflake_ai_model_version_aliases: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionAliases") + ) """The aliases for the model version.""" - snowflake_metrics: Union[Dict[str, str], None, UnsetType] = UNSET + snowflake_ai_model_version_metrics: Union[Dict[str, str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionMetrics") + ) """Metrics for an individual experiment.""" - snowflake_functions: Union[List[str], None, UnsetType] = UNSET + snowflake_ai_model_version_functions: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionFunctions") + ) """Functions used in the model version.""" query_count: Union[int, None, UnsetType] = UNSET @@ -1041,11 +1061,13 @@ def _populate_snowflake_ai_model_version_attrs( ) -> None: """Populate SnowflakeAIModelVersion-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.snowflake_name = obj.snowflake_name - attrs.snowflake_type = obj.snowflake_type - attrs.snowflake_aliases = obj.snowflake_aliases - attrs.snowflake_metrics = obj.snowflake_metrics - attrs.snowflake_functions = obj.snowflake_functions + attrs.snowflake_ai_model_version_name = obj.snowflake_ai_model_version_name + attrs.snowflake_ai_model_version_type = obj.snowflake_ai_model_version_type + attrs.snowflake_ai_model_version_aliases = obj.snowflake_ai_model_version_aliases + attrs.snowflake_ai_model_version_metrics = obj.snowflake_ai_model_version_metrics + attrs.snowflake_ai_model_version_functions = ( + obj.snowflake_ai_model_version_functions + ) attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1105,11 +1127,17 @@ def _extract_snowflake_ai_model_version_attrs( ) -> dict: """Extract all SnowflakeAIModelVersion attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["snowflake_name"] = attrs.snowflake_name - result["snowflake_type"] = attrs.snowflake_type - result["snowflake_aliases"] = attrs.snowflake_aliases - result["snowflake_metrics"] = attrs.snowflake_metrics - result["snowflake_functions"] = attrs.snowflake_functions + result["snowflake_ai_model_version_name"] = attrs.snowflake_ai_model_version_name + result["snowflake_ai_model_version_type"] = attrs.snowflake_ai_model_version_type + result["snowflake_ai_model_version_aliases"] = ( + attrs.snowflake_ai_model_version_aliases + ) + result["snowflake_ai_model_version_metrics"] = ( + attrs.snowflake_ai_model_version_metrics + ) + result["snowflake_ai_model_version_functions"] = ( + attrs.snowflake_ai_model_version_functions + ) result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1294,16 +1322,20 @@ def _snowflake_ai_model_version_from_nested_bytes( RelationField, ) -SnowflakeAIModelVersion.SNOWFLAKE_NAME = KeywordField("snowflakeName", "snowflakeName") -SnowflakeAIModelVersion.SNOWFLAKE_TYPE = KeywordField("snowflakeType", "snowflakeType") -SnowflakeAIModelVersion.SNOWFLAKE_ALIASES = KeywordField( - "snowflakeAliases", "snowflakeAliases" +SnowflakeAIModelVersion.SNOWFLAKE_AI_MODEL_VERSION_NAME = KeywordField( + "snowflakeAIModelVersionName", "snowflakeAIModelVersionName" +) +SnowflakeAIModelVersion.SNOWFLAKE_AI_MODEL_VERSION_TYPE = KeywordField( + "snowflakeAIModelVersionType", "snowflakeAIModelVersionType" +) +SnowflakeAIModelVersion.SNOWFLAKE_AI_MODEL_VERSION_ALIASES = KeywordField( + "snowflakeAIModelVersionAliases", "snowflakeAIModelVersionAliases" ) -SnowflakeAIModelVersion.SNOWFLAKE_METRICS = KeywordField( - "snowflakeMetrics", "snowflakeMetrics" +SnowflakeAIModelVersion.SNOWFLAKE_AI_MODEL_VERSION_METRICS = KeywordField( + "snowflakeAIModelVersionMetrics", "snowflakeAIModelVersionMetrics" ) -SnowflakeAIModelVersion.SNOWFLAKE_FUNCTIONS = KeywordField( - "snowflakeFunctions", "snowflakeFunctions" +SnowflakeAIModelVersion.SNOWFLAKE_AI_MODEL_VERSION_FUNCTIONS = KeywordField( + "snowflakeAIModelVersionFunctions", "snowflakeAIModelVersionFunctions" ) SnowflakeAIModelVersion.QUERY_COUNT = NumericField("queryCount", "queryCount") SnowflakeAIModelVersion.QUERY_USER_COUNT = NumericField( diff --git a/pyatlan_v9/model/assets/snowflake_listing.py b/pyatlan_v9/model/assets/snowflake_listing.py index 2dbf7ba00..e1211b7b4 100644 --- a/pyatlan_v9/model/assets/snowflake_listing.py +++ b/pyatlan_v9/model/assets/snowflake_listing.py @@ -82,22 +82,22 @@ class SnowflakeListing(Asset): Instance of a Snowflake listing in Atlan. """ - SNOWFLAKE_TITLE: ClassVar[Any] = None - SNOWFLAKE_SUBTITLE: ClassVar[Any] = None - SNOWFLAKE_UNIFORM_LISTING_LOCATOR: ClassVar[Any] = None - SNOWFLAKE_STATE: ClassVar[Any] = None - SNOWFLAKE_DISTRIBUTION: ClassVar[Any] = None - SNOWFLAKE_IS_SHARE: ClassVar[Any] = None - SNOWFLAKE_IS_APPLICATION: ClassVar[Any] = None - SNOWFLAKE_APPLICATION_PACKAGE: ClassVar[Any] = None - SNOWFLAKE_CATEGORIES: ClassVar[Any] = None - SNOWFLAKE_DATA_ATTRIBUTES: ClassVar[Any] = None - SNOWFLAKE_TERMS: ClassVar[Any] = None - SNOWFLAKE_PROFILE: ClassVar[Any] = None - SNOWFLAKE_SUPPORT_CONTACT: ClassVar[Any] = None - SNOWFLAKE_RESHARING: ClassVar[Any] = None - SNOWFLAKE_AUTO_FULFILLMENT: ClassVar[Any] = None - SNOWFLAKE_TARGETS: ClassVar[Any] = None + SNOWFLAKE_LISTING_TITLE: ClassVar[Any] = None + SNOWFLAKE_LISTING_SUBTITLE: ClassVar[Any] = None + SNOWFLAKE_LISTING_UNIFORM_LISTING_LOCATOR: ClassVar[Any] = None + SNOWFLAKE_LISTING_STATE: ClassVar[Any] = None + SNOWFLAKE_LISTING_DISTRIBUTION: ClassVar[Any] = None + SNOWFLAKE_LISTING_IS_SHARE: ClassVar[Any] = None + SNOWFLAKE_LISTING_IS_APPLICATION: ClassVar[Any] = None + SNOWFLAKE_LISTING_APPLICATION_PACKAGE: ClassVar[Any] = None + SNOWFLAKE_LISTING_CATEGORIES: ClassVar[Any] = None + SNOWFLAKE_LISTING_DATA_ATTRIBUTES: ClassVar[Any] = None + SNOWFLAKE_LISTING_TERMS: ClassVar[Any] = None + SNOWFLAKE_LISTING_PROFILE: ClassVar[Any] = None + SNOWFLAKE_LISTING_SUPPORT_CONTACT: ClassVar[Any] = None + SNOWFLAKE_LISTING_RESHARING: ClassVar[Any] = None + SNOWFLAKE_LISTING_AUTO_FULFILLMENT: ClassVar[Any] = None + SNOWFLAKE_LISTING_TARGETS: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -177,52 +177,52 @@ class SnowflakeListing(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - snowflake_title: Union[str, None, UnsetType] = UNSET + snowflake_listing_title: Union[str, None, UnsetType] = UNSET """Snowflake's source-truthful title for the listing. Distinct from `name` (the non-human-readable Snowflake identifier).""" - snowflake_subtitle: Union[str, None, UnsetType] = UNSET + snowflake_listing_subtitle: Union[str, None, UnsetType] = UNSET """Marketplace subtitle of the listing.""" - snowflake_uniform_listing_locator: Union[str, None, UnsetType] = UNSET + snowflake_listing_uniform_listing_locator: Union[str, None, UnsetType] = UNSET """Uniform Listing Locator (ULL) of the listing.""" - snowflake_state: Union[str, None, UnsetType] = UNSET + snowflake_listing_state: Union[str, None, UnsetType] = UNSET """Publication state of the listing.""" - snowflake_distribution: Union[str, None, UnsetType] = UNSET + snowflake_listing_distribution: Union[str, None, UnsetType] = UNSET """Distribution scope of the listing (organization-internal vs external marketplace/exchange).""" - snowflake_is_share: Union[bool, None, UnsetType] = UNSET + snowflake_listing_is_share: Union[bool, None, UnsetType] = UNSET """Whether this listing wraps a data share (true) or not (false).""" - snowflake_is_application: Union[bool, None, UnsetType] = UNSET + snowflake_listing_is_application: Union[bool, None, UnsetType] = UNSET """Whether this listing wraps a Snowflake Native App (true) or not (false).""" - snowflake_application_package: Union[str, None, UnsetType] = UNSET + snowflake_listing_application_package: Union[str, None, UnsetType] = UNSET """Application package name when this listing wraps a Native App.""" - snowflake_categories: Union[List[str], None, UnsetType] = UNSET + snowflake_listing_categories: Union[List[str], None, UnsetType] = UNSET """Discovery categories assigned to the listing.""" - snowflake_data_attributes: Union[str, None, UnsetType] = UNSET + snowflake_listing_data_attributes: Union[str, None, UnsetType] = UNSET """Data properties of the listing (refresh rate, history, freshness window) as a JSON blob emitted by Snowflake.""" - snowflake_terms: Union[str, None, UnsetType] = UNSET + snowflake_listing_terms: Union[str, None, UnsetType] = UNSET """Terms of service for the listing.""" - snowflake_profile: Union[str, None, UnsetType] = UNSET + snowflake_listing_profile: Union[str, None, UnsetType] = UNSET """External Snowflake provider profile attached to the listing.""" - snowflake_support_contact: Union[str, None, UnsetType] = UNSET + snowflake_listing_support_contact: Union[str, None, UnsetType] = UNSET """Contact info for the listing.""" - snowflake_resharing: Union[str, None, UnsetType] = UNSET + snowflake_listing_resharing: Union[str, None, UnsetType] = UNSET """Resharing configuration for the listing.""" - snowflake_auto_fulfillment: Union[str, None, UnsetType] = UNSET + snowflake_listing_auto_fulfillment: Union[str, None, UnsetType] = UNSET """Auto-fulfillment configuration for the listing.""" - snowflake_targets: Union[str, None, UnsetType] = UNSET + snowflake_listing_targets: Union[str, None, UnsetType] = UNSET """Distribution targets of the listing (accounts, regions) as a JSON blob emitted by Snowflake.""" query_count: Union[int, None, UnsetType] = UNSET @@ -608,52 +608,52 @@ def from_json( class SnowflakeListingAttributes(AssetAttributes): """SnowflakeListing-specific attributes for nested API format.""" - snowflake_title: Union[str, None, UnsetType] = UNSET + snowflake_listing_title: Union[str, None, UnsetType] = UNSET """Snowflake's source-truthful title for the listing. Distinct from `name` (the non-human-readable Snowflake identifier).""" - snowflake_subtitle: Union[str, None, UnsetType] = UNSET + snowflake_listing_subtitle: Union[str, None, UnsetType] = UNSET """Marketplace subtitle of the listing.""" - snowflake_uniform_listing_locator: Union[str, None, UnsetType] = UNSET + snowflake_listing_uniform_listing_locator: Union[str, None, UnsetType] = UNSET """Uniform Listing Locator (ULL) of the listing.""" - snowflake_state: Union[str, None, UnsetType] = UNSET + snowflake_listing_state: Union[str, None, UnsetType] = UNSET """Publication state of the listing.""" - snowflake_distribution: Union[str, None, UnsetType] = UNSET + snowflake_listing_distribution: Union[str, None, UnsetType] = UNSET """Distribution scope of the listing (organization-internal vs external marketplace/exchange).""" - snowflake_is_share: Union[bool, None, UnsetType] = UNSET + snowflake_listing_is_share: Union[bool, None, UnsetType] = UNSET """Whether this listing wraps a data share (true) or not (false).""" - snowflake_is_application: Union[bool, None, UnsetType] = UNSET + snowflake_listing_is_application: Union[bool, None, UnsetType] = UNSET """Whether this listing wraps a Snowflake Native App (true) or not (false).""" - snowflake_application_package: Union[str, None, UnsetType] = UNSET + snowflake_listing_application_package: Union[str, None, UnsetType] = UNSET """Application package name when this listing wraps a Native App.""" - snowflake_categories: Union[List[str], None, UnsetType] = UNSET + snowflake_listing_categories: Union[List[str], None, UnsetType] = UNSET """Discovery categories assigned to the listing.""" - snowflake_data_attributes: Union[str, None, UnsetType] = UNSET + snowflake_listing_data_attributes: Union[str, None, UnsetType] = UNSET """Data properties of the listing (refresh rate, history, freshness window) as a JSON blob emitted by Snowflake.""" - snowflake_terms: Union[str, None, UnsetType] = UNSET + snowflake_listing_terms: Union[str, None, UnsetType] = UNSET """Terms of service for the listing.""" - snowflake_profile: Union[str, None, UnsetType] = UNSET + snowflake_listing_profile: Union[str, None, UnsetType] = UNSET """External Snowflake provider profile attached to the listing.""" - snowflake_support_contact: Union[str, None, UnsetType] = UNSET + snowflake_listing_support_contact: Union[str, None, UnsetType] = UNSET """Contact info for the listing.""" - snowflake_resharing: Union[str, None, UnsetType] = UNSET + snowflake_listing_resharing: Union[str, None, UnsetType] = UNSET """Resharing configuration for the listing.""" - snowflake_auto_fulfillment: Union[str, None, UnsetType] = UNSET + snowflake_listing_auto_fulfillment: Union[str, None, UnsetType] = UNSET """Auto-fulfillment configuration for the listing.""" - snowflake_targets: Union[str, None, UnsetType] = UNSET + snowflake_listing_targets: Union[str, None, UnsetType] = UNSET """Distribution targets of the listing (accounts, regions) as a JSON blob emitted by Snowflake.""" query_count: Union[int, None, UnsetType] = UNSET @@ -990,22 +990,26 @@ def _populate_snowflake_listing_attrs( ) -> None: """Populate SnowflakeListing-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.snowflake_title = obj.snowflake_title - attrs.snowflake_subtitle = obj.snowflake_subtitle - attrs.snowflake_uniform_listing_locator = obj.snowflake_uniform_listing_locator - attrs.snowflake_state = obj.snowflake_state - attrs.snowflake_distribution = obj.snowflake_distribution - attrs.snowflake_is_share = obj.snowflake_is_share - attrs.snowflake_is_application = obj.snowflake_is_application - attrs.snowflake_application_package = obj.snowflake_application_package - attrs.snowflake_categories = obj.snowflake_categories - attrs.snowflake_data_attributes = obj.snowflake_data_attributes - attrs.snowflake_terms = obj.snowflake_terms - attrs.snowflake_profile = obj.snowflake_profile - attrs.snowflake_support_contact = obj.snowflake_support_contact - attrs.snowflake_resharing = obj.snowflake_resharing - attrs.snowflake_auto_fulfillment = obj.snowflake_auto_fulfillment - attrs.snowflake_targets = obj.snowflake_targets + attrs.snowflake_listing_title = obj.snowflake_listing_title + attrs.snowflake_listing_subtitle = obj.snowflake_listing_subtitle + attrs.snowflake_listing_uniform_listing_locator = ( + obj.snowflake_listing_uniform_listing_locator + ) + attrs.snowflake_listing_state = obj.snowflake_listing_state + attrs.snowflake_listing_distribution = obj.snowflake_listing_distribution + attrs.snowflake_listing_is_share = obj.snowflake_listing_is_share + attrs.snowflake_listing_is_application = obj.snowflake_listing_is_application + attrs.snowflake_listing_application_package = ( + obj.snowflake_listing_application_package + ) + attrs.snowflake_listing_categories = obj.snowflake_listing_categories + attrs.snowflake_listing_data_attributes = obj.snowflake_listing_data_attributes + attrs.snowflake_listing_terms = obj.snowflake_listing_terms + attrs.snowflake_listing_profile = obj.snowflake_listing_profile + attrs.snowflake_listing_support_contact = obj.snowflake_listing_support_contact + attrs.snowflake_listing_resharing = obj.snowflake_listing_resharing + attrs.snowflake_listing_auto_fulfillment = obj.snowflake_listing_auto_fulfillment + attrs.snowflake_listing_targets = obj.snowflake_listing_targets attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1049,24 +1053,32 @@ def _populate_snowflake_listing_attrs( def _extract_snowflake_listing_attrs(attrs: SnowflakeListingAttributes) -> dict: """Extract all SnowflakeListing attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["snowflake_title"] = attrs.snowflake_title - result["snowflake_subtitle"] = attrs.snowflake_subtitle - result["snowflake_uniform_listing_locator"] = ( - attrs.snowflake_uniform_listing_locator + result["snowflake_listing_title"] = attrs.snowflake_listing_title + result["snowflake_listing_subtitle"] = attrs.snowflake_listing_subtitle + result["snowflake_listing_uniform_listing_locator"] = ( + attrs.snowflake_listing_uniform_listing_locator + ) + result["snowflake_listing_state"] = attrs.snowflake_listing_state + result["snowflake_listing_distribution"] = attrs.snowflake_listing_distribution + result["snowflake_listing_is_share"] = attrs.snowflake_listing_is_share + result["snowflake_listing_is_application"] = attrs.snowflake_listing_is_application + result["snowflake_listing_application_package"] = ( + attrs.snowflake_listing_application_package + ) + result["snowflake_listing_categories"] = attrs.snowflake_listing_categories + result["snowflake_listing_data_attributes"] = ( + attrs.snowflake_listing_data_attributes + ) + result["snowflake_listing_terms"] = attrs.snowflake_listing_terms + result["snowflake_listing_profile"] = attrs.snowflake_listing_profile + result["snowflake_listing_support_contact"] = ( + attrs.snowflake_listing_support_contact ) - result["snowflake_state"] = attrs.snowflake_state - result["snowflake_distribution"] = attrs.snowflake_distribution - result["snowflake_is_share"] = attrs.snowflake_is_share - result["snowflake_is_application"] = attrs.snowflake_is_application - result["snowflake_application_package"] = attrs.snowflake_application_package - result["snowflake_categories"] = attrs.snowflake_categories - result["snowflake_data_attributes"] = attrs.snowflake_data_attributes - result["snowflake_terms"] = attrs.snowflake_terms - result["snowflake_profile"] = attrs.snowflake_profile - result["snowflake_support_contact"] = attrs.snowflake_support_contact - result["snowflake_resharing"] = attrs.snowflake_resharing - result["snowflake_auto_fulfillment"] = attrs.snowflake_auto_fulfillment - result["snowflake_targets"] = attrs.snowflake_targets + result["snowflake_listing_resharing"] = attrs.snowflake_listing_resharing + result["snowflake_listing_auto_fulfillment"] = ( + attrs.snowflake_listing_auto_fulfillment + ) + result["snowflake_listing_targets"] = attrs.snowflake_listing_targets result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1229,47 +1241,53 @@ def _snowflake_listing_from_nested_bytes(data: bytes, serde: Serde) -> Snowflake RelationField, ) -SnowflakeListing.SNOWFLAKE_TITLE = KeywordField("snowflakeTitle", "snowflakeTitle") -SnowflakeListing.SNOWFLAKE_SUBTITLE = KeywordField( - "snowflakeSubtitle", "snowflakeSubtitle" +SnowflakeListing.SNOWFLAKE_LISTING_TITLE = KeywordField( + "snowflakeListingTitle", "snowflakeListingTitle" +) +SnowflakeListing.SNOWFLAKE_LISTING_SUBTITLE = KeywordField( + "snowflakeListingSubtitle", "snowflakeListingSubtitle" +) +SnowflakeListing.SNOWFLAKE_LISTING_UNIFORM_LISTING_LOCATOR = KeywordField( + "snowflakeListingUniformListingLocator", "snowflakeListingUniformListingLocator" +) +SnowflakeListing.SNOWFLAKE_LISTING_STATE = KeywordField( + "snowflakeListingState", "snowflakeListingState" ) -SnowflakeListing.SNOWFLAKE_UNIFORM_LISTING_LOCATOR = KeywordField( - "snowflakeUniformListingLocator", "snowflakeUniformListingLocator" +SnowflakeListing.SNOWFLAKE_LISTING_DISTRIBUTION = KeywordField( + "snowflakeListingDistribution", "snowflakeListingDistribution" ) -SnowflakeListing.SNOWFLAKE_STATE = KeywordField("snowflakeState", "snowflakeState") -SnowflakeListing.SNOWFLAKE_DISTRIBUTION = KeywordField( - "snowflakeDistribution", "snowflakeDistribution" +SnowflakeListing.SNOWFLAKE_LISTING_IS_SHARE = BooleanField( + "snowflakeListingIsShare", "snowflakeListingIsShare" ) -SnowflakeListing.SNOWFLAKE_IS_SHARE = BooleanField( - "snowflakeIsShare", "snowflakeIsShare" +SnowflakeListing.SNOWFLAKE_LISTING_IS_APPLICATION = BooleanField( + "snowflakeListingIsApplication", "snowflakeListingIsApplication" ) -SnowflakeListing.SNOWFLAKE_IS_APPLICATION = BooleanField( - "snowflakeIsApplication", "snowflakeIsApplication" +SnowflakeListing.SNOWFLAKE_LISTING_APPLICATION_PACKAGE = KeywordField( + "snowflakeListingApplicationPackage", "snowflakeListingApplicationPackage" ) -SnowflakeListing.SNOWFLAKE_APPLICATION_PACKAGE = KeywordField( - "snowflakeApplicationPackage", "snowflakeApplicationPackage" +SnowflakeListing.SNOWFLAKE_LISTING_CATEGORIES = KeywordField( + "snowflakeListingCategories", "snowflakeListingCategories" ) -SnowflakeListing.SNOWFLAKE_CATEGORIES = KeywordField( - "snowflakeCategories", "snowflakeCategories" +SnowflakeListing.SNOWFLAKE_LISTING_DATA_ATTRIBUTES = KeywordField( + "snowflakeListingDataAttributes", "snowflakeListingDataAttributes" ) -SnowflakeListing.SNOWFLAKE_DATA_ATTRIBUTES = KeywordField( - "snowflakeDataAttributes", "snowflakeDataAttributes" +SnowflakeListing.SNOWFLAKE_LISTING_TERMS = KeywordField( + "snowflakeListingTerms", "snowflakeListingTerms" ) -SnowflakeListing.SNOWFLAKE_TERMS = KeywordField("snowflakeTerms", "snowflakeTerms") -SnowflakeListing.SNOWFLAKE_PROFILE = KeywordField( - "snowflakeProfile", "snowflakeProfile" +SnowflakeListing.SNOWFLAKE_LISTING_PROFILE = KeywordField( + "snowflakeListingProfile", "snowflakeListingProfile" ) -SnowflakeListing.SNOWFLAKE_SUPPORT_CONTACT = KeywordField( - "snowflakeSupportContact", "snowflakeSupportContact" +SnowflakeListing.SNOWFLAKE_LISTING_SUPPORT_CONTACT = KeywordField( + "snowflakeListingSupportContact", "snowflakeListingSupportContact" ) -SnowflakeListing.SNOWFLAKE_RESHARING = KeywordField( - "snowflakeResharing", "snowflakeResharing" +SnowflakeListing.SNOWFLAKE_LISTING_RESHARING = KeywordField( + "snowflakeListingResharing", "snowflakeListingResharing" ) -SnowflakeListing.SNOWFLAKE_AUTO_FULFILLMENT = KeywordField( - "snowflakeAutoFulfillment", "snowflakeAutoFulfillment" +SnowflakeListing.SNOWFLAKE_LISTING_AUTO_FULFILLMENT = KeywordField( + "snowflakeListingAutoFulfillment", "snowflakeListingAutoFulfillment" ) -SnowflakeListing.SNOWFLAKE_TARGETS = KeywordField( - "snowflakeTargets", "snowflakeTargets" +SnowflakeListing.SNOWFLAKE_LISTING_TARGETS = KeywordField( + "snowflakeListingTargets", "snowflakeListingTargets" ) SnowflakeListing.QUERY_COUNT = NumericField("queryCount", "queryCount") SnowflakeListing.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") diff --git a/pyatlan_v9/model/assets/snowflake_related.py b/pyatlan_v9/model/assets/snowflake_related.py index 8acd9020f..4f7c1b7e8 100644 --- a/pyatlan_v9/model/assets/snowflake_related.py +++ b/pyatlan_v9/model/assets/snowflake_related.py @@ -13,6 +13,7 @@ from typing import Dict, List, Union +import msgspec from msgspec import UNSET, UnsetType from .referenceable_related import RelatedReferenceable @@ -85,7 +86,7 @@ class RelatedSnowflakePipe(RelatedSnowflake): definition: Union[str, None, UnsetType] = UNSET """SQL definition of this pipe.""" - snowflake_is_auto_ingest_enabled: Union[bool, None, UnsetType] = UNSET + snowflake_pipe_is_auto_ingest_enabled: Union[bool, None, UnsetType] = UNSET """Whether auto-ingest is enabled for this pipe (true) or not (false).""" snowflake_pipe_notification_channel_name: Union[str, None, UnsetType] = UNSET @@ -107,16 +108,16 @@ class RelatedSnowflakeStage(RelatedSnowflake): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SnowflakeStage" so it serializes correctly - snowflake_external_location: Union[str, None, UnsetType] = UNSET + snowflake_stage_external_location: Union[str, None, UnsetType] = UNSET """The URL or cloud storage path specifying the external location where the stage data files are stored. This is NULL for internal stages.""" - snowflake_external_location_region: Union[str, None, UnsetType] = UNSET + snowflake_stage_external_location_region: Union[str, None, UnsetType] = UNSET """The geographic region identifier where the external stage is located in cloud storage. This is NULL for internal stages.""" - snowflake_storage_integration: Union[str, None, UnsetType] = UNSET + snowflake_stage_storage_integration: Union[str, None, UnsetType] = UNSET """The name of the storage integration associated with the stage; NULL for internal stages or stages that do not use a storage integration.""" - snowflake_type: Union[str, None, UnsetType] = UNSET + snowflake_stage_type: Union[str, None, UnsetType] = UNSET """Categorization of the stage type in Snowflake, which can be 'Internal Named' or 'External Named', indicating whether the stage storage is within Snowflake or in external cloud storage.""" def __post_init__(self) -> None: @@ -135,19 +136,19 @@ class RelatedSnowflakeStream(RelatedSnowflake): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SnowflakeStream" so it serializes correctly - snowflake_type: Union[str, None, UnsetType] = UNSET + snowflake_stream_type: Union[str, None, UnsetType] = UNSET """Type of this stream, for example: standard, append-only, insert-only, etc.""" - snowflake_source_type: Union[str, None, UnsetType] = UNSET + snowflake_stream_source_type: Union[str, None, UnsetType] = UNSET """Type of the source of this stream.""" - snowflake_mode: Union[str, None, UnsetType] = UNSET + snowflake_stream_mode: Union[str, None, UnsetType] = UNSET """Mode of this stream.""" - snowflake_is_stale: Union[bool, None, UnsetType] = UNSET + snowflake_stream_is_stale: Union[bool, None, UnsetType] = UNSET """Whether this stream is stale (true) or not (false).""" - snowflake_stale_after: Union[int, None, UnsetType] = UNSET + snowflake_stream_stale_after: Union[int, None, UnsetType] = UNSET """Time (epoch) after which this stream will be stale, in milliseconds.""" def __post_init__(self) -> None: @@ -198,19 +199,29 @@ class RelatedSnowflakeAIModelVersion(RelatedSnowflake): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SnowflakeAIModelVersion" so it serializes correctly - snowflake_name: Union[str, None, UnsetType] = UNSET + snowflake_ai_model_version_name: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="snowflakeAIModelVersionName" + ) """Version part of the model name.""" - snowflake_type: Union[str, None, UnsetType] = UNSET + snowflake_ai_model_version_type: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="snowflakeAIModelVersionType" + ) """The type of the model version.""" - snowflake_aliases: Union[List[str], None, UnsetType] = UNSET + snowflake_ai_model_version_aliases: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionAliases") + ) """The aliases for the model version.""" - snowflake_metrics: Union[Dict[str, str], None, UnsetType] = UNSET + snowflake_ai_model_version_metrics: Union[Dict[str, str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionMetrics") + ) """Metrics for an individual experiment.""" - snowflake_functions: Union[List[str], None, UnsetType] = UNSET + snowflake_ai_model_version_functions: Union[List[str], None, UnsetType] = ( + msgspec.field(default=UNSET, name="snowflakeAIModelVersionFunctions") + ) """Functions used in the model version.""" def __post_init__(self) -> None: @@ -372,52 +383,52 @@ class RelatedSnowflakeListing(RelatedSnowflake): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SnowflakeListing" so it serializes correctly - snowflake_title: Union[str, None, UnsetType] = UNSET + snowflake_listing_title: Union[str, None, UnsetType] = UNSET """Snowflake's source-truthful title for the listing. Distinct from `name` (the non-human-readable Snowflake identifier).""" - snowflake_subtitle: Union[str, None, UnsetType] = UNSET + snowflake_listing_subtitle: Union[str, None, UnsetType] = UNSET """Marketplace subtitle of the listing.""" - snowflake_uniform_listing_locator: Union[str, None, UnsetType] = UNSET + snowflake_listing_uniform_listing_locator: Union[str, None, UnsetType] = UNSET """Uniform Listing Locator (ULL) of the listing.""" - snowflake_state: Union[str, None, UnsetType] = UNSET + snowflake_listing_state: Union[str, None, UnsetType] = UNSET """Publication state of the listing.""" - snowflake_distribution: Union[str, None, UnsetType] = UNSET + snowflake_listing_distribution: Union[str, None, UnsetType] = UNSET """Distribution scope of the listing (organization-internal vs external marketplace/exchange).""" - snowflake_is_share: Union[bool, None, UnsetType] = UNSET + snowflake_listing_is_share: Union[bool, None, UnsetType] = UNSET """Whether this listing wraps a data share (true) or not (false).""" - snowflake_is_application: Union[bool, None, UnsetType] = UNSET + snowflake_listing_is_application: Union[bool, None, UnsetType] = UNSET """Whether this listing wraps a Snowflake Native App (true) or not (false).""" - snowflake_application_package: Union[str, None, UnsetType] = UNSET + snowflake_listing_application_package: Union[str, None, UnsetType] = UNSET """Application package name when this listing wraps a Native App.""" - snowflake_categories: Union[List[str], None, UnsetType] = UNSET + snowflake_listing_categories: Union[List[str], None, UnsetType] = UNSET """Discovery categories assigned to the listing.""" - snowflake_data_attributes: Union[str, None, UnsetType] = UNSET + snowflake_listing_data_attributes: Union[str, None, UnsetType] = UNSET """Data properties of the listing (refresh rate, history, freshness window) as a JSON blob emitted by Snowflake.""" - snowflake_terms: Union[str, None, UnsetType] = UNSET + snowflake_listing_terms: Union[str, None, UnsetType] = UNSET """Terms of service for the listing.""" - snowflake_profile: Union[str, None, UnsetType] = UNSET + snowflake_listing_profile: Union[str, None, UnsetType] = UNSET """External Snowflake provider profile attached to the listing.""" - snowflake_support_contact: Union[str, None, UnsetType] = UNSET + snowflake_listing_support_contact: Union[str, None, UnsetType] = UNSET """Contact info for the listing.""" - snowflake_resharing: Union[str, None, UnsetType] = UNSET + snowflake_listing_resharing: Union[str, None, UnsetType] = UNSET """Resharing configuration for the listing.""" - snowflake_auto_fulfillment: Union[str, None, UnsetType] = UNSET + snowflake_listing_auto_fulfillment: Union[str, None, UnsetType] = UNSET """Auto-fulfillment configuration for the listing.""" - snowflake_targets: Union[str, None, UnsetType] = UNSET + snowflake_listing_targets: Union[str, None, UnsetType] = UNSET """Distribution targets of the listing (accounts, regions) as a JSON blob emitted by Snowflake.""" def __post_init__(self) -> None: @@ -436,19 +447,19 @@ class RelatedSnowflakeShare(RelatedSnowflake): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SnowflakeShare" so it serializes correctly - snowflake_kind: Union[str, None, UnsetType] = UNSET + snowflake_share_kind: Union[str, None, UnsetType] = UNSET """Direction of the share (inbound or outbound).""" - snowflake_owner_account: Union[str, None, UnsetType] = UNSET + snowflake_share_owner_account: Union[str, None, UnsetType] = UNSET """Account that owns the share. Drives the share qualified name.""" - snowflake_target_accounts: Union[List[str], None, UnsetType] = UNSET + snowflake_share_target_accounts: Union[List[str], None, UnsetType] = UNSET """Consumer accounts targeted by the share.""" - snowflake_listing_global_name: Union[str, None, UnsetType] = UNSET + snowflake_share_listing_global_name: Union[str, None, UnsetType] = UNSET """Global name of the listing this share is bound to.""" - snowflake_secure_object: Union[bool, None, UnsetType] = UNSET + snowflake_share_secure_object: Union[bool, None, UnsetType] = UNSET """Whether only secure objects are allowed in this share (true) or not (false).""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/snowflake_share.py b/pyatlan_v9/model/assets/snowflake_share.py index a7eaa5aec..9764708df 100644 --- a/pyatlan_v9/model/assets/snowflake_share.py +++ b/pyatlan_v9/model/assets/snowflake_share.py @@ -82,11 +82,11 @@ class SnowflakeShare(Asset): Instance of a Snowflake share in Atlan. """ - SNOWFLAKE_KIND: ClassVar[Any] = None - SNOWFLAKE_OWNER_ACCOUNT: ClassVar[Any] = None - SNOWFLAKE_TARGET_ACCOUNTS: ClassVar[Any] = None - SNOWFLAKE_LISTING_GLOBAL_NAME: ClassVar[Any] = None - SNOWFLAKE_SECURE_OBJECT: ClassVar[Any] = None + SNOWFLAKE_SHARE_KIND: ClassVar[Any] = None + SNOWFLAKE_SHARE_OWNER_ACCOUNT: ClassVar[Any] = None + SNOWFLAKE_SHARE_TARGET_ACCOUNTS: ClassVar[Any] = None + SNOWFLAKE_SHARE_LISTING_GLOBAL_NAME: ClassVar[Any] = None + SNOWFLAKE_SHARE_SECURE_OBJECT: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -166,19 +166,19 @@ class SnowflakeShare(Asset): SQL_INSIGHT_INCOMING_JOINS: ClassVar[Any] = None SQL_INSIGHT_BUSINESS_QUESTIONS: ClassVar[Any] = None - snowflake_kind: Union[str, None, UnsetType] = UNSET + snowflake_share_kind: Union[str, None, UnsetType] = UNSET """Direction of the share (inbound or outbound).""" - snowflake_owner_account: Union[str, None, UnsetType] = UNSET + snowflake_share_owner_account: Union[str, None, UnsetType] = UNSET """Account that owns the share. Drives the share qualified name.""" - snowflake_target_accounts: Union[List[str], None, UnsetType] = UNSET + snowflake_share_target_accounts: Union[List[str], None, UnsetType] = UNSET """Consumer accounts targeted by the share.""" - snowflake_listing_global_name: Union[str, None, UnsetType] = UNSET + snowflake_share_listing_global_name: Union[str, None, UnsetType] = UNSET """Global name of the listing this share is bound to.""" - snowflake_secure_object: Union[bool, None, UnsetType] = UNSET + snowflake_share_secure_object: Union[bool, None, UnsetType] = UNSET """Whether only secure objects are allowed in this share (true) or not (false).""" query_count: Union[int, None, UnsetType] = UNSET @@ -569,19 +569,19 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SnowflakeSh class SnowflakeShareAttributes(AssetAttributes): """SnowflakeShare-specific attributes for nested API format.""" - snowflake_kind: Union[str, None, UnsetType] = UNSET + snowflake_share_kind: Union[str, None, UnsetType] = UNSET """Direction of the share (inbound or outbound).""" - snowflake_owner_account: Union[str, None, UnsetType] = UNSET + snowflake_share_owner_account: Union[str, None, UnsetType] = UNSET """Account that owns the share. Drives the share qualified name.""" - snowflake_target_accounts: Union[List[str], None, UnsetType] = UNSET + snowflake_share_target_accounts: Union[List[str], None, UnsetType] = UNSET """Consumer accounts targeted by the share.""" - snowflake_listing_global_name: Union[str, None, UnsetType] = UNSET + snowflake_share_listing_global_name: Union[str, None, UnsetType] = UNSET """Global name of the listing this share is bound to.""" - snowflake_secure_object: Union[bool, None, UnsetType] = UNSET + snowflake_share_secure_object: Union[bool, None, UnsetType] = UNSET """Whether only secure objects are allowed in this share (true) or not (false).""" query_count: Union[int, None, UnsetType] = UNSET @@ -918,11 +918,11 @@ def _populate_snowflake_share_attrs( ) -> None: """Populate SnowflakeShare-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.snowflake_kind = obj.snowflake_kind - attrs.snowflake_owner_account = obj.snowflake_owner_account - attrs.snowflake_target_accounts = obj.snowflake_target_accounts - attrs.snowflake_listing_global_name = obj.snowflake_listing_global_name - attrs.snowflake_secure_object = obj.snowflake_secure_object + attrs.snowflake_share_kind = obj.snowflake_share_kind + attrs.snowflake_share_owner_account = obj.snowflake_share_owner_account + attrs.snowflake_share_target_accounts = obj.snowflake_share_target_accounts + attrs.snowflake_share_listing_global_name = obj.snowflake_share_listing_global_name + attrs.snowflake_share_secure_object = obj.snowflake_share_secure_object attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -966,11 +966,13 @@ def _populate_snowflake_share_attrs( def _extract_snowflake_share_attrs(attrs: SnowflakeShareAttributes) -> dict: """Extract all SnowflakeShare attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["snowflake_kind"] = attrs.snowflake_kind - result["snowflake_owner_account"] = attrs.snowflake_owner_account - result["snowflake_target_accounts"] = attrs.snowflake_target_accounts - result["snowflake_listing_global_name"] = attrs.snowflake_listing_global_name - result["snowflake_secure_object"] = attrs.snowflake_secure_object + result["snowflake_share_kind"] = attrs.snowflake_share_kind + result["snowflake_share_owner_account"] = attrs.snowflake_share_owner_account + result["snowflake_share_target_accounts"] = attrs.snowflake_share_target_accounts + result["snowflake_share_listing_global_name"] = ( + attrs.snowflake_share_listing_global_name + ) + result["snowflake_share_secure_object"] = attrs.snowflake_share_secure_object result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1131,18 +1133,20 @@ def _snowflake_share_from_nested_bytes(data: bytes, serde: Serde) -> SnowflakeSh RelationField, ) -SnowflakeShare.SNOWFLAKE_KIND = KeywordField("snowflakeKind", "snowflakeKind") -SnowflakeShare.SNOWFLAKE_OWNER_ACCOUNT = KeywordField( - "snowflakeOwnerAccount", "snowflakeOwnerAccount" +SnowflakeShare.SNOWFLAKE_SHARE_KIND = KeywordField( + "snowflakeShareKind", "snowflakeShareKind" +) +SnowflakeShare.SNOWFLAKE_SHARE_OWNER_ACCOUNT = KeywordField( + "snowflakeShareOwnerAccount", "snowflakeShareOwnerAccount" ) -SnowflakeShare.SNOWFLAKE_TARGET_ACCOUNTS = KeywordField( - "snowflakeTargetAccounts", "snowflakeTargetAccounts" +SnowflakeShare.SNOWFLAKE_SHARE_TARGET_ACCOUNTS = KeywordField( + "snowflakeShareTargetAccounts", "snowflakeShareTargetAccounts" ) -SnowflakeShare.SNOWFLAKE_LISTING_GLOBAL_NAME = KeywordField( - "snowflakeListingGlobalName", "snowflakeListingGlobalName" +SnowflakeShare.SNOWFLAKE_SHARE_LISTING_GLOBAL_NAME = KeywordField( + "snowflakeShareListingGlobalName", "snowflakeShareListingGlobalName" ) -SnowflakeShare.SNOWFLAKE_SECURE_OBJECT = BooleanField( - "snowflakeSecureObject", "snowflakeSecureObject" +SnowflakeShare.SNOWFLAKE_SHARE_SECURE_OBJECT = BooleanField( + "snowflakeShareSecureObject", "snowflakeShareSecureObject" ) SnowflakeShare.QUERY_COUNT = NumericField("queryCount", "queryCount") SnowflakeShare.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") diff --git a/pyatlan_v9/model/assets/soda_check.py b/pyatlan_v9/model/assets/soda_check.py index 4f63d5206..283e74c06 100644 --- a/pyatlan_v9/model/assets/soda_check.py +++ b/pyatlan_v9/model/assets/soda_check.py @@ -67,12 +67,12 @@ class SodaCheck(Asset): Instance of a Soda check in Atlan. """ - SODA_ID: ClassVar[Any] = None - SODA_EVALUATION_STATUS: ClassVar[Any] = None + SODA_CHECK_ID: ClassVar[Any] = None + SODA_CHECK_EVALUATION_STATUS: ClassVar[Any] = None SODA_CHECK_DEFINITION: ClassVar[Any] = None - SODA_LAST_SCAN_AT: ClassVar[Any] = None - SODA_INCIDENT_COUNT: ClassVar[Any] = None - SODA_LINKED_ASSET_QUALIFIED_NAME: ClassVar[Any] = None + SODA_CHECK_LAST_SCAN_AT: ClassVar[Any] = None + SODA_CHECK_INCIDENT_COUNT: ClassVar[Any] = None + SODA_CHECK_LINKED_ASSET_QUALIFIED_NAME: ClassVar[Any] = None DQ_IS_PART_OF_CONTRACT: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None @@ -111,22 +111,22 @@ class SodaCheck(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - soda_id: Union[str, None, UnsetType] = UNSET + soda_check_id: Union[str, None, UnsetType] = UNSET """Identifier of the check in Soda.""" - soda_evaluation_status: Union[str, None, UnsetType] = UNSET + soda_check_evaluation_status: Union[str, None, UnsetType] = UNSET """Status of the check in Soda.""" soda_check_definition: Union[str, None, UnsetType] = UNSET """Definition of the check in Soda.""" - soda_last_scan_at: Union[int, None, UnsetType] = UNSET + soda_check_last_scan_at: Union[int, None, UnsetType] = UNSET """""" - soda_incident_count: Union[int, None, UnsetType] = UNSET + soda_check_incident_count: Union[int, None, UnsetType] = UNSET """""" - soda_linked_asset_qualified_name: Union[str, None, UnsetType] = UNSET + soda_check_linked_asset_qualified_name: Union[str, None, UnsetType] = UNSET """QualifiedName of the asset associated with the check.""" dq_is_part_of_contract: Union[bool, None, UnsetType] = UNSET @@ -368,22 +368,22 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SodaCheck: class SodaCheckAttributes(AssetAttributes): """SodaCheck-specific attributes for nested API format.""" - soda_id: Union[str, None, UnsetType] = UNSET + soda_check_id: Union[str, None, UnsetType] = UNSET """Identifier of the check in Soda.""" - soda_evaluation_status: Union[str, None, UnsetType] = UNSET + soda_check_evaluation_status: Union[str, None, UnsetType] = UNSET """Status of the check in Soda.""" soda_check_definition: Union[str, None, UnsetType] = UNSET """Definition of the check in Soda.""" - soda_last_scan_at: Union[int, None, UnsetType] = UNSET + soda_check_last_scan_at: Union[int, None, UnsetType] = UNSET """""" - soda_incident_count: Union[int, None, UnsetType] = UNSET + soda_check_incident_count: Union[int, None, UnsetType] = UNSET """""" - soda_linked_asset_qualified_name: Union[str, None, UnsetType] = UNSET + soda_check_linked_asset_qualified_name: Union[str, None, UnsetType] = UNSET """QualifiedName of the asset associated with the check.""" dq_is_part_of_contract: Union[bool, None, UnsetType] = UNSET @@ -572,12 +572,14 @@ class SodaCheckNested(AssetNested): def _populate_soda_check_attrs(attrs: SodaCheckAttributes, obj: SodaCheck) -> None: """Populate SodaCheck-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.soda_id = obj.soda_id - attrs.soda_evaluation_status = obj.soda_evaluation_status + attrs.soda_check_id = obj.soda_check_id + attrs.soda_check_evaluation_status = obj.soda_check_evaluation_status attrs.soda_check_definition = obj.soda_check_definition - attrs.soda_last_scan_at = obj.soda_last_scan_at - attrs.soda_incident_count = obj.soda_incident_count - attrs.soda_linked_asset_qualified_name = obj.soda_linked_asset_qualified_name + attrs.soda_check_last_scan_at = obj.soda_check_last_scan_at + attrs.soda_check_incident_count = obj.soda_check_incident_count + attrs.soda_check_linked_asset_qualified_name = ( + obj.soda_check_linked_asset_qualified_name + ) attrs.dq_is_part_of_contract = obj.dq_is_part_of_contract attrs.catalog_dataset_guid = obj.catalog_dataset_guid @@ -585,12 +587,14 @@ def _populate_soda_check_attrs(attrs: SodaCheckAttributes, obj: SodaCheck) -> No def _extract_soda_check_attrs(attrs: SodaCheckAttributes) -> dict: """Extract all SodaCheck attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["soda_id"] = attrs.soda_id - result["soda_evaluation_status"] = attrs.soda_evaluation_status + result["soda_check_id"] = attrs.soda_check_id + result["soda_check_evaluation_status"] = attrs.soda_check_evaluation_status result["soda_check_definition"] = attrs.soda_check_definition - result["soda_last_scan_at"] = attrs.soda_last_scan_at - result["soda_incident_count"] = attrs.soda_incident_count - result["soda_linked_asset_qualified_name"] = attrs.soda_linked_asset_qualified_name + result["soda_check_last_scan_at"] = attrs.soda_check_last_scan_at + result["soda_check_incident_count"] = attrs.soda_check_incident_count + result["soda_check_linked_asset_qualified_name"] = ( + attrs.soda_check_linked_asset_qualified_name + ) result["dq_is_part_of_contract"] = attrs.dq_is_part_of_contract result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -702,17 +706,21 @@ def _soda_check_from_nested_bytes(data: bytes, serde: Serde) -> SodaCheck: RelationField, ) -SodaCheck.SODA_ID = KeywordField("sodaId", "sodaId") -SodaCheck.SODA_EVALUATION_STATUS = KeywordField( - "sodaEvaluationStatus", "sodaEvaluationStatus" +SodaCheck.SODA_CHECK_ID = KeywordField("sodaCheckId", "sodaCheckId") +SodaCheck.SODA_CHECK_EVALUATION_STATUS = KeywordField( + "sodaCheckEvaluationStatus", "sodaCheckEvaluationStatus" ) SodaCheck.SODA_CHECK_DEFINITION = KeywordField( "sodaCheckDefinition", "sodaCheckDefinition" ) -SodaCheck.SODA_LAST_SCAN_AT = NumericField("sodaLastScanAt", "sodaLastScanAt") -SodaCheck.SODA_INCIDENT_COUNT = NumericField("sodaIncidentCount", "sodaIncidentCount") -SodaCheck.SODA_LINKED_ASSET_QUALIFIED_NAME = KeywordField( - "sodaLinkedAssetQualifiedName", "sodaLinkedAssetQualifiedName" +SodaCheck.SODA_CHECK_LAST_SCAN_AT = NumericField( + "sodaCheckLastScanAt", "sodaCheckLastScanAt" +) +SodaCheck.SODA_CHECK_INCIDENT_COUNT = NumericField( + "sodaCheckIncidentCount", "sodaCheckIncidentCount" +) +SodaCheck.SODA_CHECK_LINKED_ASSET_QUALIFIED_NAME = KeywordField( + "sodaCheckLinkedAssetQualifiedName", "sodaCheckLinkedAssetQualifiedName" ) SodaCheck.DQ_IS_PART_OF_CONTRACT = BooleanField( "dqIsPartOfContract", "dqIsPartOfContract" diff --git a/pyatlan_v9/model/assets/soda_related.py b/pyatlan_v9/model/assets/soda_related.py index 113b01fe8..28113eb7c 100644 --- a/pyatlan_v9/model/assets/soda_related.py +++ b/pyatlan_v9/model/assets/soda_related.py @@ -50,22 +50,22 @@ class RelatedSodaCheck(RelatedSoda): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SodaCheck" so it serializes correctly - soda_id: Union[str, None, UnsetType] = UNSET + soda_check_id: Union[str, None, UnsetType] = UNSET """Identifier of the check in Soda.""" - soda_evaluation_status: Union[str, None, UnsetType] = UNSET + soda_check_evaluation_status: Union[str, None, UnsetType] = UNSET """Status of the check in Soda.""" soda_check_definition: Union[str, None, UnsetType] = UNSET """Definition of the check in Soda.""" - soda_last_scan_at: Union[int, None, UnsetType] = UNSET + soda_check_last_scan_at: Union[int, None, UnsetType] = UNSET """""" - soda_incident_count: Union[int, None, UnsetType] = UNSET + soda_check_incident_count: Union[int, None, UnsetType] = UNSET """""" - soda_linked_asset_qualified_name: Union[str, None, UnsetType] = UNSET + soda_check_linked_asset_qualified_name: Union[str, None, UnsetType] = UNSET """QualifiedName of the asset associated with the check.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/sql_insight_business_question.py b/pyatlan_v9/model/assets/sql_insight_business_question.py index cc5496946..6c6968776 100644 --- a/pyatlan_v9/model/assets/sql_insight_business_question.py +++ b/pyatlan_v9/model/assets/sql_insight_business_question.py @@ -69,13 +69,13 @@ class SqlInsightBusinessQuestion(Asset): A generalized business question pattern observed from real query traffic. """ - SQL_INSIGHT_DATASET_QUALIFIED_NAME: ClassVar[Any] = None - SQL_INSIGHT_TEXT: ClassVar[Any] = None - SQL_INSIGHT_CANONICAL_SQL: ClassVar[Any] = None - SQL_INSIGHT_QUERY_COUNT: ClassVar[Any] = None - SQL_INSIGHT_UNIQUE_USERS: ClassVar[Any] = None - SQL_INSIGHT_LAST_SEEN_AT: ClassVar[Any] = None - SQL_INSIGHT_EXAMPLE_QUERIES: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_DATASET_QUALIFIED_NAME: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_TEXT: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_CANONICAL_SQL: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_QUERY_COUNT: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_UNIQUE_USERS: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_LAST_SEEN_AT: ClassVar[Any] = None + SQL_INSIGHT_BUSINESS_QUESTION_EXAMPLE_QUERIES: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None @@ -112,27 +112,31 @@ class SqlInsightBusinessQuestion(Asset): OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None SQL_INSIGHT_DATASET: ClassVar[Any] = None - sql_insight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_business_question_dataset_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Qualified name of the dataset this business question relates to.""" - sql_insight_text: Union[str, None, UnsetType] = UNSET + sql_insight_business_question_text: Union[str, None, UnsetType] = UNSET """Natural language text of the business question.""" - sql_insight_canonical_sql: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlInsightCanonicalSQL" + sql_insight_business_question_canonical_sql: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="sqlInsightBusinessQuestionCanonicalSQL") ) """Canonical SQL query that answers this business question.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_query_count: Union[int, None, UnsetType] = UNSET """Number of queries associated with this business question.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have asked this question.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this question was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_business_question_example_queries: Union[ + List[Dict[str, Any]], None, UnsetType + ] = UNSET """Example SQL queries that demonstrate this business question, with usage details.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -382,27 +386,31 @@ def from_json( class SqlInsightBusinessQuestionAttributes(AssetAttributes): """SqlInsightBusinessQuestion-specific attributes for nested API format.""" - sql_insight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_business_question_dataset_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Qualified name of the dataset this business question relates to.""" - sql_insight_text: Union[str, None, UnsetType] = UNSET + sql_insight_business_question_text: Union[str, None, UnsetType] = UNSET """Natural language text of the business question.""" - sql_insight_canonical_sql: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlInsightCanonicalSQL" + sql_insight_business_question_canonical_sql: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="sqlInsightBusinessQuestionCanonicalSQL") ) """Canonical SQL query that answers this business question.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_query_count: Union[int, None, UnsetType] = UNSET """Number of queries associated with this business question.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have asked this question.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this question was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_business_question_example_queries: Union[ + List[Dict[str, Any]], None, UnsetType + ] = UNSET """Example SQL queries that demonstrate this business question, with usage details.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -588,13 +596,25 @@ def _populate_sql_insight_business_question_attrs( ) -> None: """Populate SqlInsightBusinessQuestion-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sql_insight_dataset_qualified_name = obj.sql_insight_dataset_qualified_name - attrs.sql_insight_text = obj.sql_insight_text - attrs.sql_insight_canonical_sql = obj.sql_insight_canonical_sql - attrs.sql_insight_query_count = obj.sql_insight_query_count - attrs.sql_insight_unique_users = obj.sql_insight_unique_users - attrs.sql_insight_last_seen_at = obj.sql_insight_last_seen_at - attrs.sql_insight_example_queries = obj.sql_insight_example_queries + attrs.sql_insight_business_question_dataset_qualified_name = ( + obj.sql_insight_business_question_dataset_qualified_name + ) + attrs.sql_insight_business_question_text = obj.sql_insight_business_question_text + attrs.sql_insight_business_question_canonical_sql = ( + obj.sql_insight_business_question_canonical_sql + ) + attrs.sql_insight_business_question_query_count = ( + obj.sql_insight_business_question_query_count + ) + attrs.sql_insight_business_question_unique_users = ( + obj.sql_insight_business_question_unique_users + ) + attrs.sql_insight_business_question_last_seen_at = ( + obj.sql_insight_business_question_last_seen_at + ) + attrs.sql_insight_business_question_example_queries = ( + obj.sql_insight_business_question_example_queries + ) attrs.catalog_dataset_guid = obj.catalog_dataset_guid @@ -603,15 +623,27 @@ def _extract_sql_insight_business_question_attrs( ) -> dict: """Extract all SqlInsightBusinessQuestion attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sql_insight_dataset_qualified_name"] = ( - attrs.sql_insight_dataset_qualified_name + result["sql_insight_business_question_dataset_qualified_name"] = ( + attrs.sql_insight_business_question_dataset_qualified_name + ) + result["sql_insight_business_question_text"] = ( + attrs.sql_insight_business_question_text + ) + result["sql_insight_business_question_canonical_sql"] = ( + attrs.sql_insight_business_question_canonical_sql + ) + result["sql_insight_business_question_query_count"] = ( + attrs.sql_insight_business_question_query_count + ) + result["sql_insight_business_question_unique_users"] = ( + attrs.sql_insight_business_question_unique_users + ) + result["sql_insight_business_question_last_seen_at"] = ( + attrs.sql_insight_business_question_last_seen_at + ) + result["sql_insight_business_question_example_queries"] = ( + attrs.sql_insight_business_question_example_queries ) - result["sql_insight_text"] = attrs.sql_insight_text - result["sql_insight_canonical_sql"] = attrs.sql_insight_canonical_sql - result["sql_insight_query_count"] = attrs.sql_insight_query_count - result["sql_insight_unique_users"] = attrs.sql_insight_unique_users - result["sql_insight_last_seen_at"] = attrs.sql_insight_last_seen_at - result["sql_insight_example_queries"] = attrs.sql_insight_example_queries result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -735,26 +767,30 @@ def _sql_insight_business_question_from_nested_bytes( RelationField, ) -SqlInsightBusinessQuestion.SQL_INSIGHT_DATASET_QUALIFIED_NAME = KeywordField( - "sqlInsightDatasetQualifiedName", "sqlInsightDatasetQualifiedName" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_DATASET_QUALIFIED_NAME = ( + KeywordField( + "sqlInsightBusinessQuestionDatasetQualifiedName", + "sqlInsightBusinessQuestionDatasetQualifiedName", + ) ) -SqlInsightBusinessQuestion.SQL_INSIGHT_TEXT = KeywordField( - "sqlInsightText", "sqlInsightText" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_TEXT = KeywordField( + "sqlInsightBusinessQuestionText", "sqlInsightBusinessQuestionText" ) -SqlInsightBusinessQuestion.SQL_INSIGHT_CANONICAL_SQL = KeywordField( - "sqlInsightCanonicalSQL", "sqlInsightCanonicalSQL" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_CANONICAL_SQL = KeywordField( + "sqlInsightBusinessQuestionCanonicalSQL", "sqlInsightBusinessQuestionCanonicalSQL" ) -SqlInsightBusinessQuestion.SQL_INSIGHT_QUERY_COUNT = NumericField( - "sqlInsightQueryCount", "sqlInsightQueryCount" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_QUERY_COUNT = NumericField( + "sqlInsightBusinessQuestionQueryCount", "sqlInsightBusinessQuestionQueryCount" ) -SqlInsightBusinessQuestion.SQL_INSIGHT_UNIQUE_USERS = NumericField( - "sqlInsightUniqueUsers", "sqlInsightUniqueUsers" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_UNIQUE_USERS = NumericField( + "sqlInsightBusinessQuestionUniqueUsers", "sqlInsightBusinessQuestionUniqueUsers" ) -SqlInsightBusinessQuestion.SQL_INSIGHT_LAST_SEEN_AT = NumericField( - "sqlInsightLastSeenAt", "sqlInsightLastSeenAt" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_LAST_SEEN_AT = NumericField( + "sqlInsightBusinessQuestionLastSeenAt", "sqlInsightBusinessQuestionLastSeenAt" ) -SqlInsightBusinessQuestion.SQL_INSIGHT_EXAMPLE_QUERIES = KeywordField( - "sqlInsightExampleQueries", "sqlInsightExampleQueries" +SqlInsightBusinessQuestion.SQL_INSIGHT_BUSINESS_QUESTION_EXAMPLE_QUERIES = KeywordField( + "sqlInsightBusinessQuestionExampleQueries", + "sqlInsightBusinessQuestionExampleQueries", ) SqlInsightBusinessQuestion.CATALOG_DATASET_GUID = KeywordField( "catalogDatasetGuid", "catalogDatasetGuid" diff --git a/pyatlan_v9/model/assets/sql_insight_filter.py b/pyatlan_v9/model/assets/sql_insight_filter.py index 657c02f51..1ce2bcbe2 100644 --- a/pyatlan_v9/model/assets/sql_insight_filter.py +++ b/pyatlan_v9/model/assets/sql_insight_filter.py @@ -69,16 +69,16 @@ class SqlInsightFilter(Asset): A column-level filtering observation from real query traffic. """ - SQL_INSIGHT_DATASET_QUALIFIED_NAME: ClassVar[Any] = None - SQL_INSIGHT_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None - SQL_INSIGHT_COMMON_VALUES: ClassVar[Any] = None - SQL_INSIGHT_OPERATOR: ClassVar[Any] = None - SQL_INSIGHT_PREDICATE_SQL: ClassVar[Any] = None - SQL_INSIGHT_WHEN_TO_USE: ClassVar[Any] = None - SQL_INSIGHT_QUERY_COUNT: ClassVar[Any] = None - SQL_INSIGHT_UNIQUE_USERS: ClassVar[Any] = None - SQL_INSIGHT_LAST_SEEN_AT: ClassVar[Any] = None - SQL_INSIGHT_EXAMPLE_QUERIES: ClassVar[Any] = None + SQL_INSIGHT_FILTER_DATASET_QUALIFIED_NAME: ClassVar[Any] = None + SQL_INSIGHT_FILTER_COLUMN_QUALIFIED_NAME: ClassVar[Any] = None + SQL_INSIGHT_FILTER_COMMON_VALUES: ClassVar[Any] = None + SQL_INSIGHT_FILTER_OPERATOR: ClassVar[Any] = None + SQL_INSIGHT_FILTER_PREDICATE_SQL: ClassVar[Any] = None + SQL_INSIGHT_FILTER_WHEN_TO_USE: ClassVar[Any] = None + SQL_INSIGHT_FILTER_QUERY_COUNT: ClassVar[Any] = None + SQL_INSIGHT_FILTER_UNIQUE_USERS: ClassVar[Any] = None + SQL_INSIGHT_FILTER_LAST_SEEN_AT: ClassVar[Any] = None + SQL_INSIGHT_FILTER_EXAMPLE_QUERIES: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None @@ -115,36 +115,38 @@ class SqlInsightFilter(Asset): OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None SQL_INSIGHT_COLUMN: ClassVar[Any] = None - sql_insight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_filter_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the dataset containing the filtered column.""" - sql_insight_column_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_filter_column_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the filtered column.""" - sql_insight_common_values: Union[List[str], None, UnsetType] = UNSET + sql_insight_filter_common_values: Union[List[str], None, UnsetType] = UNSET """Common values observed for this filter.""" - sql_insight_operator: Union[str, None, UnsetType] = UNSET + sql_insight_filter_operator: Union[str, None, UnsetType] = UNSET """SQL operator observed on this column, such as =, !=, IN, LIKE.""" - sql_insight_predicate_sql: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlInsightPredicateSQL" + sql_insight_filter_predicate_sql: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="sqlInsightFilterPredicateSQL" ) """SQL predicate expression for this filter pattern.""" - sql_insight_when_to_use: Union[str, None, UnsetType] = UNSET + sql_insight_filter_when_to_use: Union[str, None, UnsetType] = UNSET """Guidance on when this filter pattern should be used.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_filter_query_count: Union[int, None, UnsetType] = UNSET """Number of queries that use this filter pattern.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_filter_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have used this filter pattern.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_filter_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this filter pattern was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_filter_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = ( + UNSET + ) """Example SQL queries that demonstrate this filter pattern, with usage details.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -392,36 +394,38 @@ def from_json( class SqlInsightFilterAttributes(AssetAttributes): """SqlInsightFilter-specific attributes for nested API format.""" - sql_insight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_filter_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the dataset containing the filtered column.""" - sql_insight_column_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_filter_column_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the filtered column.""" - sql_insight_common_values: Union[List[str], None, UnsetType] = UNSET + sql_insight_filter_common_values: Union[List[str], None, UnsetType] = UNSET """Common values observed for this filter.""" - sql_insight_operator: Union[str, None, UnsetType] = UNSET + sql_insight_filter_operator: Union[str, None, UnsetType] = UNSET """SQL operator observed on this column, such as =, !=, IN, LIKE.""" - sql_insight_predicate_sql: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlInsightPredicateSQL" + sql_insight_filter_predicate_sql: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="sqlInsightFilterPredicateSQL" ) """SQL predicate expression for this filter pattern.""" - sql_insight_when_to_use: Union[str, None, UnsetType] = UNSET + sql_insight_filter_when_to_use: Union[str, None, UnsetType] = UNSET """Guidance on when this filter pattern should be used.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_filter_query_count: Union[int, None, UnsetType] = UNSET """Number of queries that use this filter pattern.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_filter_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have used this filter pattern.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_filter_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this filter pattern was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_filter_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = ( + UNSET + ) """Example SQL queries that demonstrate this filter pattern, with usage details.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -607,36 +611,42 @@ def _populate_sql_insight_filter_attrs( ) -> None: """Populate SqlInsightFilter-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sql_insight_dataset_qualified_name = obj.sql_insight_dataset_qualified_name - attrs.sql_insight_column_qualified_name = obj.sql_insight_column_qualified_name - attrs.sql_insight_common_values = obj.sql_insight_common_values - attrs.sql_insight_operator = obj.sql_insight_operator - attrs.sql_insight_predicate_sql = obj.sql_insight_predicate_sql - attrs.sql_insight_when_to_use = obj.sql_insight_when_to_use - attrs.sql_insight_query_count = obj.sql_insight_query_count - attrs.sql_insight_unique_users = obj.sql_insight_unique_users - attrs.sql_insight_last_seen_at = obj.sql_insight_last_seen_at - attrs.sql_insight_example_queries = obj.sql_insight_example_queries + attrs.sql_insight_filter_dataset_qualified_name = ( + obj.sql_insight_filter_dataset_qualified_name + ) + attrs.sql_insight_filter_column_qualified_name = ( + obj.sql_insight_filter_column_qualified_name + ) + attrs.sql_insight_filter_common_values = obj.sql_insight_filter_common_values + attrs.sql_insight_filter_operator = obj.sql_insight_filter_operator + attrs.sql_insight_filter_predicate_sql = obj.sql_insight_filter_predicate_sql + attrs.sql_insight_filter_when_to_use = obj.sql_insight_filter_when_to_use + attrs.sql_insight_filter_query_count = obj.sql_insight_filter_query_count + attrs.sql_insight_filter_unique_users = obj.sql_insight_filter_unique_users + attrs.sql_insight_filter_last_seen_at = obj.sql_insight_filter_last_seen_at + attrs.sql_insight_filter_example_queries = obj.sql_insight_filter_example_queries attrs.catalog_dataset_guid = obj.catalog_dataset_guid def _extract_sql_insight_filter_attrs(attrs: SqlInsightFilterAttributes) -> dict: """Extract all SqlInsightFilter attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sql_insight_dataset_qualified_name"] = ( - attrs.sql_insight_dataset_qualified_name + result["sql_insight_filter_dataset_qualified_name"] = ( + attrs.sql_insight_filter_dataset_qualified_name + ) + result["sql_insight_filter_column_qualified_name"] = ( + attrs.sql_insight_filter_column_qualified_name ) - result["sql_insight_column_qualified_name"] = ( - attrs.sql_insight_column_qualified_name + result["sql_insight_filter_common_values"] = attrs.sql_insight_filter_common_values + result["sql_insight_filter_operator"] = attrs.sql_insight_filter_operator + result["sql_insight_filter_predicate_sql"] = attrs.sql_insight_filter_predicate_sql + result["sql_insight_filter_when_to_use"] = attrs.sql_insight_filter_when_to_use + result["sql_insight_filter_query_count"] = attrs.sql_insight_filter_query_count + result["sql_insight_filter_unique_users"] = attrs.sql_insight_filter_unique_users + result["sql_insight_filter_last_seen_at"] = attrs.sql_insight_filter_last_seen_at + result["sql_insight_filter_example_queries"] = ( + attrs.sql_insight_filter_example_queries ) - result["sql_insight_common_values"] = attrs.sql_insight_common_values - result["sql_insight_operator"] = attrs.sql_insight_operator - result["sql_insight_predicate_sql"] = attrs.sql_insight_predicate_sql - result["sql_insight_when_to_use"] = attrs.sql_insight_when_to_use - result["sql_insight_query_count"] = attrs.sql_insight_query_count - result["sql_insight_unique_users"] = attrs.sql_insight_unique_users - result["sql_insight_last_seen_at"] = attrs.sql_insight_last_seen_at - result["sql_insight_example_queries"] = attrs.sql_insight_example_queries result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -756,35 +766,35 @@ def _sql_insight_filter_from_nested_bytes( RelationField, ) -SqlInsightFilter.SQL_INSIGHT_DATASET_QUALIFIED_NAME = KeywordField( - "sqlInsightDatasetQualifiedName", "sqlInsightDatasetQualifiedName" +SqlInsightFilter.SQL_INSIGHT_FILTER_DATASET_QUALIFIED_NAME = KeywordField( + "sqlInsightFilterDatasetQualifiedName", "sqlInsightFilterDatasetQualifiedName" ) -SqlInsightFilter.SQL_INSIGHT_COLUMN_QUALIFIED_NAME = KeywordField( - "sqlInsightColumnQualifiedName", "sqlInsightColumnQualifiedName" +SqlInsightFilter.SQL_INSIGHT_FILTER_COLUMN_QUALIFIED_NAME = KeywordField( + "sqlInsightFilterColumnQualifiedName", "sqlInsightFilterColumnQualifiedName" ) -SqlInsightFilter.SQL_INSIGHT_COMMON_VALUES = KeywordField( - "sqlInsightCommonValues", "sqlInsightCommonValues" +SqlInsightFilter.SQL_INSIGHT_FILTER_COMMON_VALUES = KeywordField( + "sqlInsightFilterCommonValues", "sqlInsightFilterCommonValues" ) -SqlInsightFilter.SQL_INSIGHT_OPERATOR = KeywordField( - "sqlInsightOperator", "sqlInsightOperator" +SqlInsightFilter.SQL_INSIGHT_FILTER_OPERATOR = KeywordField( + "sqlInsightFilterOperator", "sqlInsightFilterOperator" ) -SqlInsightFilter.SQL_INSIGHT_PREDICATE_SQL = KeywordField( - "sqlInsightPredicateSQL", "sqlInsightPredicateSQL" +SqlInsightFilter.SQL_INSIGHT_FILTER_PREDICATE_SQL = KeywordField( + "sqlInsightFilterPredicateSQL", "sqlInsightFilterPredicateSQL" ) -SqlInsightFilter.SQL_INSIGHT_WHEN_TO_USE = KeywordField( - "sqlInsightWhenToUse", "sqlInsightWhenToUse" +SqlInsightFilter.SQL_INSIGHT_FILTER_WHEN_TO_USE = KeywordField( + "sqlInsightFilterWhenToUse", "sqlInsightFilterWhenToUse" ) -SqlInsightFilter.SQL_INSIGHT_QUERY_COUNT = NumericField( - "sqlInsightQueryCount", "sqlInsightQueryCount" +SqlInsightFilter.SQL_INSIGHT_FILTER_QUERY_COUNT = NumericField( + "sqlInsightFilterQueryCount", "sqlInsightFilterQueryCount" ) -SqlInsightFilter.SQL_INSIGHT_UNIQUE_USERS = NumericField( - "sqlInsightUniqueUsers", "sqlInsightUniqueUsers" +SqlInsightFilter.SQL_INSIGHT_FILTER_UNIQUE_USERS = NumericField( + "sqlInsightFilterUniqueUsers", "sqlInsightFilterUniqueUsers" ) -SqlInsightFilter.SQL_INSIGHT_LAST_SEEN_AT = NumericField( - "sqlInsightLastSeenAt", "sqlInsightLastSeenAt" +SqlInsightFilter.SQL_INSIGHT_FILTER_LAST_SEEN_AT = NumericField( + "sqlInsightFilterLastSeenAt", "sqlInsightFilterLastSeenAt" ) -SqlInsightFilter.SQL_INSIGHT_EXAMPLE_QUERIES = KeywordField( - "sqlInsightExampleQueries", "sqlInsightExampleQueries" +SqlInsightFilter.SQL_INSIGHT_FILTER_EXAMPLE_QUERIES = KeywordField( + "sqlInsightFilterExampleQueries", "sqlInsightFilterExampleQueries" ) SqlInsightFilter.CATALOG_DATASET_GUID = KeywordField( "catalogDatasetGuid", "catalogDatasetGuid" diff --git a/pyatlan_v9/model/assets/sql_insight_join.py b/pyatlan_v9/model/assets/sql_insight_join.py index 3d73a57ae..35bf44202 100644 --- a/pyatlan_v9/model/assets/sql_insight_join.py +++ b/pyatlan_v9/model/assets/sql_insight_join.py @@ -68,16 +68,16 @@ class SqlInsightJoin(Asset): A directed join pattern observed between two SQL datasets from real query traffic. """ - SQL_INSIGHT_SOURCE_DATASET_QUALIFIED_NAME: ClassVar[Any] = None - SQL_INSIGHT_JOINED_DATASET_QUALIFIED_NAME: ClassVar[Any] = None - SQL_INSIGHT_TYPE: ClassVar[Any] = None - SQL_INSIGHT_CARDINALITY: ClassVar[Any] = None - SQL_INSIGHT_WHEN_TO_USE: ClassVar[Any] = None - SQL_INSIGHT_COLUMN_PAIRS: ClassVar[Any] = None - SQL_INSIGHT_QUERY_COUNT: ClassVar[Any] = None - SQL_INSIGHT_UNIQUE_USERS: ClassVar[Any] = None - SQL_INSIGHT_LAST_SEEN_AT: ClassVar[Any] = None - SQL_INSIGHT_EXAMPLE_QUERIES: ClassVar[Any] = None + SQL_INSIGHT_JOIN_SOURCE_DATASET_QUALIFIED_NAME: ClassVar[Any] = None + SQL_INSIGHT_JOIN_JOINED_DATASET_QUALIFIED_NAME: ClassVar[Any] = None + SQL_INSIGHT_JOIN_TYPE: ClassVar[Any] = None + SQL_INSIGHT_JOIN_CARDINALITY: ClassVar[Any] = None + SQL_INSIGHT_JOIN_WHEN_TO_USE: ClassVar[Any] = None + SQL_INSIGHT_JOIN_COLUMN_PAIRS: ClassVar[Any] = None + SQL_INSIGHT_JOIN_QUERY_COUNT: ClassVar[Any] = None + SQL_INSIGHT_JOIN_UNIQUE_USERS: ClassVar[Any] = None + SQL_INSIGHT_JOIN_LAST_SEEN_AT: ClassVar[Any] = None + SQL_INSIGHT_JOIN_EXAMPLE_QUERIES: ClassVar[Any] = None CATALOG_DATASET_GUID: ClassVar[Any] = None INPUT_TO_AIRFLOW_TASKS: ClassVar[Any] = None OUTPUT_FROM_AIRFLOW_TASKS: ClassVar[Any] = None @@ -115,34 +115,36 @@ class SqlInsightJoin(Asset): SQL_INSIGHT_SOURCE_DATASET: ClassVar[Any] = None SQL_INSIGHT_JOINED_DATASET: ClassVar[Any] = None - sql_insight_source_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_join_source_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the source dataset in this join pattern.""" - sql_insight_joined_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_join_joined_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the joined dataset in this join pattern.""" - sql_insight_type: Union[str, None, UnsetType] = UNSET + sql_insight_join_type: Union[str, None, UnsetType] = UNSET """Type of SQL join observed in this pattern.""" - sql_insight_cardinality: Union[str, None, UnsetType] = UNSET + sql_insight_join_cardinality: Union[str, None, UnsetType] = UNSET """Observed cardinality of the join relationship.""" - sql_insight_when_to_use: Union[str, None, UnsetType] = UNSET + sql_insight_join_when_to_use: Union[str, None, UnsetType] = UNSET """Guidance on when this join pattern should be used.""" - sql_insight_column_pairs: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_join_column_pairs: Union[List[Dict[str, Any]], None, UnsetType] = UNSET """Column mappings in this join, pairing source columns to joined columns.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_join_query_count: Union[int, None, UnsetType] = UNSET """Number of queries that use this join pattern.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_join_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have used this join pattern.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_join_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this join pattern was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_join_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = ( + UNSET + ) """Example SQL queries that demonstrate this join pattern, with usage details.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -391,34 +393,36 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SqlInsightJ class SqlInsightJoinAttributes(AssetAttributes): """SqlInsightJoin-specific attributes for nested API format.""" - sql_insight_source_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_join_source_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the source dataset in this join pattern.""" - sql_insight_joined_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_join_joined_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the joined dataset in this join pattern.""" - sql_insight_type: Union[str, None, UnsetType] = UNSET + sql_insight_join_type: Union[str, None, UnsetType] = UNSET """Type of SQL join observed in this pattern.""" - sql_insight_cardinality: Union[str, None, UnsetType] = UNSET + sql_insight_join_cardinality: Union[str, None, UnsetType] = UNSET """Observed cardinality of the join relationship.""" - sql_insight_when_to_use: Union[str, None, UnsetType] = UNSET + sql_insight_join_when_to_use: Union[str, None, UnsetType] = UNSET """Guidance on when this join pattern should be used.""" - sql_insight_column_pairs: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_join_column_pairs: Union[List[Dict[str, Any]], None, UnsetType] = UNSET """Column mappings in this join, pairing source columns to joined columns.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_join_query_count: Union[int, None, UnsetType] = UNSET """Number of queries that use this join pattern.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_join_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have used this join pattern.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_join_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this join pattern was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_join_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = ( + UNSET + ) """Example SQL queries that demonstrate this join pattern, with usage details.""" catalog_dataset_guid: Union[str, None, UnsetType] = UNSET @@ -608,40 +612,40 @@ def _populate_sql_insight_join_attrs( ) -> None: """Populate SqlInsightJoin-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.sql_insight_source_dataset_qualified_name = ( - obj.sql_insight_source_dataset_qualified_name + attrs.sql_insight_join_source_dataset_qualified_name = ( + obj.sql_insight_join_source_dataset_qualified_name ) - attrs.sql_insight_joined_dataset_qualified_name = ( - obj.sql_insight_joined_dataset_qualified_name + attrs.sql_insight_join_joined_dataset_qualified_name = ( + obj.sql_insight_join_joined_dataset_qualified_name ) - attrs.sql_insight_type = obj.sql_insight_type - attrs.sql_insight_cardinality = obj.sql_insight_cardinality - attrs.sql_insight_when_to_use = obj.sql_insight_when_to_use - attrs.sql_insight_column_pairs = obj.sql_insight_column_pairs - attrs.sql_insight_query_count = obj.sql_insight_query_count - attrs.sql_insight_unique_users = obj.sql_insight_unique_users - attrs.sql_insight_last_seen_at = obj.sql_insight_last_seen_at - attrs.sql_insight_example_queries = obj.sql_insight_example_queries + attrs.sql_insight_join_type = obj.sql_insight_join_type + attrs.sql_insight_join_cardinality = obj.sql_insight_join_cardinality + attrs.sql_insight_join_when_to_use = obj.sql_insight_join_when_to_use + attrs.sql_insight_join_column_pairs = obj.sql_insight_join_column_pairs + attrs.sql_insight_join_query_count = obj.sql_insight_join_query_count + attrs.sql_insight_join_unique_users = obj.sql_insight_join_unique_users + attrs.sql_insight_join_last_seen_at = obj.sql_insight_join_last_seen_at + attrs.sql_insight_join_example_queries = obj.sql_insight_join_example_queries attrs.catalog_dataset_guid = obj.catalog_dataset_guid def _extract_sql_insight_join_attrs(attrs: SqlInsightJoinAttributes) -> dict: """Extract all SqlInsightJoin attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["sql_insight_source_dataset_qualified_name"] = ( - attrs.sql_insight_source_dataset_qualified_name + result["sql_insight_join_source_dataset_qualified_name"] = ( + attrs.sql_insight_join_source_dataset_qualified_name ) - result["sql_insight_joined_dataset_qualified_name"] = ( - attrs.sql_insight_joined_dataset_qualified_name + result["sql_insight_join_joined_dataset_qualified_name"] = ( + attrs.sql_insight_join_joined_dataset_qualified_name ) - result["sql_insight_type"] = attrs.sql_insight_type - result["sql_insight_cardinality"] = attrs.sql_insight_cardinality - result["sql_insight_when_to_use"] = attrs.sql_insight_when_to_use - result["sql_insight_column_pairs"] = attrs.sql_insight_column_pairs - result["sql_insight_query_count"] = attrs.sql_insight_query_count - result["sql_insight_unique_users"] = attrs.sql_insight_unique_users - result["sql_insight_last_seen_at"] = attrs.sql_insight_last_seen_at - result["sql_insight_example_queries"] = attrs.sql_insight_example_queries + result["sql_insight_join_type"] = attrs.sql_insight_join_type + result["sql_insight_join_cardinality"] = attrs.sql_insight_join_cardinality + result["sql_insight_join_when_to_use"] = attrs.sql_insight_join_when_to_use + result["sql_insight_join_column_pairs"] = attrs.sql_insight_join_column_pairs + result["sql_insight_join_query_count"] = attrs.sql_insight_join_query_count + result["sql_insight_join_unique_users"] = attrs.sql_insight_join_unique_users + result["sql_insight_join_last_seen_at"] = attrs.sql_insight_join_last_seen_at + result["sql_insight_join_example_queries"] = attrs.sql_insight_join_example_queries result["catalog_dataset_guid"] = attrs.catalog_dataset_guid return result @@ -759,33 +763,37 @@ def _sql_insight_join_from_nested_bytes(data: bytes, serde: Serde) -> SqlInsight RelationField, ) -SqlInsightJoin.SQL_INSIGHT_SOURCE_DATASET_QUALIFIED_NAME = KeywordField( - "sqlInsightSourceDatasetQualifiedName", "sqlInsightSourceDatasetQualifiedName" +SqlInsightJoin.SQL_INSIGHT_JOIN_SOURCE_DATASET_QUALIFIED_NAME = KeywordField( + "sqlInsightJoinSourceDatasetQualifiedName", + "sqlInsightJoinSourceDatasetQualifiedName", +) +SqlInsightJoin.SQL_INSIGHT_JOIN_JOINED_DATASET_QUALIFIED_NAME = KeywordField( + "sqlInsightJoinJoinedDatasetQualifiedName", + "sqlInsightJoinJoinedDatasetQualifiedName", ) -SqlInsightJoin.SQL_INSIGHT_JOINED_DATASET_QUALIFIED_NAME = KeywordField( - "sqlInsightJoinedDatasetQualifiedName", "sqlInsightJoinedDatasetQualifiedName" +SqlInsightJoin.SQL_INSIGHT_JOIN_TYPE = KeywordField( + "sqlInsightJoinType", "sqlInsightJoinType" ) -SqlInsightJoin.SQL_INSIGHT_TYPE = KeywordField("sqlInsightType", "sqlInsightType") -SqlInsightJoin.SQL_INSIGHT_CARDINALITY = KeywordField( - "sqlInsightCardinality", "sqlInsightCardinality" +SqlInsightJoin.SQL_INSIGHT_JOIN_CARDINALITY = KeywordField( + "sqlInsightJoinCardinality", "sqlInsightJoinCardinality" ) -SqlInsightJoin.SQL_INSIGHT_WHEN_TO_USE = KeywordField( - "sqlInsightWhenToUse", "sqlInsightWhenToUse" +SqlInsightJoin.SQL_INSIGHT_JOIN_WHEN_TO_USE = KeywordField( + "sqlInsightJoinWhenToUse", "sqlInsightJoinWhenToUse" ) -SqlInsightJoin.SQL_INSIGHT_COLUMN_PAIRS = KeywordField( - "sqlInsightColumnPairs", "sqlInsightColumnPairs" +SqlInsightJoin.SQL_INSIGHT_JOIN_COLUMN_PAIRS = KeywordField( + "sqlInsightJoinColumnPairs", "sqlInsightJoinColumnPairs" ) -SqlInsightJoin.SQL_INSIGHT_QUERY_COUNT = NumericField( - "sqlInsightQueryCount", "sqlInsightQueryCount" +SqlInsightJoin.SQL_INSIGHT_JOIN_QUERY_COUNT = NumericField( + "sqlInsightJoinQueryCount", "sqlInsightJoinQueryCount" ) -SqlInsightJoin.SQL_INSIGHT_UNIQUE_USERS = NumericField( - "sqlInsightUniqueUsers", "sqlInsightUniqueUsers" +SqlInsightJoin.SQL_INSIGHT_JOIN_UNIQUE_USERS = NumericField( + "sqlInsightJoinUniqueUsers", "sqlInsightJoinUniqueUsers" ) -SqlInsightJoin.SQL_INSIGHT_LAST_SEEN_AT = NumericField( - "sqlInsightLastSeenAt", "sqlInsightLastSeenAt" +SqlInsightJoin.SQL_INSIGHT_JOIN_LAST_SEEN_AT = NumericField( + "sqlInsightJoinLastSeenAt", "sqlInsightJoinLastSeenAt" ) -SqlInsightJoin.SQL_INSIGHT_EXAMPLE_QUERIES = KeywordField( - "sqlInsightExampleQueries", "sqlInsightExampleQueries" +SqlInsightJoin.SQL_INSIGHT_JOIN_EXAMPLE_QUERIES = KeywordField( + "sqlInsightJoinExampleQueries", "sqlInsightJoinExampleQueries" ) SqlInsightJoin.CATALOG_DATASET_GUID = KeywordField( "catalogDatasetGuid", "catalogDatasetGuid" diff --git a/pyatlan_v9/model/assets/sql_insight_related.py b/pyatlan_v9/model/assets/sql_insight_related.py index b90ff071d..0d1b9aee3 100644 --- a/pyatlan_v9/model/assets/sql_insight_related.py +++ b/pyatlan_v9/model/assets/sql_insight_related.py @@ -53,34 +53,36 @@ class RelatedSqlInsightJoin(RelatedSqlInsight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SqlInsightJoin" so it serializes correctly - sql_insight_source_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_join_source_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the source dataset in this join pattern.""" - sql_insight_joined_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_join_joined_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the joined dataset in this join pattern.""" - sql_insight_type: Union[str, None, UnsetType] = UNSET + sql_insight_join_type: Union[str, None, UnsetType] = UNSET """Type of SQL join observed in this pattern.""" - sql_insight_cardinality: Union[str, None, UnsetType] = UNSET + sql_insight_join_cardinality: Union[str, None, UnsetType] = UNSET """Observed cardinality of the join relationship.""" - sql_insight_when_to_use: Union[str, None, UnsetType] = UNSET + sql_insight_join_when_to_use: Union[str, None, UnsetType] = UNSET """Guidance on when this join pattern should be used.""" - sql_insight_column_pairs: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_join_column_pairs: Union[List[Dict[str, Any]], None, UnsetType] = UNSET """Column mappings in this join, pairing source columns to joined columns.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_join_query_count: Union[int, None, UnsetType] = UNSET """Number of queries that use this join pattern.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_join_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have used this join pattern.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_join_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this join pattern was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_join_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = ( + UNSET + ) """Example SQL queries that demonstrate this join pattern, with usage details.""" def __post_init__(self) -> None: @@ -99,36 +101,38 @@ class RelatedSqlInsightFilter(RelatedSqlInsight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SqlInsightFilter" so it serializes correctly - sql_insight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_filter_dataset_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the dataset containing the filtered column.""" - sql_insight_column_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_filter_column_qualified_name: Union[str, None, UnsetType] = UNSET """Qualified name of the filtered column.""" - sql_insight_common_values: Union[List[str], None, UnsetType] = UNSET + sql_insight_filter_common_values: Union[List[str], None, UnsetType] = UNSET """Common values observed for this filter.""" - sql_insight_operator: Union[str, None, UnsetType] = UNSET + sql_insight_filter_operator: Union[str, None, UnsetType] = UNSET """SQL operator observed on this column, such as =, !=, IN, LIKE.""" - sql_insight_predicate_sql: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlInsightPredicateSQL" + sql_insight_filter_predicate_sql: Union[str, None, UnsetType] = msgspec.field( + default=UNSET, name="sqlInsightFilterPredicateSQL" ) """SQL predicate expression for this filter pattern.""" - sql_insight_when_to_use: Union[str, None, UnsetType] = UNSET + sql_insight_filter_when_to_use: Union[str, None, UnsetType] = UNSET """Guidance on when this filter pattern should be used.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_filter_query_count: Union[int, None, UnsetType] = UNSET """Number of queries that use this filter pattern.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_filter_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have used this filter pattern.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_filter_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this filter pattern was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_filter_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = ( + UNSET + ) """Example SQL queries that demonstrate this filter pattern, with usage details.""" def __post_init__(self) -> None: @@ -147,27 +151,31 @@ class RelatedSqlInsightBusinessQuestion(RelatedSqlInsight): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SqlInsightBusinessQuestion" so it serializes correctly - sql_insight_dataset_qualified_name: Union[str, None, UnsetType] = UNSET + sql_insight_business_question_dataset_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Qualified name of the dataset this business question relates to.""" - sql_insight_text: Union[str, None, UnsetType] = UNSET + sql_insight_business_question_text: Union[str, None, UnsetType] = UNSET """Natural language text of the business question.""" - sql_insight_canonical_sql: Union[str, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlInsightCanonicalSQL" + sql_insight_business_question_canonical_sql: Union[str, None, UnsetType] = ( + msgspec.field(default=UNSET, name="sqlInsightBusinessQuestionCanonicalSQL") ) """Canonical SQL query that answers this business question.""" - sql_insight_query_count: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_query_count: Union[int, None, UnsetType] = UNSET """Number of queries associated with this business question.""" - sql_insight_unique_users: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_unique_users: Union[int, None, UnsetType] = UNSET """Number of unique users who have asked this question.""" - sql_insight_last_seen_at: Union[int, None, UnsetType] = UNSET + sql_insight_business_question_last_seen_at: Union[int, None, UnsetType] = UNSET """Time (epoch) at which this question was last observed, in milliseconds.""" - sql_insight_example_queries: Union[List[Dict[str, Any]], None, UnsetType] = UNSET + sql_insight_business_question_example_queries: Union[ + List[Dict[str, Any]], None, UnsetType + ] = UNSET """Example SQL queries that demonstrate this business question, with usage details.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/sql_related.py b/pyatlan_v9/model/assets/sql_related.py index a56fa19cb..23a90742d 100644 --- a/pyatlan_v9/model/assets/sql_related.py +++ b/pyatlan_v9/model/assets/sql_related.py @@ -165,16 +165,16 @@ class RelatedCalculationView(RelatedSQL): column_count: Union[int, None, UnsetType] = UNSET """Number of columns in this calculation view.""" - sql_version_id: Union[int, None, UnsetType] = UNSET + calculation_view_version_id: Union[int, None, UnsetType] = UNSET """The version ID of this calculation view.""" - sql_activated_by: Union[str, None, UnsetType] = UNSET + calculation_view_activated_by: Union[str, None, UnsetType] = UNSET """The owner who activated the calculation view""" - sql_activated_at: Union[int, None, UnsetType] = UNSET + calculation_view_activated_at: Union[int, None, UnsetType] = UNSET """Time at which this calculation view was activated at""" - sql_package_id: Union[str, None, UnsetType] = UNSET + calculation_view_package_id: Union[str, None, UnsetType] = UNSET """The full package id path to which a calculation view belongs/resides in the repository.""" def __post_init__(self) -> None: @@ -199,10 +199,10 @@ class RelatedColumn(RelatedSQL): sub_data_type: Union[str, None, UnsetType] = UNSET """Sub-data type of this column.""" - sql_compression: Union[str, None, UnsetType] = UNSET + column_compression: Union[str, None, UnsetType] = UNSET """Compression type of this column.""" - sql_encoding: Union[str, None, UnsetType] = UNSET + column_encoding: Union[str, None, UnsetType] = UNSET """Encoding type of this column.""" raw_data_type_definition: Union[str, None, UnsetType] = UNSET @@ -277,115 +277,115 @@ class RelatedColumn(RelatedSQL): parent_column_name: Union[str, None, UnsetType] = UNSET """Simple name of the column this column is nested within, for STRUCT and NESTED columns.""" - sql_distinct_values_count: Union[int, None, UnsetType] = UNSET + column_distinct_values_count: Union[int, None, UnsetType] = UNSET """Number of rows that contain distinct values.""" - sql_distinct_values_count_long: Union[int, None, UnsetType] = UNSET + column_distinct_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows that contain distinct values.""" - sql_distinct_values_percentage: Union[float, None, UnsetType] = UNSET + column_distinct_values_percentage: Union[float, None, UnsetType] = UNSET """Percentage of rows in a column that contain distinct values.""" - sql_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + column_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET """List of values in a histogram that represents the contents of this column.""" - sql_max: Union[float, None, UnsetType] = UNSET + column_max: Union[float, None, UnsetType] = UNSET """Greatest value in a numeric column.""" - sql_min: Union[float, None, UnsetType] = UNSET + column_min: Union[float, None, UnsetType] = UNSET """Least value in a numeric column.""" - sql_mean: Union[float, None, UnsetType] = UNSET + column_mean: Union[float, None, UnsetType] = UNSET """Arithmetic mean of the values in a numeric column.""" - sql_sum: Union[float, None, UnsetType] = UNSET + column_sum: Union[float, None, UnsetType] = UNSET """Calculated sum of the values in a numeric column.""" - sql_median: Union[float, None, UnsetType] = UNSET + column_median: Union[float, None, UnsetType] = UNSET """Calculated median of the values in a numeric column.""" - sql_standard_deviation: Union[float, None, UnsetType] = UNSET + column_standard_deviation: Union[float, None, UnsetType] = UNSET """Calculated standard deviation of the values in a numeric column.""" - sql_unique_values_count: Union[int, None, UnsetType] = UNSET + column_unique_values_count: Union[int, None, UnsetType] = UNSET """Number of rows in which a value in this column appears only once.""" - sql_unique_values_count_long: Union[int, None, UnsetType] = UNSET + column_unique_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows in which a value in this column appears only once.""" - sql_average: Union[float, None, UnsetType] = UNSET + column_average: Union[float, None, UnsetType] = UNSET """Average value in this column.""" - sql_average_length: Union[float, None, UnsetType] = UNSET + column_average_length: Union[float, None, UnsetType] = UNSET """Average length of values in a string column.""" - sql_duplicate_values_count: Union[int, None, UnsetType] = UNSET + column_duplicate_values_count: Union[int, None, UnsetType] = UNSET """Number of rows that contain duplicate values.""" - sql_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET + column_duplicate_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows that contain duplicate values.""" - sql_maximum_string_length: Union[int, None, UnsetType] = UNSET + column_maximum_string_length: Union[int, None, UnsetType] = UNSET """Length of the longest value in a string column.""" column_maxs: Union[List[str], None, UnsetType] = UNSET """List of the greatest values in a column.""" - sql_minimum_string_length: Union[int, None, UnsetType] = UNSET + column_minimum_string_length: Union[int, None, UnsetType] = UNSET """Length of the shortest value in a string column.""" column_mins: Union[List[str], None, UnsetType] = UNSET """List of the least values in a column.""" - sql_missing_values_count: Union[int, None, UnsetType] = UNSET + column_missing_values_count: Union[int, None, UnsetType] = UNSET """Number of rows in a column that do not contain content.""" - sql_missing_values_count_long: Union[int, None, UnsetType] = UNSET + column_missing_values_count_long: Union[int, None, UnsetType] = UNSET """Number of rows in a column that do not contain content.""" - sql_missing_values_percentage: Union[float, None, UnsetType] = UNSET + column_missing_values_percentage: Union[float, None, UnsetType] = UNSET """Percentage of rows in a column that do not contain content.""" - sql_uniqueness_percentage: Union[float, None, UnsetType] = UNSET + column_uniqueness_percentage: Union[float, None, UnsetType] = UNSET """Ratio indicating how unique data in this column is: 0 indicates that all values are the same, 100 indicates that all values in this column are unique.""" - sql_variance: Union[float, None, UnsetType] = UNSET + column_variance: Union[float, None, UnsetType] = UNSET """Calculated variance of the values in a numeric column.""" column_top_values: Union[List[Dict[str, Any]], None, UnsetType] = UNSET """List of top values in this column.""" - sql_max_value: Union[float, None, UnsetType] = UNSET + column_max_value: Union[float, None, UnsetType] = UNSET """Greatest value in a numeric column.""" - sql_min_value: Union[float, None, UnsetType] = UNSET + column_min_value: Union[float, None, UnsetType] = UNSET """Least value in a numeric column.""" - sql_mean_value: Union[float, None, UnsetType] = UNSET + column_mean_value: Union[float, None, UnsetType] = UNSET """Arithmetic mean of the values in a numeric column.""" - sql_sum_value: Union[float, None, UnsetType] = UNSET + column_sum_value: Union[float, None, UnsetType] = UNSET """Calculated sum of the values in a numeric column.""" - sql_median_value: Union[float, None, UnsetType] = UNSET + column_median_value: Union[float, None, UnsetType] = UNSET """Calculated median of the values in a numeric column.""" - sql_standard_deviation_value: Union[float, None, UnsetType] = UNSET + column_standard_deviation_value: Union[float, None, UnsetType] = UNSET """Calculated standard deviation of the values in a numeric column.""" - sql_average_value: Union[float, None, UnsetType] = UNSET + column_average_value: Union[float, None, UnsetType] = UNSET """Average value in this column.""" - sql_variance_value: Union[float, None, UnsetType] = UNSET + column_variance_value: Union[float, None, UnsetType] = UNSET """Calculated variance of the values in a numeric column.""" - sql_average_length_value: Union[float, None, UnsetType] = UNSET + column_average_length_value: Union[float, None, UnsetType] = UNSET """Average length of values in a string column.""" - sql_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET + column_distribution_histogram: Union[Dict[str, Any], None, UnsetType] = UNSET """Detailed information representing a histogram of values for a column.""" - sql_depth_level: Union[int, None, UnsetType] = UNSET + column_depth_level: Union[int, None, UnsetType] = UNSET """Level of nesting of this column, used for STRUCT and NESTED columns.""" nosql_collection_name: Union[str, None, UnsetType] = UNSET @@ -394,27 +394,27 @@ class RelatedColumn(RelatedSQL): nosql_collection_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the cosmos/mongo collection in which this SQL asset (column) exists, or empty if it does not exist within a cosmos/mongo collection.""" - sql_is_measure: Union[bool, None, UnsetType] = UNSET + column_is_measure: Union[bool, None, UnsetType] = UNSET """When true, this column is of type measure/calculated.""" - sql_measure_type: Union[str, None, UnsetType] = UNSET + column_measure_type: Union[str, None, UnsetType] = UNSET """The type of measure/calculated column this is, eg: base, calculated, derived.""" - sql_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET + column_ai_insights_is_measure: Union[bool, None, UnsetType] = UNSET """When true, this column is identified as a measure/calculated column by AI analysis of query patterns.""" - sql_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET + column_ai_insights_measure_type: Union[str, None, UnsetType] = UNSET """Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived.""" - sql_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET + column_ai_insights_is_dimension: Union[bool, None, UnsetType] = UNSET """When true, this column is identified as a dimension by AI analysis of query patterns.""" - sql_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET + column_ai_insights_dimension_type: Union[str, None, UnsetType] = UNSET """Type of dimension as classified by AI analysis, for example: time, categorical, geographic.""" - sql_ai_insights_foreign_key_column_qualified_name: Union[str, None, UnsetType] = ( - UNSET - ) + column_ai_insights_foreign_key_column_qualified_name: Union[ + str, None, UnsetType + ] = UNSET """Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns.""" def __post_init__(self) -> None: @@ -461,45 +461,45 @@ class RelatedFunction(RelatedSQL): function_definition: Union[str, None, UnsetType] = UNSET """Code or set of statements that determine the output of the function.""" - sql_return_type: Union[str, None, UnsetType] = UNSET + function_return_type: Union[str, None, UnsetType] = UNSET """Data type of the value returned by the function.""" - sql_arguments: Union[List[str], None, UnsetType] = UNSET + function_arguments: Union[List[str], None, UnsetType] = UNSET """Arguments that are passed in to the function.""" - sql_language: Union[str, None, UnsetType] = UNSET + function_language: Union[str, None, UnsetType] = UNSET """Programming language in which the function is written.""" - sql_type: Union[str, None, UnsetType] = UNSET + function_type: Union[str, None, UnsetType] = UNSET """Type of function.""" - sql_is_external: Union[bool, None, UnsetType] = UNSET + function_is_external: Union[bool, None, UnsetType] = UNSET """Whether the function is stored or executed externally (true) or internally (false).""" - sql_is_dmf: Union[bool, None, UnsetType] = msgspec.field( - default=UNSET, name="sqlIsDMF" + function_is_dmf: Union[bool, None, UnsetType] = msgspec.field( + default=UNSET, name="functionIsDMF" ) """Whether the function is a data metric function.""" - sql_is_secure: Union[bool, None, UnsetType] = UNSET + function_is_secure: Union[bool, None, UnsetType] = UNSET """Whether sensitive information of the function is omitted for unauthorized users (true) or not (false).""" - sql_is_memoizable: Union[bool, None, UnsetType] = UNSET + function_is_memoizable: Union[bool, None, UnsetType] = UNSET """Whether the function must re-compute if there are no underlying changes in the values (false) or not (true).""" - sql_runtime_version: Union[str, None, UnsetType] = UNSET + function_runtime_version: Union[str, None, UnsetType] = UNSET """Version of the language runtime used by the function.""" - sql_external_access_integrations: Union[str, None, UnsetType] = UNSET + function_external_access_integrations: Union[str, None, UnsetType] = UNSET """Names of external access integrations used by the function.""" - sql_secrets: Union[str, None, UnsetType] = UNSET + function_secrets: Union[str, None, UnsetType] = UNSET """Secret variables used by the function.""" - sql_packages: Union[str, None, UnsetType] = UNSET + function_packages: Union[str, None, UnsetType] = UNSET """Packages requested by the function.""" - sql_installed_packages: Union[str, None, UnsetType] = UNSET + function_installed_packages: Union[str, None, UnsetType] = UNSET """Packages actually installed for the function.""" def __post_init__(self) -> None: @@ -677,7 +677,7 @@ class RelatedSchema(RelatedSQL): table_count: Union[int, None, UnsetType] = UNSET """Number of tables in this schema.""" - sql_external_location: Union[str, None, UnsetType] = UNSET + schema_external_location: Union[str, None, UnsetType] = UNSET """External location of this schema, for example: an S3 object location.""" views_count: Union[int, None, UnsetType] = UNSET @@ -711,7 +711,7 @@ class RelatedTable(RelatedSQL): size_bytes: Union[int, None, UnsetType] = UNSET """Size of this table, in bytes.""" - sql_object_count: Union[int, None, UnsetType] = UNSET + table_object_count: Union[int, None, UnsetType] = UNSET """Number of objects in this table.""" alias: Union[str, None, UnsetType] = UNSET @@ -753,7 +753,7 @@ class RelatedTable(RelatedSQL): is_sharded: Union[bool, None, UnsetType] = UNSET """Whether this table is a sharded table (true) or not (false).""" - sql_type: Union[str, None, UnsetType] = UNSET + table_type: Union[str, None, UnsetType] = UNSET """Type of the table.""" iceberg_catalog_name: Union[str, None, UnsetType] = UNSET @@ -768,19 +768,19 @@ class RelatedTable(RelatedSQL): iceberg_catalog_table_name: Union[str, None, UnsetType] = UNSET """Catalog table name (actual table name on the catalog side).""" - sql_impala_parameters: Union[Dict[str, str], None, UnsetType] = UNSET + table_impala_parameters: Union[Dict[str, str], None, UnsetType] = UNSET """Extra attributes for Impala""" iceberg_catalog_table_namespace: Union[str, None, UnsetType] = UNSET """Catalog table namespace (actual database name on the catalog side).""" - sql_external_volume_name: Union[str, None, UnsetType] = UNSET + table_external_volume_name: Union[str, None, UnsetType] = UNSET """External volume name for the table.""" iceberg_table_base_location: Union[str, None, UnsetType] = UNSET """Iceberg table base location inside the external volume.""" - sql_retention_time: Union[int, None, UnsetType] = UNSET + table_retention_time: Union[int, None, UnsetType] = UNSET """Data retention time in days.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/ssrs_data_set.py b/pyatlan_v9/model/assets/ssrs_data_set.py index 59741f963..797f9fcd5 100644 --- a/pyatlan_v9/model/assets/ssrs_data_set.py +++ b/pyatlan_v9/model/assets/ssrs_data_set.py @@ -67,20 +67,20 @@ class SSRSDataSet(Asset): Instance of a data set within an SSRS report in Atlan. """ - SSRS_SQL_QUERY: ClassVar[Any] = None - SSRS_IS_SHARED_DATA_SET: ClassVar[Any] = None - SSRS_QUERY_PARAMETERS: ClassVar[Any] = None - SSRS_DATA_SOURCE_CONNECTION_STRING: ClassVar[Any] = None - SSRS_DATA_SOURCE_REFERENCE: ClassVar[Any] = None - SSRS_EXTENSION: ClassVar[Any] = None - SSRS_REFERENCE_TABLE_NAMES: ClassVar[Any] = None - SSRS_CUBE_NAME: ClassVar[Any] = None - SSRS_STORED_PROCEDURE_NAME: ClassVar[Any] = None - SSRS_PROCESSED_SQL: ClassVar[Any] = None - SSRS_LOG_MESSAGES: ClassVar[Any] = None - SSRS_ERROR_CODE: ClassVar[Any] = None - SSRS_CONNECTED: ClassVar[Any] = None - SSRS_FIELD_COUNT: ClassVar[Any] = None + SSRS_DATA_SET_SQL_QUERY: ClassVar[Any] = None + SSRS_DATA_SET_IS_SHARED_DATA_SET: ClassVar[Any] = None + SSRS_DATA_SET_QUERY_PARAMETERS: ClassVar[Any] = None + SSRS_DATA_SET_DATA_SOURCE_CONNECTION_STRING: ClassVar[Any] = None + SSRS_DATA_SET_DATA_SOURCE_REFERENCE: ClassVar[Any] = None + SSRS_DATA_SET_EXTENSION: ClassVar[Any] = None + SSRS_DATA_SET_REFERENCE_TABLE_NAMES: ClassVar[Any] = None + SSRS_DATA_SET_CUBE_NAME: ClassVar[Any] = None + SSRS_DATA_SET_STORED_PROCEDURE_NAME: ClassVar[Any] = None + SSRS_DATA_SET_PROCESSED_SQL: ClassVar[Any] = None + SSRS_DATA_SET_LOG_MESSAGES: ClassVar[Any] = None + SSRS_DATA_SET_ERROR_CODE: ClassVar[Any] = None + SSRS_DATA_SET_CONNECTED: ClassVar[Any] = None + SSRS_DATA_SET_FIELD_COUNT: ClassVar[Any] = None SSRS_PATH: ClassVar[Any] = None SSRS_USED_IN_REPORTS: ClassVar[Any] = None SSRS_HIDDEN: ClassVar[Any] = None @@ -131,46 +131,46 @@ class SSRSDataSet(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - ssrs_sql_query: Union[str, None, UnsetType] = UNSET + ssrs_data_set_sql_query: Union[str, None, UnsetType] = UNSET """SQL query for the data set.""" - ssrs_is_shared_data_set: Union[bool, None, UnsetType] = UNSET + ssrs_data_set_is_shared_data_set: Union[bool, None, UnsetType] = UNSET """Whether the data set is shared.""" - ssrs_query_parameters: Union[str, None, UnsetType] = UNSET + ssrs_data_set_query_parameters: Union[str, None, UnsetType] = UNSET """Query parameters for the data set.""" - ssrs_data_source_connection_string: Union[str, None, UnsetType] = UNSET + ssrs_data_set_data_source_connection_string: Union[str, None, UnsetType] = UNSET """Data source connection string for the data set.""" - ssrs_data_source_reference: Union[str, None, UnsetType] = UNSET + ssrs_data_set_data_source_reference: Union[str, None, UnsetType] = UNSET """Data source reference for the data set.""" - ssrs_extension: Union[str, None, UnsetType] = UNSET + ssrs_data_set_extension: Union[str, None, UnsetType] = UNSET """Extension for the data set.""" - ssrs_reference_table_names: Union[List[str], None, UnsetType] = UNSET + ssrs_data_set_reference_table_names: Union[List[str], None, UnsetType] = UNSET """Reference table names for the data set.""" - ssrs_cube_name: Union[str, None, UnsetType] = UNSET + ssrs_data_set_cube_name: Union[str, None, UnsetType] = UNSET """Cube name for the data set.""" - ssrs_stored_procedure_name: Union[str, None, UnsetType] = UNSET + ssrs_data_set_stored_procedure_name: Union[str, None, UnsetType] = UNSET """Stored procedure name for the data set.""" - ssrs_processed_sql: Union[str, None, UnsetType] = UNSET + ssrs_data_set_processed_sql: Union[str, None, UnsetType] = UNSET """Processed SQL for the data set.""" - ssrs_log_messages: Union[str, None, UnsetType] = UNSET + ssrs_data_set_log_messages: Union[str, None, UnsetType] = UNSET """Log messages for the data set.""" - ssrs_error_code: Union[str, None, UnsetType] = UNSET + ssrs_data_set_error_code: Union[str, None, UnsetType] = UNSET """Error code for the data set.""" - ssrs_connected: Union[bool, None, UnsetType] = UNSET + ssrs_data_set_connected: Union[bool, None, UnsetType] = UNSET """Whether the data set is connected.""" - ssrs_field_count: Union[int, None, UnsetType] = UNSET + ssrs_data_set_field_count: Union[int, None, UnsetType] = UNSET """Number of fields in this dataset.""" ssrs_path: Union[str, None, UnsetType] = UNSET @@ -466,46 +466,46 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SSRSDataSet class SSRSDataSetAttributes(AssetAttributes): """SSRSDataSet-specific attributes for nested API format.""" - ssrs_sql_query: Union[str, None, UnsetType] = UNSET + ssrs_data_set_sql_query: Union[str, None, UnsetType] = UNSET """SQL query for the data set.""" - ssrs_is_shared_data_set: Union[bool, None, UnsetType] = UNSET + ssrs_data_set_is_shared_data_set: Union[bool, None, UnsetType] = UNSET """Whether the data set is shared.""" - ssrs_query_parameters: Union[str, None, UnsetType] = UNSET + ssrs_data_set_query_parameters: Union[str, None, UnsetType] = UNSET """Query parameters for the data set.""" - ssrs_data_source_connection_string: Union[str, None, UnsetType] = UNSET + ssrs_data_set_data_source_connection_string: Union[str, None, UnsetType] = UNSET """Data source connection string for the data set.""" - ssrs_data_source_reference: Union[str, None, UnsetType] = UNSET + ssrs_data_set_data_source_reference: Union[str, None, UnsetType] = UNSET """Data source reference for the data set.""" - ssrs_extension: Union[str, None, UnsetType] = UNSET + ssrs_data_set_extension: Union[str, None, UnsetType] = UNSET """Extension for the data set.""" - ssrs_reference_table_names: Union[List[str], None, UnsetType] = UNSET + ssrs_data_set_reference_table_names: Union[List[str], None, UnsetType] = UNSET """Reference table names for the data set.""" - ssrs_cube_name: Union[str, None, UnsetType] = UNSET + ssrs_data_set_cube_name: Union[str, None, UnsetType] = UNSET """Cube name for the data set.""" - ssrs_stored_procedure_name: Union[str, None, UnsetType] = UNSET + ssrs_data_set_stored_procedure_name: Union[str, None, UnsetType] = UNSET """Stored procedure name for the data set.""" - ssrs_processed_sql: Union[str, None, UnsetType] = UNSET + ssrs_data_set_processed_sql: Union[str, None, UnsetType] = UNSET """Processed SQL for the data set.""" - ssrs_log_messages: Union[str, None, UnsetType] = UNSET + ssrs_data_set_log_messages: Union[str, None, UnsetType] = UNSET """Log messages for the data set.""" - ssrs_error_code: Union[str, None, UnsetType] = UNSET + ssrs_data_set_error_code: Union[str, None, UnsetType] = UNSET """Error code for the data set.""" - ssrs_connected: Union[bool, None, UnsetType] = UNSET + ssrs_data_set_connected: Union[bool, None, UnsetType] = UNSET """Whether the data set is connected.""" - ssrs_field_count: Union[int, None, UnsetType] = UNSET + ssrs_data_set_field_count: Union[int, None, UnsetType] = UNSET """Number of fields in this dataset.""" ssrs_path: Union[str, None, UnsetType] = UNSET @@ -732,20 +732,22 @@ def _populate_ssrs_data_set_attrs( ) -> None: """Populate SSRSDataSet-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.ssrs_sql_query = obj.ssrs_sql_query - attrs.ssrs_is_shared_data_set = obj.ssrs_is_shared_data_set - attrs.ssrs_query_parameters = obj.ssrs_query_parameters - attrs.ssrs_data_source_connection_string = obj.ssrs_data_source_connection_string - attrs.ssrs_data_source_reference = obj.ssrs_data_source_reference - attrs.ssrs_extension = obj.ssrs_extension - attrs.ssrs_reference_table_names = obj.ssrs_reference_table_names - attrs.ssrs_cube_name = obj.ssrs_cube_name - attrs.ssrs_stored_procedure_name = obj.ssrs_stored_procedure_name - attrs.ssrs_processed_sql = obj.ssrs_processed_sql - attrs.ssrs_log_messages = obj.ssrs_log_messages - attrs.ssrs_error_code = obj.ssrs_error_code - attrs.ssrs_connected = obj.ssrs_connected - attrs.ssrs_field_count = obj.ssrs_field_count + attrs.ssrs_data_set_sql_query = obj.ssrs_data_set_sql_query + attrs.ssrs_data_set_is_shared_data_set = obj.ssrs_data_set_is_shared_data_set + attrs.ssrs_data_set_query_parameters = obj.ssrs_data_set_query_parameters + attrs.ssrs_data_set_data_source_connection_string = ( + obj.ssrs_data_set_data_source_connection_string + ) + attrs.ssrs_data_set_data_source_reference = obj.ssrs_data_set_data_source_reference + attrs.ssrs_data_set_extension = obj.ssrs_data_set_extension + attrs.ssrs_data_set_reference_table_names = obj.ssrs_data_set_reference_table_names + attrs.ssrs_data_set_cube_name = obj.ssrs_data_set_cube_name + attrs.ssrs_data_set_stored_procedure_name = obj.ssrs_data_set_stored_procedure_name + attrs.ssrs_data_set_processed_sql = obj.ssrs_data_set_processed_sql + attrs.ssrs_data_set_log_messages = obj.ssrs_data_set_log_messages + attrs.ssrs_data_set_error_code = obj.ssrs_data_set_error_code + attrs.ssrs_data_set_connected = obj.ssrs_data_set_connected + attrs.ssrs_data_set_field_count = obj.ssrs_data_set_field_count attrs.ssrs_path = obj.ssrs_path attrs.ssrs_used_in_reports = obj.ssrs_used_in_reports attrs.ssrs_hidden = obj.ssrs_hidden @@ -765,22 +767,28 @@ def _populate_ssrs_data_set_attrs( def _extract_ssrs_data_set_attrs(attrs: SSRSDataSetAttributes) -> dict: """Extract all SSRSDataSet attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["ssrs_sql_query"] = attrs.ssrs_sql_query - result["ssrs_is_shared_data_set"] = attrs.ssrs_is_shared_data_set - result["ssrs_query_parameters"] = attrs.ssrs_query_parameters - result["ssrs_data_source_connection_string"] = ( - attrs.ssrs_data_source_connection_string + result["ssrs_data_set_sql_query"] = attrs.ssrs_data_set_sql_query + result["ssrs_data_set_is_shared_data_set"] = attrs.ssrs_data_set_is_shared_data_set + result["ssrs_data_set_query_parameters"] = attrs.ssrs_data_set_query_parameters + result["ssrs_data_set_data_source_connection_string"] = ( + attrs.ssrs_data_set_data_source_connection_string + ) + result["ssrs_data_set_data_source_reference"] = ( + attrs.ssrs_data_set_data_source_reference + ) + result["ssrs_data_set_extension"] = attrs.ssrs_data_set_extension + result["ssrs_data_set_reference_table_names"] = ( + attrs.ssrs_data_set_reference_table_names ) - result["ssrs_data_source_reference"] = attrs.ssrs_data_source_reference - result["ssrs_extension"] = attrs.ssrs_extension - result["ssrs_reference_table_names"] = attrs.ssrs_reference_table_names - result["ssrs_cube_name"] = attrs.ssrs_cube_name - result["ssrs_stored_procedure_name"] = attrs.ssrs_stored_procedure_name - result["ssrs_processed_sql"] = attrs.ssrs_processed_sql - result["ssrs_log_messages"] = attrs.ssrs_log_messages - result["ssrs_error_code"] = attrs.ssrs_error_code - result["ssrs_connected"] = attrs.ssrs_connected - result["ssrs_field_count"] = attrs.ssrs_field_count + result["ssrs_data_set_cube_name"] = attrs.ssrs_data_set_cube_name + result["ssrs_data_set_stored_procedure_name"] = ( + attrs.ssrs_data_set_stored_procedure_name + ) + result["ssrs_data_set_processed_sql"] = attrs.ssrs_data_set_processed_sql + result["ssrs_data_set_log_messages"] = attrs.ssrs_data_set_log_messages + result["ssrs_data_set_error_code"] = attrs.ssrs_data_set_error_code + result["ssrs_data_set_connected"] = attrs.ssrs_data_set_connected + result["ssrs_data_set_field_count"] = attrs.ssrs_data_set_field_count result["ssrs_path"] = attrs.ssrs_path result["ssrs_used_in_reports"] = attrs.ssrs_used_in_reports result["ssrs_hidden"] = attrs.ssrs_hidden @@ -906,32 +914,48 @@ def _ssrs_data_set_from_nested_bytes(data: bytes, serde: Serde) -> SSRSDataSet: RelationField, ) -SSRSDataSet.SSRS_SQL_QUERY = KeywordField("ssrsSqlQuery", "ssrsSqlQuery") -SSRSDataSet.SSRS_IS_SHARED_DATA_SET = BooleanField( - "ssrsIsSharedDataSet", "ssrsIsSharedDataSet" +SSRSDataSet.SSRS_DATA_SET_SQL_QUERY = KeywordField( + "ssrsDataSetSqlQuery", "ssrsDataSetSqlQuery" +) +SSRSDataSet.SSRS_DATA_SET_IS_SHARED_DATA_SET = BooleanField( + "ssrsDataSetIsSharedDataSet", "ssrsDataSetIsSharedDataSet" +) +SSRSDataSet.SSRS_DATA_SET_QUERY_PARAMETERS = KeywordField( + "ssrsDataSetQueryParameters", "ssrsDataSetQueryParameters" +) +SSRSDataSet.SSRS_DATA_SET_DATA_SOURCE_CONNECTION_STRING = KeywordField( + "ssrsDataSetDataSourceConnectionString", "ssrsDataSetDataSourceConnectionString" +) +SSRSDataSet.SSRS_DATA_SET_DATA_SOURCE_REFERENCE = KeywordField( + "ssrsDataSetDataSourceReference", "ssrsDataSetDataSourceReference" +) +SSRSDataSet.SSRS_DATA_SET_EXTENSION = KeywordField( + "ssrsDataSetExtension", "ssrsDataSetExtension" +) +SSRSDataSet.SSRS_DATA_SET_REFERENCE_TABLE_NAMES = KeywordField( + "ssrsDataSetReferenceTableNames", "ssrsDataSetReferenceTableNames" +) +SSRSDataSet.SSRS_DATA_SET_CUBE_NAME = KeywordField( + "ssrsDataSetCubeName", "ssrsDataSetCubeName" +) +SSRSDataSet.SSRS_DATA_SET_STORED_PROCEDURE_NAME = KeywordField( + "ssrsDataSetStoredProcedureName", "ssrsDataSetStoredProcedureName" ) -SSRSDataSet.SSRS_QUERY_PARAMETERS = KeywordField( - "ssrsQueryParameters", "ssrsQueryParameters" +SSRSDataSet.SSRS_DATA_SET_PROCESSED_SQL = KeywordField( + "ssrsDataSetProcessedSql", "ssrsDataSetProcessedSql" ) -SSRSDataSet.SSRS_DATA_SOURCE_CONNECTION_STRING = KeywordField( - "ssrsDataSourceConnectionString", "ssrsDataSourceConnectionString" +SSRSDataSet.SSRS_DATA_SET_LOG_MESSAGES = KeywordField( + "ssrsDataSetLogMessages", "ssrsDataSetLogMessages" ) -SSRSDataSet.SSRS_DATA_SOURCE_REFERENCE = KeywordField( - "ssrsDataSourceReference", "ssrsDataSourceReference" +SSRSDataSet.SSRS_DATA_SET_ERROR_CODE = KeywordField( + "ssrsDataSetErrorCode", "ssrsDataSetErrorCode" ) -SSRSDataSet.SSRS_EXTENSION = KeywordField("ssrsExtension", "ssrsExtension") -SSRSDataSet.SSRS_REFERENCE_TABLE_NAMES = KeywordField( - "ssrsReferenceTableNames", "ssrsReferenceTableNames" +SSRSDataSet.SSRS_DATA_SET_CONNECTED = BooleanField( + "ssrsDataSetConnected", "ssrsDataSetConnected" ) -SSRSDataSet.SSRS_CUBE_NAME = KeywordField("ssrsCubeName", "ssrsCubeName") -SSRSDataSet.SSRS_STORED_PROCEDURE_NAME = KeywordField( - "ssrsStoredProcedureName", "ssrsStoredProcedureName" +SSRSDataSet.SSRS_DATA_SET_FIELD_COUNT = NumericField( + "ssrsDataSetFieldCount", "ssrsDataSetFieldCount" ) -SSRSDataSet.SSRS_PROCESSED_SQL = KeywordField("ssrsProcessedSql", "ssrsProcessedSql") -SSRSDataSet.SSRS_LOG_MESSAGES = KeywordField("ssrsLogMessages", "ssrsLogMessages") -SSRSDataSet.SSRS_ERROR_CODE = KeywordField("ssrsErrorCode", "ssrsErrorCode") -SSRSDataSet.SSRS_CONNECTED = BooleanField("ssrsConnected", "ssrsConnected") -SSRSDataSet.SSRS_FIELD_COUNT = NumericField("ssrsFieldCount", "ssrsFieldCount") SSRSDataSet.SSRS_PATH = KeywordField("ssrsPath", "ssrsPath") SSRSDataSet.SSRS_USED_IN_REPORTS = BooleanField( "ssrsUsedInReports", "ssrsUsedInReports" diff --git a/pyatlan_v9/model/assets/ssrs_field.py b/pyatlan_v9/model/assets/ssrs_field.py index 18b71abda..56a6fe2b9 100644 --- a/pyatlan_v9/model/assets/ssrs_field.py +++ b/pyatlan_v9/model/assets/ssrs_field.py @@ -67,18 +67,18 @@ class SSRSField(Asset): Instance of a field within an SSRS data set in Atlan. """ - SSRS_DATATYPE: ClassVar[Any] = None - SSRS_FUNCTION: ClassVar[Any] = None - SSRS_CALCULATED_FIELD: ClassVar[Any] = None - SSRS_DATABASE_FIELD: ClassVar[Any] = None - SSRS_REFERENCED_COLUMN_NAMES: ClassVar[Any] = None - SSRS_SQL_TRANSFORM_EXPRESSION: ClassVar[Any] = None - SSRS_ORDINAL_POSITION: ClassVar[Any] = None - SSRS_LOG_MESSAGES: ClassVar[Any] = None - SSRS_ERROR_CODE: ClassVar[Any] = None - SSRS_REPORT_SOURCE: ClassVar[Any] = None - SSRS_DATA_GROUP: ClassVar[Any] = None - SSRS_CONNECTED: ClassVar[Any] = None + SSRS_FIELD_DATATYPE: ClassVar[Any] = None + SSRS_FIELD_FUNCTION: ClassVar[Any] = None + SSRS_FIELD_CALCULATED_FIELD: ClassVar[Any] = None + SSRS_FIELD_DATABASE_FIELD: ClassVar[Any] = None + SSRS_FIELD_REFERENCED_COLUMN_NAMES: ClassVar[Any] = None + SSRS_FIELD_SQL_TRANSFORM_EXPRESSION: ClassVar[Any] = None + SSRS_FIELD_ORDINAL_POSITION: ClassVar[Any] = None + SSRS_FIELD_LOG_MESSAGES: ClassVar[Any] = None + SSRS_FIELD_ERROR_CODE: ClassVar[Any] = None + SSRS_FIELD_REPORT_SOURCE: ClassVar[Any] = None + SSRS_FIELD_DATA_GROUP: ClassVar[Any] = None + SSRS_FIELD_CONNECTED: ClassVar[Any] = None SSRS_PATH: ClassVar[Any] = None SSRS_USED_IN_REPORTS: ClassVar[Any] = None SSRS_HIDDEN: ClassVar[Any] = None @@ -128,40 +128,40 @@ class SSRSField(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - ssrs_datatype: Union[str, None, UnsetType] = UNSET + ssrs_field_datatype: Union[str, None, UnsetType] = UNSET """Data type of the field.""" - ssrs_function: Union[str, None, UnsetType] = UNSET + ssrs_field_function: Union[str, None, UnsetType] = UNSET """Function applied to the field.""" - ssrs_calculated_field: Union[bool, None, UnsetType] = UNSET + ssrs_field_calculated_field: Union[bool, None, UnsetType] = UNSET """Whether the field is calculated.""" - ssrs_database_field: Union[bool, None, UnsetType] = UNSET + ssrs_field_database_field: Union[bool, None, UnsetType] = UNSET """Whether the field is a database field.""" - ssrs_referenced_column_names: Union[List[str], None, UnsetType] = UNSET + ssrs_field_referenced_column_names: Union[List[str], None, UnsetType] = UNSET """Referenced column names for the field.""" - ssrs_sql_transform_expression: Union[str, None, UnsetType] = UNSET + ssrs_field_sql_transform_expression: Union[str, None, UnsetType] = UNSET """SQL transform expression for the field.""" - ssrs_ordinal_position: Union[int, None, UnsetType] = UNSET + ssrs_field_ordinal_position: Union[int, None, UnsetType] = UNSET """Ordinal position of the field.""" - ssrs_log_messages: Union[str, None, UnsetType] = UNSET + ssrs_field_log_messages: Union[str, None, UnsetType] = UNSET """Log messages for the field.""" - ssrs_error_code: Union[str, None, UnsetType] = UNSET + ssrs_field_error_code: Union[str, None, UnsetType] = UNSET """Error code for the field.""" - ssrs_report_source: Union[str, None, UnsetType] = UNSET + ssrs_field_report_source: Union[str, None, UnsetType] = UNSET """Report source for the field.""" - ssrs_data_group: Union[str, None, UnsetType] = UNSET + ssrs_field_data_group: Union[str, None, UnsetType] = UNSET """Data group for the field.""" - ssrs_connected: Union[bool, None, UnsetType] = UNSET + ssrs_field_connected: Union[bool, None, UnsetType] = UNSET """Whether the field is connected.""" ssrs_path: Union[str, None, UnsetType] = UNSET @@ -458,40 +458,40 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SSRSField: class SSRSFieldAttributes(AssetAttributes): """SSRSField-specific attributes for nested API format.""" - ssrs_datatype: Union[str, None, UnsetType] = UNSET + ssrs_field_datatype: Union[str, None, UnsetType] = UNSET """Data type of the field.""" - ssrs_function: Union[str, None, UnsetType] = UNSET + ssrs_field_function: Union[str, None, UnsetType] = UNSET """Function applied to the field.""" - ssrs_calculated_field: Union[bool, None, UnsetType] = UNSET + ssrs_field_calculated_field: Union[bool, None, UnsetType] = UNSET """Whether the field is calculated.""" - ssrs_database_field: Union[bool, None, UnsetType] = UNSET + ssrs_field_database_field: Union[bool, None, UnsetType] = UNSET """Whether the field is a database field.""" - ssrs_referenced_column_names: Union[List[str], None, UnsetType] = UNSET + ssrs_field_referenced_column_names: Union[List[str], None, UnsetType] = UNSET """Referenced column names for the field.""" - ssrs_sql_transform_expression: Union[str, None, UnsetType] = UNSET + ssrs_field_sql_transform_expression: Union[str, None, UnsetType] = UNSET """SQL transform expression for the field.""" - ssrs_ordinal_position: Union[int, None, UnsetType] = UNSET + ssrs_field_ordinal_position: Union[int, None, UnsetType] = UNSET """Ordinal position of the field.""" - ssrs_log_messages: Union[str, None, UnsetType] = UNSET + ssrs_field_log_messages: Union[str, None, UnsetType] = UNSET """Log messages for the field.""" - ssrs_error_code: Union[str, None, UnsetType] = UNSET + ssrs_field_error_code: Union[str, None, UnsetType] = UNSET """Error code for the field.""" - ssrs_report_source: Union[str, None, UnsetType] = UNSET + ssrs_field_report_source: Union[str, None, UnsetType] = UNSET """Report source for the field.""" - ssrs_data_group: Union[str, None, UnsetType] = UNSET + ssrs_field_data_group: Union[str, None, UnsetType] = UNSET """Data group for the field.""" - ssrs_connected: Union[bool, None, UnsetType] = UNSET + ssrs_field_connected: Union[bool, None, UnsetType] = UNSET """Whether the field is connected.""" ssrs_path: Union[str, None, UnsetType] = UNSET @@ -712,18 +712,18 @@ class SSRSFieldNested(AssetNested): def _populate_ssrs_field_attrs(attrs: SSRSFieldAttributes, obj: SSRSField) -> None: """Populate SSRSField-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.ssrs_datatype = obj.ssrs_datatype - attrs.ssrs_function = obj.ssrs_function - attrs.ssrs_calculated_field = obj.ssrs_calculated_field - attrs.ssrs_database_field = obj.ssrs_database_field - attrs.ssrs_referenced_column_names = obj.ssrs_referenced_column_names - attrs.ssrs_sql_transform_expression = obj.ssrs_sql_transform_expression - attrs.ssrs_ordinal_position = obj.ssrs_ordinal_position - attrs.ssrs_log_messages = obj.ssrs_log_messages - attrs.ssrs_error_code = obj.ssrs_error_code - attrs.ssrs_report_source = obj.ssrs_report_source - attrs.ssrs_data_group = obj.ssrs_data_group - attrs.ssrs_connected = obj.ssrs_connected + attrs.ssrs_field_datatype = obj.ssrs_field_datatype + attrs.ssrs_field_function = obj.ssrs_field_function + attrs.ssrs_field_calculated_field = obj.ssrs_field_calculated_field + attrs.ssrs_field_database_field = obj.ssrs_field_database_field + attrs.ssrs_field_referenced_column_names = obj.ssrs_field_referenced_column_names + attrs.ssrs_field_sql_transform_expression = obj.ssrs_field_sql_transform_expression + attrs.ssrs_field_ordinal_position = obj.ssrs_field_ordinal_position + attrs.ssrs_field_log_messages = obj.ssrs_field_log_messages + attrs.ssrs_field_error_code = obj.ssrs_field_error_code + attrs.ssrs_field_report_source = obj.ssrs_field_report_source + attrs.ssrs_field_data_group = obj.ssrs_field_data_group + attrs.ssrs_field_connected = obj.ssrs_field_connected attrs.ssrs_path = obj.ssrs_path attrs.ssrs_used_in_reports = obj.ssrs_used_in_reports attrs.ssrs_hidden = obj.ssrs_hidden @@ -743,18 +743,22 @@ def _populate_ssrs_field_attrs(attrs: SSRSFieldAttributes, obj: SSRSField) -> No def _extract_ssrs_field_attrs(attrs: SSRSFieldAttributes) -> dict: """Extract all SSRSField attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["ssrs_datatype"] = attrs.ssrs_datatype - result["ssrs_function"] = attrs.ssrs_function - result["ssrs_calculated_field"] = attrs.ssrs_calculated_field - result["ssrs_database_field"] = attrs.ssrs_database_field - result["ssrs_referenced_column_names"] = attrs.ssrs_referenced_column_names - result["ssrs_sql_transform_expression"] = attrs.ssrs_sql_transform_expression - result["ssrs_ordinal_position"] = attrs.ssrs_ordinal_position - result["ssrs_log_messages"] = attrs.ssrs_log_messages - result["ssrs_error_code"] = attrs.ssrs_error_code - result["ssrs_report_source"] = attrs.ssrs_report_source - result["ssrs_data_group"] = attrs.ssrs_data_group - result["ssrs_connected"] = attrs.ssrs_connected + result["ssrs_field_datatype"] = attrs.ssrs_field_datatype + result["ssrs_field_function"] = attrs.ssrs_field_function + result["ssrs_field_calculated_field"] = attrs.ssrs_field_calculated_field + result["ssrs_field_database_field"] = attrs.ssrs_field_database_field + result["ssrs_field_referenced_column_names"] = ( + attrs.ssrs_field_referenced_column_names + ) + result["ssrs_field_sql_transform_expression"] = ( + attrs.ssrs_field_sql_transform_expression + ) + result["ssrs_field_ordinal_position"] = attrs.ssrs_field_ordinal_position + result["ssrs_field_log_messages"] = attrs.ssrs_field_log_messages + result["ssrs_field_error_code"] = attrs.ssrs_field_error_code + result["ssrs_field_report_source"] = attrs.ssrs_field_report_source + result["ssrs_field_data_group"] = attrs.ssrs_field_data_group + result["ssrs_field_connected"] = attrs.ssrs_field_connected result["ssrs_path"] = attrs.ssrs_path result["ssrs_used_in_reports"] = attrs.ssrs_used_in_reports result["ssrs_hidden"] = attrs.ssrs_hidden @@ -880,26 +884,38 @@ def _ssrs_field_from_nested_bytes(data: bytes, serde: Serde) -> SSRSField: RelationField, ) -SSRSField.SSRS_DATATYPE = KeywordField("ssrsDatatype", "ssrsDatatype") -SSRSField.SSRS_FUNCTION = KeywordField("ssrsFunction", "ssrsFunction") -SSRSField.SSRS_CALCULATED_FIELD = BooleanField( - "ssrsCalculatedField", "ssrsCalculatedField" +SSRSField.SSRS_FIELD_DATATYPE = KeywordField("ssrsFieldDatatype", "ssrsFieldDatatype") +SSRSField.SSRS_FIELD_FUNCTION = KeywordField("ssrsFieldFunction", "ssrsFieldFunction") +SSRSField.SSRS_FIELD_CALCULATED_FIELD = BooleanField( + "ssrsFieldCalculatedField", "ssrsFieldCalculatedField" +) +SSRSField.SSRS_FIELD_DATABASE_FIELD = BooleanField( + "ssrsFieldDatabaseField", "ssrsFieldDatabaseField" +) +SSRSField.SSRS_FIELD_REFERENCED_COLUMN_NAMES = KeywordField( + "ssrsFieldReferencedColumnNames", "ssrsFieldReferencedColumnNames" +) +SSRSField.SSRS_FIELD_SQL_TRANSFORM_EXPRESSION = KeywordField( + "ssrsFieldSqlTransformExpression", "ssrsFieldSqlTransformExpression" +) +SSRSField.SSRS_FIELD_ORDINAL_POSITION = NumericField( + "ssrsFieldOrdinalPosition", "ssrsFieldOrdinalPosition" +) +SSRSField.SSRS_FIELD_LOG_MESSAGES = KeywordField( + "ssrsFieldLogMessages", "ssrsFieldLogMessages" +) +SSRSField.SSRS_FIELD_ERROR_CODE = KeywordField( + "ssrsFieldErrorCode", "ssrsFieldErrorCode" ) -SSRSField.SSRS_DATABASE_FIELD = BooleanField("ssrsDatabaseField", "ssrsDatabaseField") -SSRSField.SSRS_REFERENCED_COLUMN_NAMES = KeywordField( - "ssrsReferencedColumnNames", "ssrsReferencedColumnNames" +SSRSField.SSRS_FIELD_REPORT_SOURCE = KeywordField( + "ssrsFieldReportSource", "ssrsFieldReportSource" ) -SSRSField.SSRS_SQL_TRANSFORM_EXPRESSION = KeywordField( - "ssrsSqlTransformExpression", "ssrsSqlTransformExpression" +SSRSField.SSRS_FIELD_DATA_GROUP = KeywordField( + "ssrsFieldDataGroup", "ssrsFieldDataGroup" ) -SSRSField.SSRS_ORDINAL_POSITION = NumericField( - "ssrsOrdinalPosition", "ssrsOrdinalPosition" +SSRSField.SSRS_FIELD_CONNECTED = BooleanField( + "ssrsFieldConnected", "ssrsFieldConnected" ) -SSRSField.SSRS_LOG_MESSAGES = KeywordField("ssrsLogMessages", "ssrsLogMessages") -SSRSField.SSRS_ERROR_CODE = KeywordField("ssrsErrorCode", "ssrsErrorCode") -SSRSField.SSRS_REPORT_SOURCE = KeywordField("ssrsReportSource", "ssrsReportSource") -SSRSField.SSRS_DATA_GROUP = KeywordField("ssrsDataGroup", "ssrsDataGroup") -SSRSField.SSRS_CONNECTED = BooleanField("ssrsConnected", "ssrsConnected") SSRSField.SSRS_PATH = KeywordField("ssrsPath", "ssrsPath") SSRSField.SSRS_USED_IN_REPORTS = BooleanField("ssrsUsedInReports", "ssrsUsedInReports") SSRSField.SSRS_HIDDEN = BooleanField("ssrsHidden", "ssrsHidden") diff --git a/pyatlan_v9/model/assets/ssrs_related.py b/pyatlan_v9/model/assets/ssrs_related.py index 866c25474..7c233e441 100644 --- a/pyatlan_v9/model/assets/ssrs_related.py +++ b/pyatlan_v9/model/assets/ssrs_related.py @@ -108,16 +108,16 @@ class RelatedSSRSReport(RelatedSSRS): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SSRSReport" so it serializes correctly - ssrs_size: Union[int, None, UnsetType] = UNSET + ssrs_report_size: Union[int, None, UnsetType] = UNSET """Size of the report.""" - ssrs_parameters: Union[str, None, UnsetType] = UNSET + ssrs_report_parameters: Union[str, None, UnsetType] = UNSET """Parameters for the report.""" - ssrs_data_set_count: Union[int, None, UnsetType] = UNSET + ssrs_report_data_set_count: Union[int, None, UnsetType] = UNSET """Number of datasets in this report.""" - ssrs_data_source_count: Union[int, None, UnsetType] = UNSET + ssrs_report_data_source_count: Union[int, None, UnsetType] = UNSET """Number of data sources in this report.""" def __post_init__(self) -> None: @@ -136,46 +136,46 @@ class RelatedSSRSDataSet(RelatedSSRS): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SSRSDataSet" so it serializes correctly - ssrs_sql_query: Union[str, None, UnsetType] = UNSET + ssrs_data_set_sql_query: Union[str, None, UnsetType] = UNSET """SQL query for the data set.""" - ssrs_is_shared_data_set: Union[bool, None, UnsetType] = UNSET + ssrs_data_set_is_shared_data_set: Union[bool, None, UnsetType] = UNSET """Whether the data set is shared.""" - ssrs_query_parameters: Union[str, None, UnsetType] = UNSET + ssrs_data_set_query_parameters: Union[str, None, UnsetType] = UNSET """Query parameters for the data set.""" - ssrs_data_source_connection_string: Union[str, None, UnsetType] = UNSET + ssrs_data_set_data_source_connection_string: Union[str, None, UnsetType] = UNSET """Data source connection string for the data set.""" - ssrs_data_source_reference: Union[str, None, UnsetType] = UNSET + ssrs_data_set_data_source_reference: Union[str, None, UnsetType] = UNSET """Data source reference for the data set.""" - ssrs_extension: Union[str, None, UnsetType] = UNSET + ssrs_data_set_extension: Union[str, None, UnsetType] = UNSET """Extension for the data set.""" - ssrs_reference_table_names: Union[List[str], None, UnsetType] = UNSET + ssrs_data_set_reference_table_names: Union[List[str], None, UnsetType] = UNSET """Reference table names for the data set.""" - ssrs_cube_name: Union[str, None, UnsetType] = UNSET + ssrs_data_set_cube_name: Union[str, None, UnsetType] = UNSET """Cube name for the data set.""" - ssrs_stored_procedure_name: Union[str, None, UnsetType] = UNSET + ssrs_data_set_stored_procedure_name: Union[str, None, UnsetType] = UNSET """Stored procedure name for the data set.""" - ssrs_processed_sql: Union[str, None, UnsetType] = UNSET + ssrs_data_set_processed_sql: Union[str, None, UnsetType] = UNSET """Processed SQL for the data set.""" - ssrs_log_messages: Union[str, None, UnsetType] = UNSET + ssrs_data_set_log_messages: Union[str, None, UnsetType] = UNSET """Log messages for the data set.""" - ssrs_error_code: Union[str, None, UnsetType] = UNSET + ssrs_data_set_error_code: Union[str, None, UnsetType] = UNSET """Error code for the data set.""" - ssrs_connected: Union[bool, None, UnsetType] = UNSET + ssrs_data_set_connected: Union[bool, None, UnsetType] = UNSET """Whether the data set is connected.""" - ssrs_field_count: Union[int, None, UnsetType] = UNSET + ssrs_data_set_field_count: Union[int, None, UnsetType] = UNSET """Number of fields in this dataset.""" def __post_init__(self) -> None: @@ -194,40 +194,40 @@ class RelatedSSRSField(RelatedSSRS): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "SSRSField" so it serializes correctly - ssrs_datatype: Union[str, None, UnsetType] = UNSET + ssrs_field_datatype: Union[str, None, UnsetType] = UNSET """Data type of the field.""" - ssrs_function: Union[str, None, UnsetType] = UNSET + ssrs_field_function: Union[str, None, UnsetType] = UNSET """Function applied to the field.""" - ssrs_calculated_field: Union[bool, None, UnsetType] = UNSET + ssrs_field_calculated_field: Union[bool, None, UnsetType] = UNSET """Whether the field is calculated.""" - ssrs_database_field: Union[bool, None, UnsetType] = UNSET + ssrs_field_database_field: Union[bool, None, UnsetType] = UNSET """Whether the field is a database field.""" - ssrs_referenced_column_names: Union[List[str], None, UnsetType] = UNSET + ssrs_field_referenced_column_names: Union[List[str], None, UnsetType] = UNSET """Referenced column names for the field.""" - ssrs_sql_transform_expression: Union[str, None, UnsetType] = UNSET + ssrs_field_sql_transform_expression: Union[str, None, UnsetType] = UNSET """SQL transform expression for the field.""" - ssrs_ordinal_position: Union[int, None, UnsetType] = UNSET + ssrs_field_ordinal_position: Union[int, None, UnsetType] = UNSET """Ordinal position of the field.""" - ssrs_log_messages: Union[str, None, UnsetType] = UNSET + ssrs_field_log_messages: Union[str, None, UnsetType] = UNSET """Log messages for the field.""" - ssrs_error_code: Union[str, None, UnsetType] = UNSET + ssrs_field_error_code: Union[str, None, UnsetType] = UNSET """Error code for the field.""" - ssrs_report_source: Union[str, None, UnsetType] = UNSET + ssrs_field_report_source: Union[str, None, UnsetType] = UNSET """Report source for the field.""" - ssrs_data_group: Union[str, None, UnsetType] = UNSET + ssrs_field_data_group: Union[str, None, UnsetType] = UNSET """Data group for the field.""" - ssrs_connected: Union[bool, None, UnsetType] = UNSET + ssrs_field_connected: Union[bool, None, UnsetType] = UNSET """Whether the field is connected.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/ssrs_report.py b/pyatlan_v9/model/assets/ssrs_report.py index 1999aa3a2..e607273e5 100644 --- a/pyatlan_v9/model/assets/ssrs_report.py +++ b/pyatlan_v9/model/assets/ssrs_report.py @@ -67,10 +67,10 @@ class SSRSReport(Asset): Instance of an SSRS report in Atlan. """ - SSRS_SIZE: ClassVar[Any] = None - SSRS_PARAMETERS: ClassVar[Any] = None - SSRS_DATA_SET_COUNT: ClassVar[Any] = None - SSRS_DATA_SOURCE_COUNT: ClassVar[Any] = None + SSRS_REPORT_SIZE: ClassVar[Any] = None + SSRS_REPORT_PARAMETERS: ClassVar[Any] = None + SSRS_REPORT_DATA_SET_COUNT: ClassVar[Any] = None + SSRS_REPORT_DATA_SOURCE_COUNT: ClassVar[Any] = None SSRS_PATH: ClassVar[Any] = None SSRS_USED_IN_REPORTS: ClassVar[Any] = None SSRS_HIDDEN: ClassVar[Any] = None @@ -123,16 +123,16 @@ class SSRSReport(Asset): INPUT_TO_SPARK_JOBS: ClassVar[Any] = None OUTPUT_FROM_SPARK_JOBS: ClassVar[Any] = None - ssrs_size: Union[int, None, UnsetType] = UNSET + ssrs_report_size: Union[int, None, UnsetType] = UNSET """Size of the report.""" - ssrs_parameters: Union[str, None, UnsetType] = UNSET + ssrs_report_parameters: Union[str, None, UnsetType] = UNSET """Parameters for the report.""" - ssrs_data_set_count: Union[int, None, UnsetType] = UNSET + ssrs_report_data_set_count: Union[int, None, UnsetType] = UNSET """Number of datasets in this report.""" - ssrs_data_source_count: Union[int, None, UnsetType] = UNSET + ssrs_report_data_source_count: Union[int, None, UnsetType] = UNSET """Number of data sources in this report.""" ssrs_path: Union[str, None, UnsetType] = UNSET @@ -430,16 +430,16 @@ def from_json(json_data: str | bytes, serde: Serde | None = None) -> SSRSReport: class SSRSReportAttributes(AssetAttributes): """SSRSReport-specific attributes for nested API format.""" - ssrs_size: Union[int, None, UnsetType] = UNSET + ssrs_report_size: Union[int, None, UnsetType] = UNSET """Size of the report.""" - ssrs_parameters: Union[str, None, UnsetType] = UNSET + ssrs_report_parameters: Union[str, None, UnsetType] = UNSET """Parameters for the report.""" - ssrs_data_set_count: Union[int, None, UnsetType] = UNSET + ssrs_report_data_set_count: Union[int, None, UnsetType] = UNSET """Number of datasets in this report.""" - ssrs_data_source_count: Union[int, None, UnsetType] = UNSET + ssrs_report_data_source_count: Union[int, None, UnsetType] = UNSET """Number of data sources in this report.""" ssrs_path: Union[str, None, UnsetType] = UNSET @@ -672,10 +672,10 @@ class SSRSReportNested(AssetNested): def _populate_ssrs_report_attrs(attrs: SSRSReportAttributes, obj: SSRSReport) -> None: """Populate SSRSReport-specific attributes on the attrs struct.""" _populate_asset_attrs(attrs, obj) - attrs.ssrs_size = obj.ssrs_size - attrs.ssrs_parameters = obj.ssrs_parameters - attrs.ssrs_data_set_count = obj.ssrs_data_set_count - attrs.ssrs_data_source_count = obj.ssrs_data_source_count + attrs.ssrs_report_size = obj.ssrs_report_size + attrs.ssrs_report_parameters = obj.ssrs_report_parameters + attrs.ssrs_report_data_set_count = obj.ssrs_report_data_set_count + attrs.ssrs_report_data_source_count = obj.ssrs_report_data_source_count attrs.ssrs_path = obj.ssrs_path attrs.ssrs_used_in_reports = obj.ssrs_used_in_reports attrs.ssrs_hidden = obj.ssrs_hidden @@ -695,10 +695,10 @@ def _populate_ssrs_report_attrs(attrs: SSRSReportAttributes, obj: SSRSReport) -> def _extract_ssrs_report_attrs(attrs: SSRSReportAttributes) -> dict: """Extract all SSRSReport attributes from the attrs struct into a flat dict.""" result = _extract_asset_attrs(attrs) - result["ssrs_size"] = attrs.ssrs_size - result["ssrs_parameters"] = attrs.ssrs_parameters - result["ssrs_data_set_count"] = attrs.ssrs_data_set_count - result["ssrs_data_source_count"] = attrs.ssrs_data_source_count + result["ssrs_report_size"] = attrs.ssrs_report_size + result["ssrs_report_parameters"] = attrs.ssrs_report_parameters + result["ssrs_report_data_set_count"] = attrs.ssrs_report_data_set_count + result["ssrs_report_data_source_count"] = attrs.ssrs_report_data_source_count result["ssrs_path"] = attrs.ssrs_path result["ssrs_used_in_reports"] = attrs.ssrs_used_in_reports result["ssrs_hidden"] = attrs.ssrs_hidden @@ -824,11 +824,15 @@ def _ssrs_report_from_nested_bytes(data: bytes, serde: Serde) -> SSRSReport: RelationField, ) -SSRSReport.SSRS_SIZE = NumericField("ssrsSize", "ssrsSize") -SSRSReport.SSRS_PARAMETERS = KeywordField("ssrsParameters", "ssrsParameters") -SSRSReport.SSRS_DATA_SET_COUNT = NumericField("ssrsDataSetCount", "ssrsDataSetCount") -SSRSReport.SSRS_DATA_SOURCE_COUNT = NumericField( - "ssrsDataSourceCount", "ssrsDataSourceCount" +SSRSReport.SSRS_REPORT_SIZE = NumericField("ssrsReportSize", "ssrsReportSize") +SSRSReport.SSRS_REPORT_PARAMETERS = KeywordField( + "ssrsReportParameters", "ssrsReportParameters" +) +SSRSReport.SSRS_REPORT_DATA_SET_COUNT = NumericField( + "ssrsReportDataSetCount", "ssrsReportDataSetCount" +) +SSRSReport.SSRS_REPORT_DATA_SOURCE_COUNT = NumericField( + "ssrsReportDataSourceCount", "ssrsReportDataSourceCount" ) SSRSReport.SSRS_PATH = KeywordField("ssrsPath", "ssrsPath") SSRSReport.SSRS_USED_IN_REPORTS = BooleanField("ssrsUsedInReports", "ssrsUsedInReports") diff --git a/pyatlan_v9/model/assets/table.py b/pyatlan_v9/model/assets/table.py index e60214f25..034ef393c 100644 --- a/pyatlan_v9/model/assets/table.py +++ b/pyatlan_v9/model/assets/table.py @@ -89,7 +89,7 @@ class Table(Asset): COLUMN_COUNT: ClassVar[Any] = None ROW_COUNT: ClassVar[Any] = None SIZE_BYTES: ClassVar[Any] = None - SQL_OBJECT_COUNT: ClassVar[Any] = None + TABLE_OBJECT_COUNT: ClassVar[Any] = None ALIAS: ClassVar[Any] = None IS_TEMPORARY: ClassVar[Any] = None IS_QUERY_PREVIEW: ClassVar[Any] = None @@ -103,16 +103,16 @@ class Table(Asset): TABLE_DEFINITION: ClassVar[Any] = None PARTITION_LIST: ClassVar[Any] = None IS_SHARDED: ClassVar[Any] = None - SQL_TYPE: ClassVar[Any] = None + TABLE_TYPE: ClassVar[Any] = None ICEBERG_CATALOG_NAME: ClassVar[Any] = None ICEBERG_TABLE_TYPE: ClassVar[Any] = None ICEBERG_CATALOG_SOURCE: ClassVar[Any] = None ICEBERG_CATALOG_TABLE_NAME: ClassVar[Any] = None - SQL_IMPALA_PARAMETERS: ClassVar[Any] = None + TABLE_IMPALA_PARAMETERS: ClassVar[Any] = None ICEBERG_CATALOG_TABLE_NAMESPACE: ClassVar[Any] = None - SQL_EXTERNAL_VOLUME_NAME: ClassVar[Any] = None + TABLE_EXTERNAL_VOLUME_NAME: ClassVar[Any] = None ICEBERG_TABLE_BASE_LOCATION: ClassVar[Any] = None - SQL_RETENTION_TIME: ClassVar[Any] = None + TABLE_RETENTION_TIME: ClassVar[Any] = None QUERY_COUNT: ClassVar[Any] = None QUERY_USER_COUNT: ClassVar[Any] = None QUERY_USER_MAP: ClassVar[Any] = None @@ -206,7 +206,7 @@ class Table(Asset): size_bytes: Union[int, None, UnsetType] = UNSET """Size of this table, in bytes.""" - sql_object_count: Union[int, None, UnsetType] = UNSET + table_object_count: Union[int, None, UnsetType] = UNSET """Number of objects in this table.""" alias: Union[str, None, UnsetType] = UNSET @@ -248,7 +248,7 @@ class Table(Asset): is_sharded: Union[bool, None, UnsetType] = UNSET """Whether this table is a sharded table (true) or not (false).""" - sql_type: Union[str, None, UnsetType] = UNSET + table_type: Union[str, None, UnsetType] = UNSET """Type of the table.""" iceberg_catalog_name: Union[str, None, UnsetType] = UNSET @@ -263,19 +263,19 @@ class Table(Asset): iceberg_catalog_table_name: Union[str, None, UnsetType] = UNSET """Catalog table name (actual table name on the catalog side).""" - sql_impala_parameters: Union[Dict[str, str], None, UnsetType] = UNSET + table_impala_parameters: Union[Dict[str, str], None, UnsetType] = UNSET """Extra attributes for Impala""" iceberg_catalog_table_namespace: Union[str, None, UnsetType] = UNSET """Catalog table namespace (actual database name on the catalog side).""" - sql_external_volume_name: Union[str, None, UnsetType] = UNSET + table_external_volume_name: Union[str, None, UnsetType] = UNSET """External volume name for the table.""" iceberg_table_base_location: Union[str, None, UnsetType] = UNSET """Iceberg table base location inside the external volume.""" - sql_retention_time: Union[int, None, UnsetType] = UNSET + table_retention_time: Union[int, None, UnsetType] = UNSET """Data retention time in days.""" query_count: Union[int, None, UnsetType] = UNSET @@ -773,7 +773,7 @@ class TableAttributes(AssetAttributes): size_bytes: Union[int, None, UnsetType] = UNSET """Size of this table, in bytes.""" - sql_object_count: Union[int, None, UnsetType] = UNSET + table_object_count: Union[int, None, UnsetType] = UNSET """Number of objects in this table.""" alias: Union[str, None, UnsetType] = UNSET @@ -815,7 +815,7 @@ class TableAttributes(AssetAttributes): is_sharded: Union[bool, None, UnsetType] = UNSET """Whether this table is a sharded table (true) or not (false).""" - sql_type: Union[str, None, UnsetType] = UNSET + table_type: Union[str, None, UnsetType] = UNSET """Type of the table.""" iceberg_catalog_name: Union[str, None, UnsetType] = UNSET @@ -830,19 +830,19 @@ class TableAttributes(AssetAttributes): iceberg_catalog_table_name: Union[str, None, UnsetType] = UNSET """Catalog table name (actual table name on the catalog side).""" - sql_impala_parameters: Union[Dict[str, str], None, UnsetType] = UNSET + table_impala_parameters: Union[Dict[str, str], None, UnsetType] = UNSET """Extra attributes for Impala""" iceberg_catalog_table_namespace: Union[str, None, UnsetType] = UNSET """Catalog table namespace (actual database name on the catalog side).""" - sql_external_volume_name: Union[str, None, UnsetType] = UNSET + table_external_volume_name: Union[str, None, UnsetType] = UNSET """External volume name for the table.""" iceberg_table_base_location: Union[str, None, UnsetType] = UNSET """Iceberg table base location inside the external volume.""" - sql_retention_time: Union[int, None, UnsetType] = UNSET + table_retention_time: Union[int, None, UnsetType] = UNSET """Data retention time in days.""" query_count: Union[int, None, UnsetType] = UNSET @@ -1198,7 +1198,7 @@ def _populate_table_attrs(attrs: TableAttributes, obj: Table) -> None: attrs.column_count = obj.column_count attrs.row_count = obj.row_count attrs.size_bytes = obj.size_bytes - attrs.sql_object_count = obj.sql_object_count + attrs.table_object_count = obj.table_object_count attrs.alias = obj.alias attrs.is_temporary = obj.is_temporary attrs.is_query_preview = obj.is_query_preview @@ -1212,16 +1212,16 @@ def _populate_table_attrs(attrs: TableAttributes, obj: Table) -> None: attrs.table_definition = obj.table_definition attrs.partition_list = obj.partition_list attrs.is_sharded = obj.is_sharded - attrs.sql_type = obj.sql_type + attrs.table_type = obj.table_type attrs.iceberg_catalog_name = obj.iceberg_catalog_name attrs.iceberg_table_type = obj.iceberg_table_type attrs.iceberg_catalog_source = obj.iceberg_catalog_source attrs.iceberg_catalog_table_name = obj.iceberg_catalog_table_name - attrs.sql_impala_parameters = obj.sql_impala_parameters + attrs.table_impala_parameters = obj.table_impala_parameters attrs.iceberg_catalog_table_namespace = obj.iceberg_catalog_table_namespace - attrs.sql_external_volume_name = obj.sql_external_volume_name + attrs.table_external_volume_name = obj.table_external_volume_name attrs.iceberg_table_base_location = obj.iceberg_table_base_location - attrs.sql_retention_time = obj.sql_retention_time + attrs.table_retention_time = obj.table_retention_time attrs.query_count = obj.query_count attrs.query_user_count = obj.query_user_count attrs.query_user_map = obj.query_user_map @@ -1268,7 +1268,7 @@ def _extract_table_attrs(attrs: TableAttributes) -> dict: result["column_count"] = attrs.column_count result["row_count"] = attrs.row_count result["size_bytes"] = attrs.size_bytes - result["sql_object_count"] = attrs.sql_object_count + result["table_object_count"] = attrs.table_object_count result["alias"] = attrs.alias result["is_temporary"] = attrs.is_temporary result["is_query_preview"] = attrs.is_query_preview @@ -1282,16 +1282,16 @@ def _extract_table_attrs(attrs: TableAttributes) -> dict: result["table_definition"] = attrs.table_definition result["partition_list"] = attrs.partition_list result["is_sharded"] = attrs.is_sharded - result["sql_type"] = attrs.sql_type + result["table_type"] = attrs.table_type result["iceberg_catalog_name"] = attrs.iceberg_catalog_name result["iceberg_table_type"] = attrs.iceberg_table_type result["iceberg_catalog_source"] = attrs.iceberg_catalog_source result["iceberg_catalog_table_name"] = attrs.iceberg_catalog_table_name - result["sql_impala_parameters"] = attrs.sql_impala_parameters + result["table_impala_parameters"] = attrs.table_impala_parameters result["iceberg_catalog_table_namespace"] = attrs.iceberg_catalog_table_namespace - result["sql_external_volume_name"] = attrs.sql_external_volume_name + result["table_external_volume_name"] = attrs.table_external_volume_name result["iceberg_table_base_location"] = attrs.iceberg_table_base_location - result["sql_retention_time"] = attrs.sql_retention_time + result["table_retention_time"] = attrs.table_retention_time result["query_count"] = attrs.query_count result["query_user_count"] = attrs.query_user_count result["query_user_map"] = attrs.query_user_map @@ -1447,7 +1447,7 @@ def _table_from_nested_bytes(data: bytes, serde: Serde) -> Table: Table.COLUMN_COUNT = NumericField("columnCount", "columnCount") Table.ROW_COUNT = NumericField("rowCount", "rowCount") Table.SIZE_BYTES = NumericField("sizeBytes", "sizeBytes") -Table.SQL_OBJECT_COUNT = NumericField("sqlObjectCount", "sqlObjectCount") +Table.TABLE_OBJECT_COUNT = NumericField("tableObjectCount", "tableObjectCount") Table.ALIAS = KeywordField("alias", "alias") Table.IS_TEMPORARY = BooleanField("isTemporary", "isTemporary") Table.IS_QUERY_PREVIEW = BooleanField("isQueryPreview", "isQueryPreview") @@ -1465,7 +1465,7 @@ def _table_from_nested_bytes(data: bytes, serde: Serde) -> Table: Table.TABLE_DEFINITION = KeywordField("tableDefinition", "tableDefinition") Table.PARTITION_LIST = KeywordField("partitionList", "partitionList") Table.IS_SHARDED = BooleanField("isSharded", "isSharded") -Table.SQL_TYPE = KeywordField("sqlType", "sqlType") +Table.TABLE_TYPE = KeywordField("tableType", "tableType") Table.ICEBERG_CATALOG_NAME = KeywordField("icebergCatalogName", "icebergCatalogName") Table.ICEBERG_TABLE_TYPE = KeywordField("icebergTableType", "icebergTableType") Table.ICEBERG_CATALOG_SOURCE = KeywordField( @@ -1474,17 +1474,19 @@ def _table_from_nested_bytes(data: bytes, serde: Serde) -> Table: Table.ICEBERG_CATALOG_TABLE_NAME = KeywordField( "icebergCatalogTableName", "icebergCatalogTableName" ) -Table.SQL_IMPALA_PARAMETERS = KeywordField("sqlImpalaParameters", "sqlImpalaParameters") +Table.TABLE_IMPALA_PARAMETERS = KeywordField( + "tableImpalaParameters", "tableImpalaParameters" +) Table.ICEBERG_CATALOG_TABLE_NAMESPACE = KeywordField( "icebergCatalogTableNamespace", "icebergCatalogTableNamespace" ) -Table.SQL_EXTERNAL_VOLUME_NAME = KeywordField( - "sqlExternalVolumeName", "sqlExternalVolumeName" +Table.TABLE_EXTERNAL_VOLUME_NAME = KeywordField( + "tableExternalVolumeName", "tableExternalVolumeName" ) Table.ICEBERG_TABLE_BASE_LOCATION = KeywordField( "icebergTableBaseLocation", "icebergTableBaseLocation" ) -Table.SQL_RETENTION_TIME = NumericField("sqlRetentionTime", "sqlRetentionTime") +Table.TABLE_RETENTION_TIME = NumericField("tableRetentionTime", "tableRetentionTime") Table.QUERY_COUNT = NumericField("queryCount", "queryCount") Table.QUERY_USER_COUNT = NumericField("queryUserCount", "queryUserCount") Table.QUERY_USER_MAP = KeywordField("queryUserMap", "queryUserMap") diff --git a/pyatlan_v9/model/assets/thoughtspot_column.py b/pyatlan_v9/model/assets/thoughtspot_column.py index b6efd5e6d..1067134a6 100644 --- a/pyatlan_v9/model/assets/thoughtspot_column.py +++ b/pyatlan_v9/model/assets/thoughtspot_column.py @@ -75,8 +75,8 @@ class ThoughtspotColumn(Asset): THOUGHTSPOT_TABLE_QUALIFIED_NAME: ClassVar[Any] = None THOUGHTSPOT_VIEW_QUALIFIED_NAME: ClassVar[Any] = None THOUGHTSPOT_WORKSHEET_QUALIFIED_NAME: ClassVar[Any] = None - THOUGHTSPOT_DATA_TYPE: ClassVar[Any] = None - THOUGHTSPOT_TYPE: ClassVar[Any] = None + THOUGHTSPOT_COLUMN_DATA_TYPE: ClassVar[Any] = None + THOUGHTSPOT_COLUMN_TYPE: ClassVar[Any] = None THOUGHTSPOT_CHART_TYPE: ClassVar[Any] = None THOUGHTSPOT_QUESTION_TEXT: ClassVar[Any] = None THOUGHTSPOT_JOIN_COUNT: ClassVar[Any] = None @@ -128,10 +128,10 @@ class ThoughtspotColumn(Asset): thoughtspot_worksheet_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the worksheet in which this column exists.""" - thoughtspot_data_type: Union[str, None, UnsetType] = UNSET + thoughtspot_column_data_type: Union[str, None, UnsetType] = UNSET """Specifies the technical format of data stored in a column such as integer, float, string, date, boolean etc.""" - thoughtspot_type: Union[str, None, UnsetType] = UNSET + thoughtspot_column_type: Union[str, None, UnsetType] = UNSET """Defines the analytical role of a column in data analysis categorizing it as a dimension, measure, or attribute.""" thoughtspot_chart_type: Union[str, None, UnsetType] = UNSET @@ -412,10 +412,10 @@ class ThoughtspotColumnAttributes(AssetAttributes): thoughtspot_worksheet_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the worksheet in which this column exists.""" - thoughtspot_data_type: Union[str, None, UnsetType] = UNSET + thoughtspot_column_data_type: Union[str, None, UnsetType] = UNSET """Specifies the technical format of data stored in a column such as integer, float, string, date, boolean etc.""" - thoughtspot_type: Union[str, None, UnsetType] = UNSET + thoughtspot_column_type: Union[str, None, UnsetType] = UNSET """Defines the analytical role of a column in data analysis categorizing it as a dimension, measure, or attribute.""" thoughtspot_chart_type: Union[str, None, UnsetType] = UNSET @@ -626,8 +626,8 @@ def _populate_thoughtspot_column_attrs( attrs.thoughtspot_worksheet_qualified_name = ( obj.thoughtspot_worksheet_qualified_name ) - attrs.thoughtspot_data_type = obj.thoughtspot_data_type - attrs.thoughtspot_type = obj.thoughtspot_type + attrs.thoughtspot_column_data_type = obj.thoughtspot_column_data_type + attrs.thoughtspot_column_type = obj.thoughtspot_column_type attrs.thoughtspot_chart_type = obj.thoughtspot_chart_type attrs.thoughtspot_question_text = obj.thoughtspot_question_text attrs.thoughtspot_join_count = obj.thoughtspot_join_count @@ -643,8 +643,8 @@ def _extract_thoughtspot_column_attrs(attrs: ThoughtspotColumnAttributes) -> dic result["thoughtspot_worksheet_qualified_name"] = ( attrs.thoughtspot_worksheet_qualified_name ) - result["thoughtspot_data_type"] = attrs.thoughtspot_data_type - result["thoughtspot_type"] = attrs.thoughtspot_type + result["thoughtspot_column_data_type"] = attrs.thoughtspot_column_data_type + result["thoughtspot_column_type"] = attrs.thoughtspot_column_type result["thoughtspot_chart_type"] = attrs.thoughtspot_chart_type result["thoughtspot_question_text"] = attrs.thoughtspot_question_text result["thoughtspot_join_count"] = attrs.thoughtspot_join_count @@ -786,10 +786,12 @@ def _thoughtspot_column_from_nested_bytes( "thoughtspotWorksheetQualifiedName", "thoughtspotWorksheetQualifiedName.text", ) -ThoughtspotColumn.THOUGHTSPOT_DATA_TYPE = KeywordField( - "thoughtspotDataType", "thoughtspotDataType" +ThoughtspotColumn.THOUGHTSPOT_COLUMN_DATA_TYPE = KeywordField( + "thoughtspotColumnDataType", "thoughtspotColumnDataType" +) +ThoughtspotColumn.THOUGHTSPOT_COLUMN_TYPE = KeywordField( + "thoughtspotColumnType", "thoughtspotColumnType" ) -ThoughtspotColumn.THOUGHTSPOT_TYPE = KeywordField("thoughtspotType", "thoughtspotType") ThoughtspotColumn.THOUGHTSPOT_CHART_TYPE = KeywordField( "thoughtspotChartType", "thoughtspotChartType" ) diff --git a/pyatlan_v9/model/assets/thoughtspot_related.py b/pyatlan_v9/model/assets/thoughtspot_related.py index dff71fe07..1f96da279 100644 --- a/pyatlan_v9/model/assets/thoughtspot_related.py +++ b/pyatlan_v9/model/assets/thoughtspot_related.py @@ -179,10 +179,10 @@ class RelatedThoughtspotColumn(RelatedThoughtspot): thoughtspot_worksheet_qualified_name: Union[str, None, UnsetType] = UNSET """Unique name of the worksheet in which this column exists.""" - thoughtspot_data_type: Union[str, None, UnsetType] = UNSET + thoughtspot_column_data_type: Union[str, None, UnsetType] = UNSET """Specifies the technical format of data stored in a column such as integer, float, string, date, boolean etc.""" - thoughtspot_type: Union[str, None, UnsetType] = UNSET + thoughtspot_column_type: Union[str, None, UnsetType] = UNSET """Defines the analytical role of a column in data analysis categorizing it as a dimension, measure, or attribute.""" def __post_init__(self) -> None: diff --git a/pyatlan_v9/model/assets/workflow_related.py b/pyatlan_v9/model/assets/workflow_related.py index 1412e3d9c..b25bcf7ac 100644 --- a/pyatlan_v9/model/assets/workflow_related.py +++ b/pyatlan_v9/model/assets/workflow_related.py @@ -77,16 +77,16 @@ class RelatedWorkflowRun(RelatedWorkflow): # type_name inherited from parent with default=UNSET # __post_init__ sets it to "WorkflowRun" so it serializes correctly - workflow_workflow_guid: Union[str, None, UnsetType] = UNSET + workflow_run_workflow_guid: Union[str, None, UnsetType] = UNSET """GUID of the workflow from which this run was created.""" - workflow_type: Union[str, None, UnsetType] = UNSET + workflow_run_type: Union[str, None, UnsetType] = UNSET """Type of the workflow from which this run was created.""" - workflow_action_choices: Union[List[str], None, UnsetType] = UNSET + workflow_run_action_choices: Union[List[str], None, UnsetType] = UNSET """List of workflow run action choices.""" - workflow_on_asset_guid: Union[str, None, UnsetType] = UNSET + workflow_run_on_asset_guid: Union[str, None, UnsetType] = UNSET """The asset for which this run was created.""" workflow_run_comment: Union[str, None, UnsetType] = UNSET @@ -95,19 +95,19 @@ class RelatedWorkflowRun(RelatedWorkflow): workflow_run_config: Union[str, None, UnsetType] = UNSET """Details of the approval workflow run.""" - workflow_status: Union[str, None, UnsetType] = UNSET + workflow_run_status: Union[str, None, UnsetType] = UNSET """Status of the run.""" - workflow_expires_at: Union[int, None, UnsetType] = UNSET + workflow_run_expires_at: Union[int, None, UnsetType] = UNSET """Time at which this run will expire.""" - workflow_created_by: Union[str, None, UnsetType] = UNSET + workflow_run_created_by: Union[str, None, UnsetType] = UNSET """Username of the user who created this workflow run.""" - workflow_updated_by: Union[str, None, UnsetType] = UNSET + workflow_run_updated_by: Union[str, None, UnsetType] = UNSET """Username of the user who updated this workflow run.""" - workflow_deleted_at: Union[int, None, UnsetType] = UNSET + workflow_run_deleted_at: Union[int, None, UnsetType] = UNSET """Deletion time of this workflow run.""" def __post_init__(self) -> None: diff --git a/requirements.txt b/requirements.txt index 0865144a7..e69de29bb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,304 +0,0 @@ -# This file was autogenerated by uv via the following command: -# uv export --all-extras --no-hashes --e . -annotated-types==0.7.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pydantic -anyio==4.12.1 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via httpx -ast-serialize==0.6.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via mypy -authlib==1.6.9 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pyatlan -authlib==1.7.2 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -backports-asyncio-runner==1.2.0 ; python_full_version < '3.11' and platform_python_implementation == 'CPython' - # via pytest-asyncio -backports-tarfile==1.2.0 ; python_full_version < '3.12' and platform_python_implementation == 'CPython' - # via jaraco-context -cachebox==5.2.3 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via deepdiff -certifi==2026.2.25 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # httpcore - # httpx - # requests -cffi==2.0.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via cryptography -cfgv==3.4.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pre-commit -cfgv==3.5.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pre-commit -charset-normalizer==3.4.5 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via requests -colorama==0.4.6 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' and sys_platform == 'win32' - # via pytest -coverage==7.10.7 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pytest-cov -coverage==7.13.4 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pytest-cov -cryptography==50.0.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # authlib - # joserfc - # secretstorage - # types-authlib -deepdiff==8.6.1 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' -deepdiff==9.1.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' -distlib==0.4.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via virtualenv -docutils==0.21.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via readme-renderer -exceptiongroup==1.3.1 ; python_full_version < '3.11' and platform_python_implementation == 'CPython' - # via - # anyio - # pytest -filelock==3.19.1 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via - # python-discovery - # virtualenv -filelock==3.32.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # python-discovery - # virtualenv -h11==0.16.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via httpcore -httpcore==1.0.9 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via httpx -httpx==0.28.1 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # httpx-retries - # pyatlan -httpx-retries==0.4.6 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pyatlan -httpx-retries==0.6.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -id==1.5.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via twine -id==1.6.1 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via twine -identify==2.6.15 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pre-commit -identify==2.6.17 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pre-commit -idna==3.11 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # anyio - # httpx - # requests - # yarl -importlib-metadata==8.7.1 ; (python_full_version < '3.12' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython') or (python_full_version < '3.10' and platform_machine == 'ppc64le' and platform_python_implementation == 'CPython') or (python_full_version < '3.10' and platform_machine == 's390x' and platform_python_implementation == 'CPython') - # via - # keyring - # twine -iniconfig==2.1.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pytest -iniconfig==2.3.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pytest -jaraco-classes==3.4.0 ; python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' - # via keyring -jaraco-context==6.1.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via keyring -jaraco-functools==4.4.0 ; python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' - # via keyring -jeepney==0.9.0 ; python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' and sys_platform == 'linux' - # via - # keyring - # secretstorage -jinja2==3.1.6 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -joserfc==1.7.4 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via authlib -keyring==25.7.0 ; python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' - # via twine -lazy-loader==0.5 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -librt==0.8.1 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via mypy -librt==0.13.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via mypy -markdown-it-py==3.0.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via rich -markdown-it-py==4.0.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via rich -markupsafe==3.0.3 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via jinja2 -mdurl==0.1.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via markdown-it-py -more-itertools==10.8.0 ; python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' - # via - # jaraco-classes - # jaraco-functools -msgspec==0.20.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pyatlan -msgspec==0.21.1 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -multidict==6.7.1 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via yarl -mypy==1.19.1 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' -mypy==2.3.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' -mypy-extensions==1.1.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via mypy -nanoid==2.0.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -networkx==3.2.1 ; python_full_version < '3.11' and platform_python_implementation == 'CPython' - # via networkx-stubs -networkx==3.6.1 ; python_full_version >= '3.11' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via networkx-stubs -networkx-stubs==0.0.1 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -nh3==0.3.3 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via readme-renderer -nodeenv==1.10.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pre-commit -orderly-set==5.5.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via deepdiff -packaging==26.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # lazy-loader - # pytest - # twine -pathspec==1.0.4 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via mypy -platformdirs==4.4.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via - # python-discovery - # virtualenv -platformdirs==4.9.4 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # python-discovery - # virtualenv -pluggy==1.6.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # pytest - # pytest-cov -pre-commit==4.3.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' -pre-commit==4.6.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' -propcache==0.4.1 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via yarl -pycparser==2.23 ; python_full_version < '3.10' and implementation_name != 'PyPy' and platform_python_implementation == 'CPython' - # via cffi -pycparser==3.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and implementation_name != 'PyPy' and platform_python_implementation == 'CPython' - # via cffi -pydantic==2.13.4 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -pydantic-core==2.46.4 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pydantic -pygments==2.19.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # pytest - # readme-renderer - # rich -pytest==8.4.2 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via - # pytest-asyncio - # pytest-cov - # pytest-order - # pytest-sugar - # pytest-timer - # pytest-vcr -pytest==9.1.1 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # pytest-asyncio - # pytest-cov - # pytest-order - # pytest-sugar - # pytest-timer - # pytest-vcr -pytest-asyncio==1.2.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' -pytest-asyncio==1.4.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' -pytest-cov==7.1.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -pytest-order==1.5.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -pytest-sugar==1.1.1 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -pytest-timer==1.0.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -pytest-vcr==1.0.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -python-dateutil==2.9.0.post0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -python-discovery==1.5.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via virtualenv -pytz==2026.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -pywin32-ctypes==0.2.3 ; python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' and sys_platform == 'win32' - # via keyring -pyyaml==6.0.3 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # pre-commit - # pyatlan - # vcrpy -readme-renderer==44.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via twine -requests==2.32.5 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # id - # requests-toolbelt - # twine -requests-toolbelt==1.0.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via twine -rfc3986==2.0.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via twine -rich==14.3.3 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via twine -ruff==0.15.22 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -secretstorage==3.3.3 ; python_full_version < '3.10' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' and sys_platform == 'linux' - # via keyring -secretstorage==3.5.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython' and sys_platform == 'linux' - # via keyring -six==1.17.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via python-dateutil -tenacity==9.1.2 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pyatlan -tenacity==9.1.4 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pyatlan -termcolor==3.1.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via - # pytest-sugar - # pytest-timer -termcolor==3.3.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # pytest-sugar - # pytest-timer -tomli==2.4.0 ; python_full_version <= '3.11' and platform_python_implementation == 'CPython' - # via - # coverage - # mypy - # pytest -twine==6.2.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -types-authlib==1.6.7.20260208 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' -types-authlib==1.6.11.20260518 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' -types-retry==0.9.9.20250322 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' -types-setuptools==81.0.0.20260209 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' -types-setuptools==83.0.0.20260716 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' -typing-extensions==4.15.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # anyio - # cryptography - # exceptiongroup - # multidict - # mypy - # pydantic - # pydantic-core - # pytest-asyncio - # typing-inspection - # virtualenv -typing-inspection==0.4.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pydantic -urllib3==1.26.20 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via - # requests - # twine - # vcrpy -urllib3==2.7.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via - # id - # requests - # twine -vcrpy==7.0.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via pytest-vcr -vcrpy==8.3.0 ; python_full_version >= '3.10' and python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pytest-vcr -virtualenv==21.7.0 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via pre-commit -wrapt==2.1.2 ; python_full_version < '3.15' and platform_python_implementation == 'CPython' - # via vcrpy -yarl==1.22.0 ; python_full_version < '3.10' and platform_python_implementation == 'CPython' - # via vcrpy -zipp==3.23.0 ; (python_full_version < '3.12' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_python_implementation == 'CPython') or (python_full_version < '3.10' and platform_machine == 'ppc64le' and platform_python_implementation == 'CPython') or (python_full_version < '3.10' and platform_machine == 's390x' and platform_python_implementation == 'CPython') - # via importlib-metadata diff --git a/tests/integration/aio/test_client.py b/tests/integration/aio/test_client.py index cd5f1ad19..82546c937 100644 --- a/tests/integration/aio/test_client.py +++ b/tests/integration/aio/test_client.py @@ -29,8 +29,8 @@ AtlasGlossaryTerm, Connection, Database, - KnowledgeFile, DataContract, + KnowledgeFile, Schema, Table, ) diff --git a/tests/integration/test_app_client.py b/tests/integration/test_app_client.py index 6ac3266de..bcf6888aa 100644 --- a/tests/integration/test_app_client.py +++ b/tests/integration/test_app_client.py @@ -21,11 +21,7 @@ from pyatlan.client.atlan import AtlanClient from pyatlan.errors import AtlanError -from pyatlan.model.app import ( - AppInfo, - AppInputContract, - AppResponse, -) +from pyatlan.model.app import AppInfo, AppInputContract, AppResponse from pyatlan.model.apps import BigqueryCrawler, BigqueryCrawlerInputs from tests.integration.client import TestId diff --git a/tests/unit/test_app_client.py b/tests/unit/test_app_client.py index b984c8a63..157788d0a 100644 --- a/tests/unit/test_app_client.py +++ b/tests/unit/test_app_client.py @@ -11,13 +11,11 @@ import httpx import pytest -from pyatlan.client.transport import PyatlanSyncTransport - from pyatlan.client.aio.app import AsyncAppClient from pyatlan.client.app import _APP_NO_500_RETRY, AppClient from pyatlan.client.common import ApiCaller, AsyncApiCaller +from pyatlan.client.transport import PyatlanSyncTransport from pyatlan.errors import AtlanError -from pyatlan.model.assets import AppWorkflowRun from pyatlan.model.app import ( AppDeleteResponse, AppInfo, @@ -29,6 +27,7 @@ AppScheduleResponse, AppSummary, ) +from pyatlan.model.assets import AppWorkflowRun @pytest.fixture diff --git a/tests/unit/test_core.py b/tests/unit/test_core.py index 214b59f77..fd43c33cc 100644 --- a/tests/unit/test_core.py +++ b/tests/unit/test_core.py @@ -1,7 +1,6 @@ from __future__ import annotations import json - from typing import no_type_check from unittest.mock import MagicMock