diff --git a/sdk/src/main/java/com/atlan/model/assets/Agent.java b/sdk/src/main/java/com/atlan/model/assets/Agent.java index d08255e0ef..388f7ef4ed 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Agent.java +++ b/sdk/src/main/java/com/atlan/model/assets/Agent.java @@ -9,6 +9,7 @@ import com.atlan.exception.NotFoundException; import com.atlan.model.enums.AgentType; import com.atlan.model.enums.AgenticLifecycleStatus; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.fields.AtlanField; @@ -58,6 +59,10 @@ public class Agent extends Asset implements IAgent, IAgentic, ICatalog, IAsset, @Attribute String agentMcpServers; + /** JSON-serialized agent schedule configuration, including kickoff message, cron expression, timezone, version policy, status, and Temporal schedule identifier. */ + @Attribute + String agentSchedules; + /** Denormalized list of names of the skills bound to this agent version. */ @Attribute @Singular @@ -89,6 +94,10 @@ public class Agent extends Asset implements IAgent, IAgentic, ICatalog, IAsset, @Attribute AgentType agentType; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; @@ -97,6 +106,10 @@ public class Agent extends Asset implements IAgent, IAgentic, ICatalog, IAsset, @Attribute String catalogDatasetGuid; + /** Context repository that produced this agent. */ + @Attribute + IContextRepository contextSourceRepository; + /** Tasks to which this asset provides input. */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/Agentic.java b/sdk/src/main/java/com/atlan/model/assets/Agentic.java index 2f9603e489..9c48f64a5e 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Agentic.java +++ b/sdk/src/main/java/com/atlan/model/assets/Agentic.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.fields.AtlanField; @@ -48,6 +49,10 @@ public class Agentic extends Asset implements IAgentic, ICatalog, IAsset, IRefer @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/AirflowDag.java b/sdk/src/main/java/com/atlan/model/assets/AirflowDag.java index 8a39edb686..71b9c6ace8 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AirflowDag.java +++ b/sdk/src/main/java/com/atlan/model/assets/AirflowDag.java @@ -62,6 +62,10 @@ public class AirflowDag extends Asset implements IAirflowDag, IAirflow, ICatalog @Date Long airflowRunEndTime; + /** Error message of the run in Airflow, populated when the run fails. */ + @Attribute + String airflowRunErrorMessage; + /** Name of the run. */ @Attribute String airflowRunName; diff --git a/sdk/src/main/java/com/atlan/model/assets/AirflowTask.java b/sdk/src/main/java/com/atlan/model/assets/AirflowTask.java index 1af7dff8b4..4588fc1e52 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AirflowTask.java +++ b/sdk/src/main/java/com/atlan/model/assets/AirflowTask.java @@ -66,6 +66,10 @@ public class AirflowTask extends Asset implements IAirflowTask, IAirflow, ICatal @Date Long airflowRunEndTime; + /** Error message of the run in Airflow, populated when the run fails. */ + @Attribute + String airflowRunErrorMessage; + /** Name of the run. */ @Attribute String airflowRunName; diff --git a/sdk/src/main/java/com/atlan/model/assets/AppWorkflowRun.java b/sdk/src/main/java/com/atlan/model/assets/AppWorkflowRun.java index aa6ca12499..9f191cadfc 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AppWorkflowRun.java +++ b/sdk/src/main/java/com/atlan/model/assets/AppWorkflowRun.java @@ -86,6 +86,10 @@ public class AppWorkflowRun extends Asset implements IAppWorkflowRun, ICatalog, @Attribute String appWorkflowRunDag; + /** SDR deployment this run executed under, denormalized from the parent workflow so a deployment's run history can be filtered directly. Without it, filtering requires two queries — resolve the deployment's workflow slugs, then match runs by parent slug — because Elasticsearch cannot join across entity types. Null for runs on Atlan-managed infrastructure (DISTR-832). */ + @Attribute + String appWorkflowRunDeploymentName; + /** Error handling strategy for the workflow run. */ @Attribute AtlanAppErrorHandling appWorkflowRunErrorHandling; diff --git a/sdk/src/main/java/com/atlan/model/assets/Artifact.java b/sdk/src/main/java/com/atlan/model/assets/Artifact.java index 8a26367f5c..d20f7d646b 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Artifact.java +++ b/sdk/src/main/java/com/atlan/model/assets/Artifact.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.FileType; @@ -49,6 +50,10 @@ public class Artifact extends Asset implements IArtifact, IAgentic, IResource, I @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/AtlanAppDeployment.java b/sdk/src/main/java/com/atlan/model/assets/AtlanAppDeployment.java index d12af83546..b1f4607856 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AtlanAppDeployment.java +++ b/sdk/src/main/java/com/atlan/model/assets/AtlanAppDeployment.java @@ -55,7 +55,7 @@ public class AtlanAppDeployment extends Asset @Attribute String appId; - /** Target deployment environment where the app is installed (e.g. "atlan" for Atlan-managed infra, or a customer SDR deployment name for customer-managed infra). */ + /** Target deployment environment where the app is installed, for example atlan (Atlan-managed infra) or a customer SDR deployment name (customer-managed infra). */ @Attribute String atlanAppDeploymentName; diff --git a/sdk/src/main/java/com/atlan/model/assets/AtlanAppInstalled.java b/sdk/src/main/java/com/atlan/model/assets/AtlanAppInstalled.java index f06a993d3f..ffb0c93dad 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AtlanAppInstalled.java +++ b/sdk/src/main/java/com/atlan/model/assets/AtlanAppInstalled.java @@ -65,7 +65,7 @@ public class AtlanAppInstalled extends Asset @Attribute String atlanAppDeploymentConfig; - /** Target deployment environment where the app is installed (e.g. "atlan" for Atlan-managed infra, or a customer SDR deployment name for customer-managed infra). */ + /** Target deployment environment where the app is installed, for example atlan (Atlan-managed infra) or a customer SDR deployment name (customer-managed infra). */ @Attribute String atlanAppDeploymentName; diff --git a/sdk/src/main/java/com/atlan/model/assets/AtlanAppWorkflow.java b/sdk/src/main/java/com/atlan/model/assets/AtlanAppWorkflow.java index ab0c246b6b..33dad599e1 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AtlanAppWorkflow.java +++ b/sdk/src/main/java/com/atlan/model/assets/AtlanAppWorkflow.java @@ -9,6 +9,7 @@ import com.atlan.exception.NotFoundException; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanAppWorkflowOwnership; +import com.atlan.model.enums.AtlanAppWorkflowRuntimeMode; import com.atlan.model.enums.AtlanAppWorkflowSource; import com.atlan.model.enums.AtlanAppWorkflowStatus; import com.atlan.model.enums.CertificateStatus; @@ -78,10 +79,18 @@ public class AtlanAppWorkflow extends Asset @Singular SortedSet atlanAppTools; + /** 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). */ + @Attribute + String atlanAppWorkflowAgentName; + /** Map of all activity steps for the workflow (escaped JSON string). */ @Attribute String atlanAppWorkflowDag; + /** SDR deployment name this workflow's runs execute under. Denormalized from the run-time config for run-history filtering and metric labels. */ + @Attribute + String atlanAppWorkflowDeploymentName; + /** Error handling strategy for the workflow. */ @Attribute AtlanAppErrorHandling atlanAppWorkflowErrorHandling; @@ -95,6 +104,10 @@ public class AtlanAppWorkflow extends Asset @Singular SortedSet atlanAppWorkflowRuns; + /** Execution runtime for this workflow's runs (SDR or DIRECT). Set at workflow save and constant across the workflow's runs. */ + @Attribute + AtlanAppWorkflowRuntimeMode atlanAppWorkflowRuntimeMode; + /** Slug of the workflow. */ @Attribute String atlanAppWorkflowSlug; diff --git a/sdk/src/main/java/com/atlan/model/assets/AuthPolicy.java b/sdk/src/main/java/com/atlan/model/assets/AuthPolicy.java index f564eb61c6..72b57319cd 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AuthPolicy.java +++ b/sdk/src/main/java/com/atlan/model/assets/AuthPolicy.java @@ -69,6 +69,11 @@ public class AuthPolicy extends Asset implements IAuthPolicy, IAsset, IReference @Attribute Boolean isPolicyEnabled; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/AuthService.java b/sdk/src/main/java/com/atlan/model/assets/AuthService.java index 78f1cae37a..c2c6f062bb 100644 --- a/sdk/src/main/java/com/atlan/model/assets/AuthService.java +++ b/sdk/src/main/java/com/atlan/model/assets/AuthService.java @@ -79,6 +79,11 @@ public class AuthService extends Asset implements IAuthService, IAsset, IReferen @Singular SortedSet gcpDataplexAspectTypeMetadataEntities; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** TBC */ @Attribute String tagService; diff --git a/sdk/src/main/java/com/atlan/model/assets/BIProcess.java b/sdk/src/main/java/com/atlan/model/assets/BIProcess.java index 2dbe2c36d4..2bd10fa381 100644 --- a/sdk/src/main/java/com/atlan/model/assets/BIProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/BIProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -126,6 +127,10 @@ public class BIProcess extends Asset implements IBIProcess, ILineageProcess, IAs @Attribute IPowerBIDataflow powerBIDataflow; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/Badge.java b/sdk/src/main/java/com/atlan/model/assets/Badge.java index f3be4cbeac..6ca8192760 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Badge.java +++ b/sdk/src/main/java/com/atlan/model/assets/Badge.java @@ -89,6 +89,11 @@ public class Badge extends Asset implements IBadge, IResource, ICatalog, IAsset, @Attribute Boolean isGlobal; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** URL to the resource. */ @Attribute String link; diff --git a/sdk/src/main/java/com/atlan/model/assets/BigqueryRoutine.java b/sdk/src/main/java/com/atlan/model/assets/BigqueryRoutine.java index bfb6428818..57284b69d4 100644 --- a/sdk/src/main/java/com/atlan/model/assets/BigqueryRoutine.java +++ b/sdk/src/main/java/com/atlan/model/assets/BigqueryRoutine.java @@ -95,6 +95,10 @@ public class BigqueryRoutine extends Asset @Attribute String catalogDatasetGuid; + /** Cosmos collection in which this procedure exists. */ + @Attribute + ICosmosMongoDBCollection cosmosMongoDBCollection; + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ @Attribute String databaseName; diff --git a/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyException.java b/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyException.java index 7642e2166b..156bb803c0 100644 --- a/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyException.java +++ b/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyException.java @@ -130,6 +130,11 @@ public class BusinessPolicyException extends Asset @Singular SortedSet gcpDataplexAspectTypeMetadataEntities; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** BusinessPolicy that have the same (or relatable) compliance */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyIncident.java b/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyIncident.java index e8e93d4158..cd57faccfe 100644 --- a/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyIncident.java +++ b/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyIncident.java @@ -126,6 +126,11 @@ public class BusinessPolicyIncident extends Asset @Attribute IncidentSeverity incidentSeverity; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** BusinessPolicy that have the same (or relatable) compliance */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyLog.java b/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyLog.java index c784737081..89d2a253b1 100644 --- a/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyLog.java +++ b/sdk/src/main/java/com/atlan/model/assets/BusinessPolicyLog.java @@ -123,6 +123,11 @@ public class BusinessPolicyLog extends Asset implements IBusinessPolicyLog, IBus @Attribute Long governedAssetsCount; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** number of non compliant assets in the policy */ @Attribute Long nonCompliantAssetsCount; diff --git a/sdk/src/main/java/com/atlan/model/assets/ColumnProcess.java b/sdk/src/main/java/com/atlan/model/assets/ColumnProcess.java index 9f6b059335..8284d47cc9 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ColumnProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -130,6 +131,10 @@ public class ColumnProcess extends Asset implements IColumnProcess, ILineageProc @Attribute ILineageProcess process; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/Connection.java b/sdk/src/main/java/com/atlan/model/assets/Connection.java index dae7062442..879e1d92d7 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Connection.java +++ b/sdk/src/main/java/com/atlan/model/assets/Connection.java @@ -102,6 +102,11 @@ public class Connection extends Asset implements IConnection, IAsset, IReference @Attribute Boolean connectionIsDQEnabled; + /** Time (epoch) at which popularity insights were last computed for this connection, in milliseconds. Marks the end of the popularity window; the start is this value minus popularityInsightsTimeframe days. */ + @Attribute + @Date + Long connectionPopularityInsightsComputedAt; + /** Strategy configuration for reverse-sync operations on this connection, stored as a stringified JSON array. Each element specifies a source entity type and whether reverse-sync is enabled for it, e.g. [{"source_entity": "Aspects", "enabled": true}]. */ @Attribute String connectionReverseSyncStrategy; @@ -110,6 +115,10 @@ public class Connection extends Asset implements IConnection, IAsset, IReference @Attribute String connectionSSOCredentialGuid; + /** Identifier of the source account this connection points to, expressed in the source's own namespace (for example 'MYORG.MYACCOUNT' for Snowflake). Distinct from the credential host, which uses a different namespace and does not convert. */ + @Attribute + String connectionSourceAccountIdentifier; + /** Configuration for a workflow run. */ @Attribute @Singular("putConnectionWorkflowConfiguration") diff --git a/sdk/src/main/java/com/atlan/model/assets/ConnectionProcess.java b/sdk/src/main/java/com/atlan/model/assets/ConnectionProcess.java index d576cef65c..25bc051a78 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ConnectionProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ConnectionProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -117,6 +118,11 @@ public class ConnectionProcess extends Asset implements IConnectionProcess, ILin @Attribute Boolean isPassThrough; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** Matillion component that contains the logic for this lineage process. */ @Attribute IMatillionComponent matillionComponent; @@ -136,6 +142,10 @@ public class ConnectionProcess extends Asset implements IConnectionProcess, ILin @Attribute IPowerBIDataflow powerBIDataflow; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/Context.java b/sdk/src/main/java/com/atlan/model/assets/Context.java index 91756e4231..4635cf5d1a 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Context.java +++ b/sdk/src/main/java/com/atlan/model/assets/Context.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.fields.AtlanField; @@ -48,6 +49,10 @@ public class Context extends Asset implements IContext, IAgentic, ICatalog, IAss @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/ContextArtifact.java b/sdk/src/main/java/com/atlan/model/assets/ContextArtifact.java index baaa48ed39..9985fe8cb5 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ContextArtifact.java +++ b/sdk/src/main/java/com/atlan/model/assets/ContextArtifact.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.FileType; @@ -50,6 +51,10 @@ public class ContextArtifact extends Asset @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/ContextRepository.java b/sdk/src/main/java/com/atlan/model/assets/ContextRepository.java index 3baa851a11..befca0e3b7 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ContextRepository.java +++ b/sdk/src/main/java/com/atlan/model/assets/ContextRepository.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.ContextLifecycleStatus; @@ -50,6 +51,10 @@ public class ContextRepository extends Asset @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; @@ -68,6 +73,11 @@ public class ContextRepository extends Asset @Singular SortedSet contextInputAssets; + /** Agents produced by this context repository. */ + @Attribute + @Singular + SortedSet contextOutputAgents; + /** Skill produced by this context repository. */ @Attribute ISkill contextOutputSkill; diff --git a/sdk/src/main/java/com/atlan/model/assets/CosmosMongoDBCollection.java b/sdk/src/main/java/com/atlan/model/assets/CosmosMongoDBCollection.java index 685bc7d63b..223f75567d 100644 --- a/sdk/src/main/java/com/atlan/model/assets/CosmosMongoDBCollection.java +++ b/sdk/src/main/java/com/atlan/model/assets/CosmosMongoDBCollection.java @@ -93,6 +93,16 @@ public class CosmosMongoDBCollection extends Asset @Attribute String cosmosMongoDBDatabaseQualifiedName; + /** User-defined functions that exist within this collection. */ + @Attribute + @Singular + SortedSet cosmosMongoDBFunctions; + + /** Stored procedures and triggers that exist within this collection. */ + @Attribute + @Singular + SortedSet cosmosMongoDBStoredProcedures; + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ @Attribute String databaseName; diff --git a/sdk/src/main/java/com/atlan/model/assets/DatabricksDashboard.java b/sdk/src/main/java/com/atlan/model/assets/DatabricksDashboard.java new file mode 100644 index 0000000000..eb30a5bfca --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/DatabricksDashboard.java @@ -0,0 +1,790 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DatabricksDashboardLifecycleState; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * Instance of a Databricks AI/BI dashboard in Atlan. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class DatabricksDashboard extends Asset + implements IDatabricksDashboard, IBI, IDatabricks, ICatalog, IAsset, IReferenceable, ISQL { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "DatabricksDashboard"; + + /** Fixed typeName for DatabricksDashboards. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + @Attribute + String calculationViewName; + + /** Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + @Attribute + String calculationViewQualifiedName; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + @Attribute + String databaseName; + + /** Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + @Attribute + String databaseQualifiedName; + + /** Entity tag used as a change token for the dashboard. */ + @Attribute + String databricksDashboardEtag; + + /** Whether a Genie space is enabled for the dashboard. */ + @Attribute + Boolean databricksDashboardIsGenieSpaceEnabled; + + /** Lifecycle state of the dashboard. */ + @Attribute + DatabricksDashboardLifecycleState databricksDashboardLifecycleState; + + /** Workspace path of the dashboard asset, including its file name. The parent folder path can be derived by dropping the last path segment. */ + @Attribute + String databricksDashboardPath; + + /** Identifier of the SQL warehouse backing the dashboard. */ + @Attribute + String databricksDashboardWarehouseId; + + /** Identifier of the workspace containing the dashboard. */ + @Attribute + String databricksDashboardWorkspaceId; + + /** (Deprecated) Model containing the assets. */ + @Attribute + @Singular + SortedSet dbtModels; + + /** DBT seeds that materialize the SQL asset. */ + @Attribute + @Singular + SortedSet dbtSeedAssets; + + /** Source containing the assets. */ + @Attribute + @Singular + SortedSet dbtSources; + + /** Tests related to this asset. */ + @Attribute + @Singular + SortedSet dbtTests; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Whether this asset has been profiled (true) or not (false). */ + @Attribute + Boolean isProfiled; + + /** Time (epoch) at which this asset was last profiled, in milliseconds. */ + @Attribute + @Date + Long lastProfiledAt; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Number of times this asset has been queried. */ + @Attribute + Long queryCount; + + /** Time (epoch) at which the query count was last updated, in milliseconds. */ + @Attribute + @Date + Long queryCountUpdatedAt; + + /** Number of unique users who have queried this asset. */ + @Attribute + Long queryUserCount; + + /** Map of unique users who have queried this asset to the number of times they have queried it. */ + @Attribute + @Singular("putQueryUserMap") + Map queryUserMap; + + /** Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + @Attribute + String schemaName; + + /** Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + @Attribute + String schemaQualifiedName; + + /** Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context. */ + @Attribute + String sqlAIModelContextQualifiedName; + + /** Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds. */ + @Attribute + @Date + Long sqlAiInsightsLastAnalyzedAt; + + /** Number of popular business questions associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularBusinessQuestionCount; + + /** Number of popular filter patterns associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularFilterCount; + + /** Number of popular join patterns associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularJoinCount; + + /** Number of relationship insights associated with this asset. */ + @Attribute + Integer sqlAiInsightsRelationshipCount; + + /** Identifier of the Coalesce environment. */ + @Attribute + String sqlCoalesceEnvironmentId; + + /** Name of the Coalesce environment. */ + @Attribute + String sqlCoalesceEnvironmentName; + + /** Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds. */ + @Attribute + @Date + Long sqlCoalesceLastRunAt; + + /** Status of the Coalesce run. One of: success, failure, cancelled, or skipped. */ + @Attribute + String sqlCoalesceLastRunStatus; + + /** Status of the Coalesce node for a given run. */ + @Attribute + String sqlCoalesceNodeStatus; + + /** Type of the Coalesce node. */ + @Attribute + String sqlCoalesceNodeType; + + /** Identifier of the Coalesce project. */ + @Attribute + String sqlCoalesceProjectId; + + /** Name of the Coalesce project. */ + @Attribute + String sqlCoalesceProjectName; + + /** Sources related to this asset. */ + @Attribute + @Singular + SortedSet sqlDBTSources; + + /** Assets related to the model. */ + @Attribute + @Singular + SortedSet sqlDbtModels; + + /** Whether this asset has any AI insights data available. */ + @Attribute + Boolean sqlHasAiInsights; + + /** Whether this asset is secure (true) or not (false). */ + @Attribute + Boolean sqlIsSecure; + + /** Qualified names of data shares this asset is granted to. */ + @Attribute + @Singular + SortedSet sqlShareQualifiedNames; + + /** Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + @Attribute + String tableName; + + /** Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + @Attribute + String tableQualifiedName; + + /** Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + @Attribute + String viewName; + + /** Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + @Attribute + String viewQualifiedName; + + /** + * Builds the minimal object necessary to create a relationship to a DatabricksDashboard, from a potentially + * more-complete DatabricksDashboard object. + * + * @return the minimal object necessary to relate to the DatabricksDashboard + * @throws InvalidRequestException if any of the minimal set of required properties for a DatabricksDashboard relationship are not found in the initial object + */ + @Override + public DatabricksDashboard trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all DatabricksDashboard assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) DatabricksDashboard assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all DatabricksDashboard assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all DatabricksDashboard assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) DatabricksDashboards will be included + * @return a fluent search that includes all DatabricksDashboard assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a DatabricksDashboard by GUID. Use this to create a relationship to this DatabricksDashboard, + * where the relationship should be replaced. + * + * @param guid the GUID of the DatabricksDashboard to reference + * @return reference to a DatabricksDashboard that can be used for defining a relationship to a DatabricksDashboard + */ + public static DatabricksDashboard refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a DatabricksDashboard by GUID. Use this to create a relationship to this DatabricksDashboard, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the DatabricksDashboard to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a DatabricksDashboard that can be used for defining a relationship to a DatabricksDashboard + */ + public static DatabricksDashboard refByGuid(String guid, Reference.SaveSemantic semantic) { + return DatabricksDashboard._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a DatabricksDashboard by qualifiedName. Use this to create a relationship to this DatabricksDashboard, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the DatabricksDashboard to reference + * @return reference to a DatabricksDashboard that can be used for defining a relationship to a DatabricksDashboard + */ + public static DatabricksDashboard refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a DatabricksDashboard by qualifiedName. Use this to create a relationship to this DatabricksDashboard, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the DatabricksDashboard to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a DatabricksDashboard that can be used for defining a relationship to a DatabricksDashboard + */ + public static DatabricksDashboard refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return DatabricksDashboard._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a DatabricksDashboard by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksDashboard to retrieve, either its GUID or its full qualifiedName + * @return the requested full DatabricksDashboard, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksDashboard does not exist or the provided GUID is not a DatabricksDashboard + */ + @JsonIgnore + public static DatabricksDashboard get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a DatabricksDashboard by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksDashboard to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full DatabricksDashboard, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksDashboard does not exist or the provided GUID is not a DatabricksDashboard + */ + @JsonIgnore + public static DatabricksDashboard get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof DatabricksDashboard) { + return (DatabricksDashboard) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof DatabricksDashboard) { + return (DatabricksDashboard) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a DatabricksDashboard by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksDashboard to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the DatabricksDashboard, including any relationships + * @return the requested DatabricksDashboard, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksDashboard does not exist or the provided GUID is not a DatabricksDashboard + */ + @JsonIgnore + public static DatabricksDashboard get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a DatabricksDashboard by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksDashboard to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the DatabricksDashboard, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the DatabricksDashboard + * @return the requested DatabricksDashboard, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksDashboard does not exist or the provided GUID is not a DatabricksDashboard + */ + @JsonIgnore + public static DatabricksDashboard get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = DatabricksDashboard.select(client) + .where(DatabricksDashboard.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof DatabricksDashboard) { + return (DatabricksDashboard) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = DatabricksDashboard.select(client) + .where(DatabricksDashboard.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof DatabricksDashboard) { + return (DatabricksDashboard) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) DatabricksDashboard to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the DatabricksDashboard + * @return true if the DatabricksDashboard is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a DatabricksDashboard. + * + * @param qualifiedName of the DatabricksDashboard + * @param name of the DatabricksDashboard + * @return the minimal request necessary to update the DatabricksDashboard, as a builder + */ + public static DatabricksDashboardBuilder updater(String qualifiedName, String name) { + return DatabricksDashboard._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a DatabricksDashboard, + * from a potentially more-complete DatabricksDashboard object. + * + * @return the minimal object necessary to update the DatabricksDashboard, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a DatabricksDashboard are not present in the initial object + */ + @Override + public DatabricksDashboardBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class DatabricksDashboardBuilder< + C extends DatabricksDashboard, B extends DatabricksDashboardBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the DatabricksDashboard + * @param name of the DatabricksDashboard + * @return the updated DatabricksDashboard, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksDashboard) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the DatabricksDashboard + * @param name of the DatabricksDashboard + * @return the updated DatabricksDashboard, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksDashboard) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant from which to remove the DatabricksDashboard's owners + * @param qualifiedName of the DatabricksDashboard + * @param name of the DatabricksDashboard + * @return the updated DatabricksDashboard, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksDashboard) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant on which to update the DatabricksDashboard's certificate + * @param qualifiedName of the DatabricksDashboard + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated DatabricksDashboard, or null if the update failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (DatabricksDashboard) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant from which to remove the DatabricksDashboard's certificate + * @param qualifiedName of the DatabricksDashboard + * @param name of the DatabricksDashboard + * @return the updated DatabricksDashboard, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksDashboard) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant on which to update the DatabricksDashboard's announcement + * @param qualifiedName of the DatabricksDashboard + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (DatabricksDashboard) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a DatabricksDashboard. + * + * @param client connectivity to the Atlan client from which to remove the DatabricksDashboard's announcement + * @param qualifiedName of the DatabricksDashboard + * @param name of the DatabricksDashboard + * @return the updated DatabricksDashboard, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksDashboard) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant on which to replace the DatabricksDashboard's assigned terms + * @param qualifiedName for the DatabricksDashboard + * @param name human-readable name of the DatabricksDashboard + * @param terms the list of terms to replace on the DatabricksDashboard, or null to remove all terms from the DatabricksDashboard + * @return the DatabricksDashboard that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static DatabricksDashboard replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (DatabricksDashboard) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the DatabricksDashboard, without replacing existing terms linked to the DatabricksDashboard. + * Note: this operation must make two API calls — one to retrieve the DatabricksDashboard's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the DatabricksDashboard + * @param qualifiedName for the DatabricksDashboard + * @param terms the list of terms to append to the DatabricksDashboard + * @return the DatabricksDashboard that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static DatabricksDashboard appendTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (DatabricksDashboard) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a DatabricksDashboard, without replacing all existing terms linked to the DatabricksDashboard. + * Note: this operation must make two API calls — one to retrieve the DatabricksDashboard's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the DatabricksDashboard + * @param qualifiedName for the DatabricksDashboard + * @param terms the list of terms to remove from the DatabricksDashboard, which must be referenced by GUID + * @return the DatabricksDashboard that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static DatabricksDashboard removeTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (DatabricksDashboard) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a DatabricksDashboard, without replacing existing Atlan tags linked to the DatabricksDashboard. + * Note: this operation must make two API calls — one to retrieve the DatabricksDashboard's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the DatabricksDashboard + * @param qualifiedName of the DatabricksDashboard + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated DatabricksDashboard + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static DatabricksDashboard appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (DatabricksDashboard) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a DatabricksDashboard, without replacing existing Atlan tags linked to the DatabricksDashboard. + * Note: this operation must make two API calls — one to retrieve the DatabricksDashboard's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the DatabricksDashboard + * @param qualifiedName of the DatabricksDashboard + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated DatabricksDashboard + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static DatabricksDashboard appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (DatabricksDashboard) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a DatabricksDashboard. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a DatabricksDashboard + * @param qualifiedName of the DatabricksDashboard + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the DatabricksDashboard + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/DatabricksGenieAgent.java b/sdk/src/main/java/com/atlan/model/assets/DatabricksGenieAgent.java new file mode 100644 index 0000000000..05a9c5ed3a --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/DatabricksGenieAgent.java @@ -0,0 +1,839 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgentType; +import com.atlan.model.enums.AgenticLifecycleStatus; +import com.atlan.model.enums.AgenticSource; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class DatabricksGenieAgent extends Asset + implements IDatabricksGenieAgent, IAgent, IDatabricks, IAgentic, ICatalog, IAsset, IReferenceable, ISQL { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "DatabricksGenieAgent"; + + /** Fixed typeName for DatabricksGenieAgents. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** JSON-serialized LLMConfig (model, temperature, maxTokens, maxTurns, baseUrl). */ + @Attribute + String agentLlmConfig; + + /** JSON list of MCPServerConfig entries (name, url, headers, enabled). */ + @Attribute + String agentMcpServers; + + /** JSON-serialized agent schedule configuration, including kickoff message, cron expression, timezone, version policy, status, and Temporal schedule identifier. */ + @Attribute + String agentSchedules; + + /** Denormalized list of names of the skills bound to this agent version. */ + @Attribute + @Singular + SortedSet agentSkillNames; + + /** Denormalized list of qualifiedNames of the skills bound to this agent version. */ + @Attribute + @Singular + SortedSet agentSkillQualifiedNames; + + /** Skills bound to this agent. */ + @Attribute + @Singular + SortedSet agentSkills; + + /** URL-safe unique identifier for this agent (for example, my-data-agent). */ + @Attribute + String agentSlug; + + /** Lifecycle status of this agent version (draft or published). */ + @Attribute + AgenticLifecycleStatus agentStatus; + + /** System prompt for this agent version. */ + @Attribute + String agentSystemPrompt; + + /** Origin type of this agent — system-provided or custom user-created. */ + @Attribute + AgentType agentType; + + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ + @Attribute + Long agenticVersion; + + /** Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + @Attribute + String calculationViewName; + + /** Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + @Attribute + String calculationViewQualifiedName; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Context repository that produced this agent. */ + @Attribute + IContextRepository contextSourceRepository; + + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + @Attribute + String databaseName; + + /** Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + @Attribute + String databaseQualifiedName; + + /** 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. */ + @Attribute + String databricksGenieAgentEtag; + + /** Workspace folder path containing the Genie space. It is descriptive only and creates no containment or hierarchy edge. */ + @Attribute + String databricksGenieAgentParentPath; + + /** Identifier of the SQL warehouse backing the Genie space. */ + @Attribute + String databricksGenieAgentWarehouseId; + + /** Identifier of the workspace containing the Genie space. */ + @Attribute + String databricksGenieAgentWorkspaceId; + + /** (Deprecated) Model containing the assets. */ + @Attribute + @Singular + SortedSet dbtModels; + + /** DBT seeds that materialize the SQL asset. */ + @Attribute + @Singular + SortedSet dbtSeedAssets; + + /** Source containing the assets. */ + @Attribute + @Singular + SortedSet dbtSources; + + /** Tests related to this asset. */ + @Attribute + @Singular + SortedSet dbtTests; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Whether this asset has been profiled (true) or not (false). */ + @Attribute + Boolean isProfiled; + + /** Time (epoch) at which this asset was last profiled, in milliseconds. */ + @Attribute + @Date + Long lastProfiledAt; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Number of times this asset has been queried. */ + @Attribute + Long queryCount; + + /** Time (epoch) at which the query count was last updated, in milliseconds. */ + @Attribute + @Date + Long queryCountUpdatedAt; + + /** Number of unique users who have queried this asset. */ + @Attribute + Long queryUserCount; + + /** Map of unique users who have queried this asset to the number of times they have queried it. */ + @Attribute + @Singular("putQueryUserMap") + Map queryUserMap; + + /** Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + @Attribute + String schemaName; + + /** Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + @Attribute + String schemaQualifiedName; + + /** Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context. */ + @Attribute + String sqlAIModelContextQualifiedName; + + /** Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds. */ + @Attribute + @Date + Long sqlAiInsightsLastAnalyzedAt; + + /** Number of popular business questions associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularBusinessQuestionCount; + + /** Number of popular filter patterns associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularFilterCount; + + /** Number of popular join patterns associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularJoinCount; + + /** Number of relationship insights associated with this asset. */ + @Attribute + Integer sqlAiInsightsRelationshipCount; + + /** Identifier of the Coalesce environment. */ + @Attribute + String sqlCoalesceEnvironmentId; + + /** Name of the Coalesce environment. */ + @Attribute + String sqlCoalesceEnvironmentName; + + /** Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds. */ + @Attribute + @Date + Long sqlCoalesceLastRunAt; + + /** Status of the Coalesce run. One of: success, failure, cancelled, or skipped. */ + @Attribute + String sqlCoalesceLastRunStatus; + + /** Status of the Coalesce node for a given run. */ + @Attribute + String sqlCoalesceNodeStatus; + + /** Type of the Coalesce node. */ + @Attribute + String sqlCoalesceNodeType; + + /** Identifier of the Coalesce project. */ + @Attribute + String sqlCoalesceProjectId; + + /** Name of the Coalesce project. */ + @Attribute + String sqlCoalesceProjectName; + + /** Sources related to this asset. */ + @Attribute + @Singular + SortedSet sqlDBTSources; + + /** Assets related to the model. */ + @Attribute + @Singular + SortedSet sqlDbtModels; + + /** Whether this asset has any AI insights data available. */ + @Attribute + Boolean sqlHasAiInsights; + + /** Whether this asset is secure (true) or not (false). */ + @Attribute + Boolean sqlIsSecure; + + /** Qualified names of data shares this asset is granted to. */ + @Attribute + @Singular + SortedSet sqlShareQualifiedNames; + + /** Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + @Attribute + String tableName; + + /** Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + @Attribute + String tableQualifiedName; + + /** Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + @Attribute + String viewName; + + /** Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + @Attribute + String viewQualifiedName; + + /** + * Builds the minimal object necessary to create a relationship to a DatabricksGenieAgent, from a potentially + * more-complete DatabricksGenieAgent object. + * + * @return the minimal object necessary to relate to the DatabricksGenieAgent + * @throws InvalidRequestException if any of the minimal set of required properties for a DatabricksGenieAgent relationship are not found in the initial object + */ + @Override + public DatabricksGenieAgent trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all DatabricksGenieAgent assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) DatabricksGenieAgent assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all DatabricksGenieAgent assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all DatabricksGenieAgent assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) DatabricksGenieAgents will be included + * @return a fluent search that includes all DatabricksGenieAgent assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a DatabricksGenieAgent by GUID. Use this to create a relationship to this DatabricksGenieAgent, + * where the relationship should be replaced. + * + * @param guid the GUID of the DatabricksGenieAgent to reference + * @return reference to a DatabricksGenieAgent that can be used for defining a relationship to a DatabricksGenieAgent + */ + public static DatabricksGenieAgent refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a DatabricksGenieAgent by GUID. Use this to create a relationship to this DatabricksGenieAgent, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the DatabricksGenieAgent to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a DatabricksGenieAgent that can be used for defining a relationship to a DatabricksGenieAgent + */ + public static DatabricksGenieAgent refByGuid(String guid, Reference.SaveSemantic semantic) { + return DatabricksGenieAgent._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a DatabricksGenieAgent by qualifiedName. Use this to create a relationship to this DatabricksGenieAgent, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the DatabricksGenieAgent to reference + * @return reference to a DatabricksGenieAgent that can be used for defining a relationship to a DatabricksGenieAgent + */ + public static DatabricksGenieAgent refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a DatabricksGenieAgent by qualifiedName. Use this to create a relationship to this DatabricksGenieAgent, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the DatabricksGenieAgent to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a DatabricksGenieAgent that can be used for defining a relationship to a DatabricksGenieAgent + */ + public static DatabricksGenieAgent refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return DatabricksGenieAgent._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a DatabricksGenieAgent by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksGenieAgent to retrieve, either its GUID or its full qualifiedName + * @return the requested full DatabricksGenieAgent, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksGenieAgent does not exist or the provided GUID is not a DatabricksGenieAgent + */ + @JsonIgnore + public static DatabricksGenieAgent get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a DatabricksGenieAgent by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksGenieAgent to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full DatabricksGenieAgent, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksGenieAgent does not exist or the provided GUID is not a DatabricksGenieAgent + */ + @JsonIgnore + public static DatabricksGenieAgent get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof DatabricksGenieAgent) { + return (DatabricksGenieAgent) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof DatabricksGenieAgent) { + return (DatabricksGenieAgent) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a DatabricksGenieAgent by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksGenieAgent to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the DatabricksGenieAgent, including any relationships + * @return the requested DatabricksGenieAgent, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksGenieAgent does not exist or the provided GUID is not a DatabricksGenieAgent + */ + @JsonIgnore + public static DatabricksGenieAgent get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a DatabricksGenieAgent by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the DatabricksGenieAgent to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the DatabricksGenieAgent, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the DatabricksGenieAgent + * @return the requested DatabricksGenieAgent, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the DatabricksGenieAgent does not exist or the provided GUID is not a DatabricksGenieAgent + */ + @JsonIgnore + public static DatabricksGenieAgent get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = DatabricksGenieAgent.select(client) + .where(DatabricksGenieAgent.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof DatabricksGenieAgent) { + return (DatabricksGenieAgent) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = DatabricksGenieAgent.select(client) + .where(DatabricksGenieAgent.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof DatabricksGenieAgent) { + return (DatabricksGenieAgent) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) DatabricksGenieAgent to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the DatabricksGenieAgent + * @return true if the DatabricksGenieAgent is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a DatabricksGenieAgent. + * + * @param qualifiedName of the DatabricksGenieAgent + * @param name of the DatabricksGenieAgent + * @return the minimal request necessary to update the DatabricksGenieAgent, as a builder + */ + public static DatabricksGenieAgentBuilder updater(String qualifiedName, String name) { + return DatabricksGenieAgent._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a DatabricksGenieAgent, + * from a potentially more-complete DatabricksGenieAgent object. + * + * @return the minimal object necessary to update the DatabricksGenieAgent, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a DatabricksGenieAgent are not present in the initial object + */ + @Override + public DatabricksGenieAgentBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class DatabricksGenieAgentBuilder< + C extends DatabricksGenieAgent, B extends DatabricksGenieAgentBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the DatabricksGenieAgent + * @param name of the DatabricksGenieAgent + * @return the updated DatabricksGenieAgent, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksGenieAgent) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the DatabricksGenieAgent + * @param name of the DatabricksGenieAgent + * @return the updated DatabricksGenieAgent, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksGenieAgent) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant from which to remove the DatabricksGenieAgent's owners + * @param qualifiedName of the DatabricksGenieAgent + * @param name of the DatabricksGenieAgent + * @return the updated DatabricksGenieAgent, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksGenieAgent) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant on which to update the DatabricksGenieAgent's certificate + * @param qualifiedName of the DatabricksGenieAgent + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated DatabricksGenieAgent, or null if the update failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (DatabricksGenieAgent) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant from which to remove the DatabricksGenieAgent's certificate + * @param qualifiedName of the DatabricksGenieAgent + * @param name of the DatabricksGenieAgent + * @return the updated DatabricksGenieAgent, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksGenieAgent) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant on which to update the DatabricksGenieAgent's announcement + * @param qualifiedName of the DatabricksGenieAgent + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (DatabricksGenieAgent) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan client from which to remove the DatabricksGenieAgent's announcement + * @param qualifiedName of the DatabricksGenieAgent + * @param name of the DatabricksGenieAgent + * @return the updated DatabricksGenieAgent, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (DatabricksGenieAgent) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant on which to replace the DatabricksGenieAgent's assigned terms + * @param qualifiedName for the DatabricksGenieAgent + * @param name human-readable name of the DatabricksGenieAgent + * @param terms the list of terms to replace on the DatabricksGenieAgent, or null to remove all terms from the DatabricksGenieAgent + * @return the DatabricksGenieAgent that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static DatabricksGenieAgent replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (DatabricksGenieAgent) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the DatabricksGenieAgent, without replacing existing terms linked to the DatabricksGenieAgent. + * Note: this operation must make two API calls — one to retrieve the DatabricksGenieAgent's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the DatabricksGenieAgent + * @param qualifiedName for the DatabricksGenieAgent + * @param terms the list of terms to append to the DatabricksGenieAgent + * @return the DatabricksGenieAgent that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static DatabricksGenieAgent appendTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (DatabricksGenieAgent) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a DatabricksGenieAgent, without replacing all existing terms linked to the DatabricksGenieAgent. + * Note: this operation must make two API calls — one to retrieve the DatabricksGenieAgent's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the DatabricksGenieAgent + * @param qualifiedName for the DatabricksGenieAgent + * @param terms the list of terms to remove from the DatabricksGenieAgent, which must be referenced by GUID + * @return the DatabricksGenieAgent that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static DatabricksGenieAgent removeTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (DatabricksGenieAgent) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a DatabricksGenieAgent, without replacing existing Atlan tags linked to the DatabricksGenieAgent. + * Note: this operation must make two API calls — one to retrieve the DatabricksGenieAgent's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the DatabricksGenieAgent + * @param qualifiedName of the DatabricksGenieAgent + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated DatabricksGenieAgent + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static DatabricksGenieAgent appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (DatabricksGenieAgent) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a DatabricksGenieAgent, without replacing existing Atlan tags linked to the DatabricksGenieAgent. + * Note: this operation must make two API calls — one to retrieve the DatabricksGenieAgent's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the DatabricksGenieAgent + * @param qualifiedName of the DatabricksGenieAgent + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated DatabricksGenieAgent + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static DatabricksGenieAgent appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (DatabricksGenieAgent) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a DatabricksGenieAgent. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a DatabricksGenieAgent + * @param qualifiedName of the DatabricksGenieAgent + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the DatabricksGenieAgent + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/DbtColumnProcess.java b/sdk/src/main/java/com/atlan/model/assets/DbtColumnProcess.java index a948590ea8..9406f11368 100644 --- a/sdk/src/main/java/com/atlan/model/assets/DbtColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/DbtColumnProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -270,6 +271,10 @@ public class DbtColumnProcess extends Asset @Attribute ILineageProcess process; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/DbtProcess.java b/sdk/src/main/java/com/atlan/model/assets/DbtProcess.java index 39ec1e6fd1..4c985f190f 100644 --- a/sdk/src/main/java/com/atlan/model/assets/DbtProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/DbtProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -271,6 +272,10 @@ public class DbtProcess extends Asset implements IDbtProcess, ILineageProcess, I @Attribute IPowerBIDataflow powerBIDataflow; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/FlowDatasetOperation.java b/sdk/src/main/java/com/atlan/model/assets/FlowDatasetOperation.java index 3b0405d9bf..7839f97a0b 100644 --- a/sdk/src/main/java/com/atlan/model/assets/FlowDatasetOperation.java +++ b/sdk/src/main/java/com/atlan/model/assets/FlowDatasetOperation.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -190,6 +191,10 @@ public class FlowDatasetOperation extends Asset @Attribute IPowerBIDataflow powerBIDataflow; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/FlowFieldOperation.java b/sdk/src/main/java/com/atlan/model/assets/FlowFieldOperation.java index 5758825cb1..ceaf71733b 100644 --- a/sdk/src/main/java/com/atlan/model/assets/FlowFieldOperation.java +++ b/sdk/src/main/java/com/atlan/model/assets/FlowFieldOperation.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -190,6 +191,10 @@ public class FlowFieldOperation extends Asset @Attribute ILineageProcess process; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/Function.java b/sdk/src/main/java/com/atlan/model/assets/Function.java index a981bcb59d..d613ec450b 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Function.java +++ b/sdk/src/main/java/com/atlan/model/assets/Function.java @@ -60,6 +60,10 @@ public class Function extends Asset implements IFunction, ISQL, ICatalog, IAsset @Attribute String catalogDatasetGuid; + /** Cosmos collection in which this function exists. */ + @Attribute + ICosmosMongoDBCollection cosmosMongoDBCollection; + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ @Attribute String databaseName; diff --git a/sdk/src/main/java/com/atlan/model/assets/Glossary.java b/sdk/src/main/java/com/atlan/model/assets/Glossary.java index 8a6ac01714..9c1cf82f23 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Glossary.java +++ b/sdk/src/main/java/com/atlan/model/assets/Glossary.java @@ -80,6 +80,11 @@ public class Glossary extends Asset implements IGlossary, IAsset, IReferenceable @Attribute AtlasGlossaryType glossaryType; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** Unused. Language of the glossary's contents. */ @Attribute String language; diff --git a/sdk/src/main/java/com/atlan/model/assets/GlossaryCategory.java b/sdk/src/main/java/com/atlan/model/assets/GlossaryCategory.java index f8db7b9dc7..30a4b0ddf4 100644 --- a/sdk/src/main/java/com/atlan/model/assets/GlossaryCategory.java +++ b/sdk/src/main/java/com/atlan/model/assets/GlossaryCategory.java @@ -79,6 +79,11 @@ public class GlossaryCategory extends Asset implements IGlossaryCategory, IAsset @Singular SortedSet gcpDataplexAspectTypeMetadataEntities; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** Unused. Detailed description of the category. See 'readme' instead. */ @Attribute String longDescription; diff --git a/sdk/src/main/java/com/atlan/model/assets/GlossaryTerm.java b/sdk/src/main/java/com/atlan/model/assets/GlossaryTerm.java index 0241b2970f..36b01787f1 100644 --- a/sdk/src/main/java/com/atlan/model/assets/GlossaryTerm.java +++ b/sdk/src/main/java/com/atlan/model/assets/GlossaryTerm.java @@ -103,6 +103,11 @@ public class GlossaryTerm extends Asset implements IGlossaryTerm, IAsset, IRefer @Singular("isATerm") SortedSet isA; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** Unused. Detailed definition of the term. See 'readme' instead. */ @Attribute String longDescription; diff --git a/sdk/src/main/java/com/atlan/model/assets/IAgent.java b/sdk/src/main/java/com/atlan/model/assets/IAgent.java index 545cb475eb..fb7ad6a72d 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAgent.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAgent.java @@ -4,6 +4,7 @@ import com.atlan.model.enums.AgentType; import com.atlan.model.enums.AgenticLifecycleStatus; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -51,6 +52,9 @@ public interface IAgent { /** JSON list of MCPServerConfig entries (name, url, headers, enabled). */ KeywordField AGENT_MCP_SERVERS = new KeywordField("agentMcpServers", "agentMcpServers"); + /** JSON-serialized agent schedule configuration, including kickoff message, cron expression, timezone, version policy, status, and Temporal schedule identifier. */ + TextField AGENT_SCHEDULES = new TextField("agentSchedules", "agentSchedules"); + /** Denormalized list of names of the skills bound to this agent version. */ KeywordField AGENT_SKILL_NAMES = new KeywordField("agentSkillNames", "agentSkillNames"); @@ -87,6 +91,9 @@ public interface IAgent { /** JSON list of MCPServerConfig entries (name, url, headers, enabled). */ String getAgentMcpServers(); + /** JSON-serialized agent schedule configuration, including kickoff message, cron expression, timezone, version policy, status, and Temporal schedule identifier. */ + String getAgentSchedules(); + /** Denormalized list of names of the skills bound to this agent version. */ SortedSet getAgentSkillNames(); @@ -110,6 +117,9 @@ default SortedSet getAgentSkills() { /** Origin type of this agent — system-provided or custom user-created. */ AgentType getAgentType(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAgentic.java b/sdk/src/main/java/com/atlan/model/assets/IAgentic.java index 266081b02c..3751a01a73 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAgentic.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAgentic.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -13,6 +14,7 @@ import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.KeywordField; import com.atlan.model.fields.NumericField; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; @@ -41,6 +43,9 @@ public interface IAgentic { public static final String TYPE_NAME = "Agentic"; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + KeywordField AGENTIC_SOURCE = new KeywordField("agenticSource", "agenticSource"); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ NumericField AGENTIC_VERSION = new NumericField("agenticVersion", "agenticVersion"); @@ -53,6 +58,9 @@ public interface IAgentic { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAirflow.java b/sdk/src/main/java/com/atlan/model/assets/IAirflow.java index 5e31206339..faa234d857 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAirflow.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAirflow.java @@ -48,6 +48,9 @@ public interface IAirflow { /** End time of the run. */ NumericField AIRFLOW_RUN_END_TIME = new NumericField("airflowRunEndTime", "airflowRunEndTime"); + /** Error message of the run in Airflow, populated when the run fails. */ + KeywordField AIRFLOW_RUN_ERROR_MESSAGE = new KeywordField("airflowRunErrorMessage", "airflowRunErrorMessage"); + /** Name of the run. */ KeywordField AIRFLOW_RUN_NAME = new KeywordField("airflowRunName", "airflowRunName"); @@ -86,6 +89,9 @@ public interface IAirflow { /** End time of the run. */ Long getAirflowRunEndTime(); + /** Error message of the run in Airflow, populated when the run fails. */ + String getAirflowRunErrorMessage(); + /** Name of the run. */ String getAirflowRunName(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAirflowDag.java b/sdk/src/main/java/com/atlan/model/assets/IAirflowDag.java index 147622030d..71768309c6 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAirflowDag.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAirflowDag.java @@ -71,6 +71,9 @@ public interface IAirflowDag { /** End time of the run. */ Long getAirflowRunEndTime(); + /** Error message of the run in Airflow, populated when the run fails. */ + String getAirflowRunErrorMessage(); + /** Name of the run. */ String getAirflowRunName(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAirflowTask.java b/sdk/src/main/java/com/atlan/model/assets/IAirflowTask.java index 65870a6fdd..54b356f137 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAirflowTask.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAirflowTask.java @@ -121,6 +121,9 @@ default IAirflowDag getAirflowDag() { /** End time of the run. */ Long getAirflowRunEndTime(); + /** Error message of the run in Airflow, populated when the run fails. */ + String getAirflowRunErrorMessage(); + /** Name of the run. */ String getAirflowRunName(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAppWorkflowRun.java b/sdk/src/main/java/com/atlan/model/assets/IAppWorkflowRun.java index 3802daf869..fbeb8b1441 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAppWorkflowRun.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAppWorkflowRun.java @@ -79,6 +79,10 @@ public interface IAppWorkflowRun { /** Map of all activity steps for the workflow run (escaped JSON string). */ TextField APP_WORKFLOW_RUN_DAG = new TextField("appWorkflowRunDag", "appWorkflowRunDag"); + /** SDR deployment this run executed under, denormalized from the parent workflow so a deployment's run history can be filtered directly. Without it, filtering requires two queries — resolve the deployment's workflow slugs, then match runs by parent slug — because Elasticsearch cannot join across entity types. Null for runs on Atlan-managed infrastructure (DISTR-832). */ + KeywordField APP_WORKFLOW_RUN_DEPLOYMENT_NAME = + new KeywordField("appWorkflowRunDeploymentName", "appWorkflowRunDeploymentName"); + /** Error handling strategy for the workflow run. */ KeywordField APP_WORKFLOW_RUN_ERROR_HANDLING = new KeywordField("appWorkflowRunErrorHandling", "appWorkflowRunErrorHandling"); @@ -171,6 +175,9 @@ default SortedSet getAnomaloChecks() { /** Map of all activity steps for the workflow run (escaped JSON string). */ String getAppWorkflowRunDag(); + /** SDR deployment this run executed under, denormalized from the parent workflow so a deployment's run history can be filtered directly. Without it, filtering requires two queries — resolve the deployment's workflow slugs, then match runs by parent slug — because Elasticsearch cannot join across entity types. Null for runs on Atlan-managed infrastructure (DISTR-832). */ + String getAppWorkflowRunDeploymentName(); + /** Error handling strategy for the workflow run. */ AtlanAppErrorHandling getAppWorkflowRunErrorHandling(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IArtifact.java b/sdk/src/main/java/com/atlan/model/assets/IArtifact.java index 395d68cf49..be4af7f10a 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IArtifact.java +++ b/sdk/src/main/java/com/atlan/model/assets/IArtifact.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -54,6 +55,9 @@ public interface IArtifact { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAsset.java b/sdk/src/main/java/com/atlan/model/assets/IAsset.java index bd6cb07b7a..1c2541eccb 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAsset.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAsset.java @@ -64,7 +64,8 @@ public interface IAsset { TextField ANNOUNCEMENT_MESSAGE = new TextField("announcementMessage", "announcementMessage"); /** Brief title for the announcement on this asset. Required when announcementType is specified. */ - TextField ANNOUNCEMENT_TITLE = new TextField("announcementTitle", "announcementTitle"); + KeywordTextField ANNOUNCEMENT_TITLE = + new KeywordTextField("announcementTitle", "announcementTitle.keyword", "announcementTitle"); /** Type of announcement on this asset. */ KeywordField ANNOUNCEMENT_TYPE = new KeywordField("announcementType", "announcementType"); diff --git a/sdk/src/main/java/com/atlan/model/assets/IAtlanAppDeployment.java b/sdk/src/main/java/com/atlan/model/assets/IAtlanAppDeployment.java index 067e80e816..a14c7e80e9 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAtlanAppDeployment.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAtlanAppDeployment.java @@ -44,7 +44,7 @@ public interface IAtlanAppDeployment { public static final String TYPE_NAME = "AtlanAppDeployment"; - /** Target deployment environment where the app is installed (e.g. "atlan" for Atlan-managed infra, or a customer SDR deployment name for customer-managed infra). */ + /** Target deployment environment where the app is installed, for example atlan (Atlan-managed infra) or a customer SDR deployment name (customer-managed infra). */ KeywordField ATLAN_APP_DEPLOYMENT_NAME = new KeywordField("atlanAppDeploymentName", "atlanAppDeploymentName"); /** Detailed error message explaining why the deployment failed. Should only be populated when status = FAILED. */ @@ -505,7 +505,7 @@ default SortedSet getAssignedTerms() { return null; } - /** Target deployment environment where the app is installed (e.g. "atlan" for Atlan-managed infra, or a customer SDR deployment name for customer-managed infra). */ + /** Target deployment environment where the app is installed, for example atlan (Atlan-managed infra) or a customer SDR deployment name (customer-managed infra). */ String getAtlanAppDeploymentName(); /** Detailed error message explaining why the deployment failed. Should only be populated when status = FAILED. */ diff --git a/sdk/src/main/java/com/atlan/model/assets/IAtlanAppInstalled.java b/sdk/src/main/java/com/atlan/model/assets/IAtlanAppInstalled.java index d9f590e593..6f3e016b72 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAtlanAppInstalled.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAtlanAppInstalled.java @@ -53,7 +53,7 @@ public interface IAtlanAppInstalled { /** Configuration settings used by the atlan application. */ KeywordField ATLAN_APP_DEPLOYMENT_CONFIG = new KeywordField("atlanAppDeploymentConfig", "atlanAppDeploymentConfig"); - /** Target deployment environment where the app is installed (e.g. "atlan" for Atlan-managed infra, or a customer SDR deployment name for customer-managed infra). */ + /** Target deployment environment where the app is installed, for example atlan (Atlan-managed infra) or a customer SDR deployment name (customer-managed infra). */ KeywordField ATLAN_APP_DEPLOYMENT_NAME = new KeywordField("atlanAppDeploymentName", "atlanAppDeploymentName"); /** List of groups who administer this asset. (This is only used for certain asset types.) */ @@ -508,7 +508,7 @@ default SortedSet getAssignedTerms() { /** Configuration settings used by the atlan application. */ String getAtlanAppDeploymentConfig(); - /** Target deployment environment where the app is installed (e.g. "atlan" for Atlan-managed infra, or a customer SDR deployment name for customer-managed infra). */ + /** Target deployment environment where the app is installed, for example atlan (Atlan-managed infra) or a customer SDR deployment name (customer-managed infra). */ String getAtlanAppDeploymentName(); /** Metadata for the Atlan application (escaped JSON string). */ diff --git a/sdk/src/main/java/com/atlan/model/assets/IAtlanAppWorkflow.java b/sdk/src/main/java/com/atlan/model/assets/IAtlanAppWorkflow.java index ab94979fca..1a4d0d9df0 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IAtlanAppWorkflow.java +++ b/sdk/src/main/java/com/atlan/model/assets/IAtlanAppWorkflow.java @@ -5,6 +5,7 @@ import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanAppWorkflowOwnership; +import com.atlan.model.enums.AtlanAppWorkflowRuntimeMode; import com.atlan.model.enums.AtlanAppWorkflowSource; import com.atlan.model.enums.AtlanAppWorkflowStatus; import com.atlan.model.enums.AtlanConnectorType; @@ -50,9 +51,17 @@ public interface IAtlanAppWorkflow { /** Atlan application containing the workflow. */ RelationField ATLAN_APP = new RelationField("atlanApp"); + /** 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). */ + KeywordField ATLAN_APP_WORKFLOW_AGENT_NAME = + new KeywordField("atlanAppWorkflowAgentName", "atlanAppWorkflowAgentName"); + /** Map of all activity steps for the workflow (escaped JSON string). */ TextField ATLAN_APP_WORKFLOW_DAG = new TextField("atlanAppWorkflowDag", "atlanAppWorkflowDag"); + /** SDR deployment name this workflow's runs execute under. Denormalized from the run-time config for run-history filtering and metric labels. */ + KeywordField ATLAN_APP_WORKFLOW_DEPLOYMENT_NAME = + new KeywordField("atlanAppWorkflowDeploymentName", "atlanAppWorkflowDeploymentName"); + /** Error handling strategy for the workflow. */ KeywordField ATLAN_APP_WORKFLOW_ERROR_HANDLING = new KeywordField("atlanAppWorkflowErrorHandling", "atlanAppWorkflowErrorHandling"); @@ -64,6 +73,10 @@ public interface IAtlanAppWorkflow { /** The workflow runs contained within the workflow. */ RelationField ATLAN_APP_WORKFLOW_RUNS = new RelationField("atlanAppWorkflowRuns"); + /** Execution runtime for this workflow's runs (SDR or DIRECT). Set at workflow save and constant across the workflow's runs. */ + KeywordField ATLAN_APP_WORKFLOW_RUNTIME_MODE = + new KeywordField("atlanAppWorkflowRuntimeMode", "atlanAppWorkflowRuntimeMode"); + /** Slug of the workflow. */ KeywordField ATLAN_APP_WORKFLOW_SLUG = new KeywordField("atlanAppWorkflowSlug", "atlanAppWorkflowSlug"); @@ -541,9 +554,15 @@ default SortedSet getAtlanAppTools() { return null; } + /** 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). */ + String getAtlanAppWorkflowAgentName(); + /** Map of all activity steps for the workflow (escaped JSON string). */ String getAtlanAppWorkflowDag(); + /** SDR deployment name this workflow's runs execute under. Denormalized from the run-time config for run-history filtering and metric labels. */ + String getAtlanAppWorkflowDeploymentName(); + /** Error handling strategy for the workflow. */ AtlanAppErrorHandling getAtlanAppWorkflowErrorHandling(); @@ -555,6 +574,9 @@ default SortedSet getAtlanAppWorkflowRuns() { return null; } + /** Execution runtime for this workflow's runs (SDR or DIRECT). Set at workflow save and constant across the workflow's runs. */ + AtlanAppWorkflowRuntimeMode getAtlanAppWorkflowRuntimeMode(); + /** Slug of the workflow. */ String getAtlanAppWorkflowSlug(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IBIProcess.java b/sdk/src/main/java/com/atlan/model/assets/IBIProcess.java index 192fafacd6..07ea0f6cd3 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IBIProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/IBIProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; @@ -693,6 +694,9 @@ default IPowerBIDataflow getPowerBIDataflow() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ICatalog.java b/sdk/src/main/java/com/atlan/model/assets/ICatalog.java index 166739076f..6c3b4ba78d 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ICatalog.java +++ b/sdk/src/main/java/com/atlan/model/assets/ICatalog.java @@ -337,12 +337,18 @@ public static ICatalog getLineageReference(String typeName, String qualifiedName case DatabricksAIModelVersion.TYPE_NAME: ref = DatabricksAIModelVersion.refByQualifiedName(qualifiedName); break; + case DatabricksDashboard.TYPE_NAME: + ref = DatabricksDashboard.refByQualifiedName(qualifiedName); + break; case DatabricksExternalLocation.TYPE_NAME: ref = DatabricksExternalLocation.refByQualifiedName(qualifiedName); break; case DatabricksExternalLocationPath.TYPE_NAME: ref = DatabricksExternalLocationPath.refByQualifiedName(qualifiedName); break; + case DatabricksGenieAgent.TYPE_NAME: + ref = DatabricksGenieAgent.refByQualifiedName(qualifiedName); + break; case DatabricksMetricView.TYPE_NAME: ref = DatabricksMetricView.refByQualifiedName(qualifiedName); break; @@ -889,6 +895,21 @@ public static ICatalog getLineageReference(String typeName, String qualifiedName case SalesforceReport.TYPE_NAME: ref = SalesforceReport.refByQualifiedName(qualifiedName); break; + case SapAnalyticsCloudColumn.TYPE_NAME: + ref = SapAnalyticsCloudColumn.refByQualifiedName(qualifiedName); + break; + case SapAnalyticsCloudFolder.TYPE_NAME: + ref = SapAnalyticsCloudFolder.refByQualifiedName(qualifiedName); + break; + case SapAnalyticsCloudModel.TYPE_NAME: + ref = SapAnalyticsCloudModel.refByQualifiedName(qualifiedName); + break; + case SapAnalyticsCloudStory.TYPE_NAME: + ref = SapAnalyticsCloudStory.refByQualifiedName(qualifiedName); + break; + case SapDatasphereReplicationFlow.TYPE_NAME: + ref = SapDatasphereReplicationFlow.refByQualifiedName(qualifiedName); + break; case SapErpAbapProgram.TYPE_NAME: ref = SapErpAbapProgram.refByQualifiedName(qualifiedName); break; diff --git a/sdk/src/main/java/com/atlan/model/assets/IColumnProcess.java b/sdk/src/main/java/com/atlan/model/assets/IColumnProcess.java index 536841871e..ff0090a250 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/IColumnProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.RelationField; import com.atlan.model.relations.RelationshipAttributes; @@ -702,6 +703,9 @@ default ILineageProcess getProcess() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IConnection.java b/sdk/src/main/java/com/atlan/model/assets/IConnection.java index 8cf8acd32c..5e0c269c00 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IConnection.java +++ b/sdk/src/main/java/com/atlan/model/assets/IConnection.java @@ -88,6 +88,10 @@ public interface IConnection { /** Whether data quality is enabled for this connection (true) or not (false). */ BooleanField CONNECTION_IS_DQ_ENABLED = new BooleanField("connectionIsDQEnabled", "connectionIsDQEnabled"); + /** Time (epoch) at which popularity insights were last computed for this connection, in milliseconds. Marks the end of the popularity window; the start is this value minus popularityInsightsTimeframe days. */ + NumericField CONNECTION_POPULARITY_INSIGHTS_COMPUTED_AT = + new NumericField("connectionPopularityInsightsComputedAt", "connectionPopularityInsightsComputedAt"); + /** Strategy configuration for reverse-sync operations on this connection, stored as a stringified JSON array. Each element specifies a source entity type and whether reverse-sync is enabled for it, e.g. [{"source_entity": "Aspects", "enabled": true}]. */ KeywordField CONNECTION_REVERSE_SYNC_STRATEGY = new KeywordField("connectionReverseSyncStrategy", "connectionReverseSyncStrategy"); @@ -96,6 +100,10 @@ public interface IConnection { KeywordField CONNECTION_SSO_CREDENTIAL_GUID = new KeywordField("connectionSSOCredentialGuid", "connectionSSOCredentialGuid"); + /** Identifier of the source account this connection points to, expressed in the source's own namespace (for example 'MYORG.MYACCOUNT' for Snowflake). Distinct from the credential host, which uses a different namespace and does not convert. */ + KeywordField CONNECTION_SOURCE_ACCOUNT_IDENTIFIER = + new KeywordField("connectionSourceAccountIdentifier", "connectionSourceAccountIdentifier"); + /** Configuration for a workflow run. */ KeywordField CONNECTION_WORKFLOW_CONFIGURATION = new KeywordField("connectionWorkflowConfiguration", "connectionWorkflowConfiguration"); @@ -669,6 +677,9 @@ default SortedSet getAssignedTerms() { /** Simple name of the connection through which this asset is accessible. */ String getConnectionName(); + /** Time (epoch) at which popularity insights were last computed for this connection, in milliseconds. Marks the end of the popularity window; the start is this value minus popularityInsightsTimeframe days. */ + Long getConnectionPopularityInsightsComputedAt(); + /** Unique name of the connection through which this asset is accessible. */ String getConnectionQualifiedName(); @@ -678,6 +689,9 @@ default SortedSet getAssignedTerms() { /** Unique identifier (GUID) for the SSO credentials to use for this connection. */ String getConnectionSSOCredentialGuid(); + /** Identifier of the source account this connection points to, expressed in the source's own namespace (for example 'MYORG.MYACCOUNT' for Snowflake). Distinct from the credential host, which uses a different namespace and does not convert. */ + String getConnectionSourceAccountIdentifier(); + /** Configuration for a workflow run. */ Map getConnectionWorkflowConfiguration(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IConnectionProcess.java b/sdk/src/main/java/com/atlan/model/assets/IConnectionProcess.java index 0a005b7196..f3f9be77c1 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IConnectionProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/IConnectionProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.RelationField; import com.atlan.model.relations.RelationshipAttributes; @@ -700,6 +701,9 @@ default IPowerBIDataflow getPowerBIDataflow() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IContext.java b/sdk/src/main/java/com/atlan/model/assets/IContext.java index 63507a9ad1..d176b2db44 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IContext.java +++ b/sdk/src/main/java/com/atlan/model/assets/IContext.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -54,6 +55,9 @@ public interface IContext { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IContextArtifact.java b/sdk/src/main/java/com/atlan/model/assets/IContextArtifact.java index 4afeb61cf8..7c7929985a 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IContextArtifact.java +++ b/sdk/src/main/java/com/atlan/model/assets/IContextArtifact.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -54,6 +55,9 @@ public interface IContextArtifact { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IContextRepository.java b/sdk/src/main/java/com/atlan/model/assets/IContextRepository.java index e7b72f6d9c..98426b8a26 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IContextRepository.java +++ b/sdk/src/main/java/com/atlan/model/assets/IContextRepository.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -50,6 +51,9 @@ public interface IContextRepository { /** Assets that serve as input context for this repository. */ RelationField CONTEXT_INPUT_ASSETS = new RelationField("contextInputAssets"); + /** Agents produced by this context repository. */ + RelationField CONTEXT_OUTPUT_AGENTS = new RelationField("contextOutputAgents"); + /** Skill produced by this context repository. */ RelationField CONTEXT_OUTPUT_SKILL = new RelationField("contextOutputSkill"); @@ -74,6 +78,9 @@ public interface IContextRepository { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); @@ -542,6 +549,11 @@ default SortedSet getContextInputAssets() { return null; } + /** Agents produced by this context repository. */ + default SortedSet getContextOutputAgents() { + return null; + } + /** Skill produced by this context repository. */ default ISkill getContextOutputSkill() { return null; diff --git a/sdk/src/main/java/com/atlan/model/assets/ICosmosMongoDBCollection.java b/sdk/src/main/java/com/atlan/model/assets/ICosmosMongoDBCollection.java index ffe71bf463..c41dc793bd 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ICosmosMongoDBCollection.java +++ b/sdk/src/main/java/com/atlan/model/assets/ICosmosMongoDBCollection.java @@ -55,6 +55,12 @@ public interface ICosmosMongoDBCollection { "cosmosMongoDBDatabaseQualifiedName", "cosmosMongoDBDatabaseQualifiedName.text"); + /** User-defined functions that exist within this collection. */ + RelationField COSMOS_MONGO_DB_FUNCTIONS = new RelationField("cosmosMongoDBFunctions"); + + /** Stored procedures and triggers that exist within this collection. */ + RelationField COSMOS_MONGO_DB_STORED_PROCEDURES = new RelationField("cosmosMongoDBStoredProcedures"); + /** List of groups who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminGroups(); @@ -544,6 +550,16 @@ default ICosmosMongoDBDatabase getCosmosMongoDBDatabase() { /** Unique name of the database in which this collection exists. */ String getCosmosMongoDBDatabaseQualifiedName(); + /** User-defined functions that exist within this collection. */ + default SortedSet getCosmosMongoDBFunctions() { + return null; + } + + /** Stored procedures and triggers that exist within this collection. */ + default SortedSet getCosmosMongoDBStoredProcedures() { + return null; + } + /** Latest version of the data contract (in any status) for this asset. */ default IDataContract getDataContractLatest() { return null; diff --git a/sdk/src/main/java/com/atlan/model/assets/IDatabricksDashboard.java b/sdk/src/main/java/com/atlan/model/assets/IDatabricksDashboard.java new file mode 100644 index 0000000000..9d4fde077a --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/IDatabricksDashboard.java @@ -0,0 +1,1030 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.DatabricksDashboardLifecycleState; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.BooleanField; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * Instance of a Databricks AI/BI dashboard in Atlan. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface IDatabricksDashboard { + + public static final String TYPE_NAME = "DatabricksDashboard"; + + /** Entity tag used as a change token for the dashboard. */ + KeywordField DATABRICKS_DASHBOARD_ETAG = new KeywordField("databricksDashboardEtag", "databricksDashboardEtag"); + + /** Whether a Genie space is enabled for the dashboard. */ + BooleanField DATABRICKS_DASHBOARD_IS_GENIE_SPACE_ENABLED = + new BooleanField("databricksDashboardIsGenieSpaceEnabled", "databricksDashboardIsGenieSpaceEnabled"); + + /** Lifecycle state of the dashboard. */ + KeywordField DATABRICKS_DASHBOARD_LIFECYCLE_STATE = + new KeywordField("databricksDashboardLifecycleState", "databricksDashboardLifecycleState"); + + /** Workspace path of the dashboard asset, including its file name. The parent folder path can be derived by dropping the last path segment. */ + KeywordField DATABRICKS_DASHBOARD_PATH = new KeywordField("databricksDashboardPath", "databricksDashboardPath"); + + /** Identifier of the SQL warehouse backing the dashboard. */ + KeywordField DATABRICKS_DASHBOARD_WAREHOUSE_ID = + new KeywordField("databricksDashboardWarehouseId", "databricksDashboardWarehouseId"); + + /** Identifier of the workspace containing the dashboard. */ + KeywordField DATABRICKS_DASHBOARD_WORKSPACE_ID = + new KeywordField("databricksDashboardWorkspaceId", "databricksDashboardWorkspaceId"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + String getCalculationViewName(); + + /** Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + String getCalculationViewQualifiedName(); + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + String getDatabaseName(); + + /** Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + String getDatabaseQualifiedName(); + + /** Entity tag used as a change token for the dashboard. */ + String getDatabricksDashboardEtag(); + + /** Whether a Genie space is enabled for the dashboard. */ + Boolean getDatabricksDashboardIsGenieSpaceEnabled(); + + /** Lifecycle state of the dashboard. */ + DatabricksDashboardLifecycleState getDatabricksDashboardLifecycleState(); + + /** Workspace path of the dashboard asset, including its file name. The parent folder path can be derived by dropping the last path segment. */ + String getDatabricksDashboardPath(); + + /** Identifier of the SQL warehouse backing the dashboard. */ + String getDatabricksDashboardWarehouseId(); + + /** Identifier of the workspace containing the dashboard. */ + String getDatabricksDashboardWorkspaceId(); + + /** (Deprecated) Model containing the assets. */ + default SortedSet getDbtModels() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** DBT seeds that materialize the SQL asset. */ + default SortedSet getDbtSeedAssets() { + return null; + } + + /** Source containing the assets. */ + default SortedSet getDbtSources() { + return null; + } + + /** Tests related to this asset. */ + default SortedSet getDbtTests() { + return null; + } + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Whether this asset has been profiled (true) or not (false). */ + Boolean getIsProfiled(); + + /** Time (epoch) at which this asset was last profiled, in milliseconds. */ + Long getLastProfiledAt(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** Number of times this asset has been queried. */ + Long getQueryCount(); + + /** Time (epoch) at which the query count was last updated, in milliseconds. */ + Long getQueryCountUpdatedAt(); + + /** Number of unique users who have queried this asset. */ + Long getQueryUserCount(); + + /** Map of unique users who have queried this asset to the number of times they have queried it. */ + Map getQueryUserMap(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + String getSchemaName(); + + /** Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + String getSchemaQualifiedName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context. */ + String getSqlAIModelContextQualifiedName(); + + /** Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds. */ + Long getSqlAiInsightsLastAnalyzedAt(); + + /** Number of popular business questions associated with this asset. */ + Integer getSqlAiInsightsPopularBusinessQuestionCount(); + + /** Number of popular filter patterns associated with this asset. */ + Integer getSqlAiInsightsPopularFilterCount(); + + /** Number of popular join patterns associated with this asset. */ + Integer getSqlAiInsightsPopularJoinCount(); + + /** Number of relationship insights associated with this asset. */ + Integer getSqlAiInsightsRelationshipCount(); + + /** Identifier of the Coalesce environment. */ + String getSqlCoalesceEnvironmentId(); + + /** Name of the Coalesce environment. */ + String getSqlCoalesceEnvironmentName(); + + /** Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds. */ + Long getSqlCoalesceLastRunAt(); + + /** Status of the Coalesce run. One of: success, failure, cancelled, or skipped. */ + String getSqlCoalesceLastRunStatus(); + + /** Status of the Coalesce node for a given run. */ + String getSqlCoalesceNodeStatus(); + + /** Type of the Coalesce node. */ + String getSqlCoalesceNodeType(); + + /** Identifier of the Coalesce project. */ + String getSqlCoalesceProjectId(); + + /** Name of the Coalesce project. */ + String getSqlCoalesceProjectName(); + + /** Sources related to this asset. */ + default SortedSet getSqlDBTSources() { + return null; + } + + /** Assets related to the model. */ + default SortedSet getSqlDbtModels() { + return null; + } + + /** Whether this asset has any AI insights data available. */ + Boolean getSqlHasAiInsights(); + + /** Whether this asset is secure (true) or not (false). */ + Boolean getSqlIsSecure(); + + /** Qualified names of data shares this asset is granted to. */ + SortedSet getSqlShareQualifiedNames(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + String getTableName(); + + /** Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + String getTableQualifiedName(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + String getViewName(); + + /** Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + String getViewQualifiedName(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/IDatabricksGenieAgent.java b/sdk/src/main/java/com/atlan/model/assets/IDatabricksGenieAgent.java new file mode 100644 index 0000000000..4766f88284 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/IDatabricksGenieAgent.java @@ -0,0 +1,1051 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AgentType; +import com.atlan.model.enums.AgenticLifecycleStatus; +import com.atlan.model.enums.AgenticSource; +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface IDatabricksGenieAgent { + + public static final String TYPE_NAME = "DatabricksGenieAgent"; + + /** 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. */ + KeywordField DATABRICKS_GENIE_AGENT_ETAG = new KeywordField("databricksGenieAgentEtag", "databricksGenieAgentEtag"); + + /** Workspace folder path containing the Genie space. It is descriptive only and creates no containment or hierarchy edge. */ + KeywordField DATABRICKS_GENIE_AGENT_PARENT_PATH = + new KeywordField("databricksGenieAgentParentPath", "databricksGenieAgentParentPath"); + + /** Identifier of the SQL warehouse backing the Genie space. */ + KeywordField DATABRICKS_GENIE_AGENT_WAREHOUSE_ID = + new KeywordField("databricksGenieAgentWarehouseId", "databricksGenieAgentWarehouseId"); + + /** Identifier of the workspace containing the Genie space. */ + KeywordField DATABRICKS_GENIE_AGENT_WORKSPACE_ID = + new KeywordField("databricksGenieAgentWorkspaceId", "databricksGenieAgentWorkspaceId"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** JSON-serialized LLMConfig (model, temperature, maxTokens, maxTurns, baseUrl). */ + String getAgentLlmConfig(); + + /** JSON list of MCPServerConfig entries (name, url, headers, enabled). */ + String getAgentMcpServers(); + + /** JSON-serialized agent schedule configuration, including kickoff message, cron expression, timezone, version policy, status, and Temporal schedule identifier. */ + String getAgentSchedules(); + + /** Denormalized list of names of the skills bound to this agent version. */ + SortedSet getAgentSkillNames(); + + /** Denormalized list of qualifiedNames of the skills bound to this agent version. */ + SortedSet getAgentSkillQualifiedNames(); + + /** URL-safe unique identifier for this agent (for example, my-data-agent). */ + String getAgentSlug(); + + /** Lifecycle status of this agent version (draft or published). */ + AgenticLifecycleStatus getAgentStatus(); + + /** System prompt for this agent version. */ + String getAgentSystemPrompt(); + + /** Origin type of this agent — system-provided or custom user-created. */ + AgentType getAgentType(); + + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ + Long getAgenticVersion(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + String getCalculationViewName(); + + /** Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + String getCalculationViewQualifiedName(); + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + String getDatabaseName(); + + /** Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + String getDatabaseQualifiedName(); + + /** 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. */ + String getDatabricksGenieAgentEtag(); + + /** Workspace folder path containing the Genie space. It is descriptive only and creates no containment or hierarchy edge. */ + String getDatabricksGenieAgentParentPath(); + + /** Identifier of the SQL warehouse backing the Genie space. */ + String getDatabricksGenieAgentWarehouseId(); + + /** Identifier of the workspace containing the Genie space. */ + String getDatabricksGenieAgentWorkspaceId(); + + /** (Deprecated) Model containing the assets. */ + default SortedSet getDbtModels() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** DBT seeds that materialize the SQL asset. */ + default SortedSet getDbtSeedAssets() { + return null; + } + + /** Source containing the assets. */ + default SortedSet getDbtSources() { + return null; + } + + /** Tests related to this asset. */ + default SortedSet getDbtTests() { + return null; + } + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Whether this asset has been profiled (true) or not (false). */ + Boolean getIsProfiled(); + + /** Time (epoch) at which this asset was last profiled, in milliseconds. */ + Long getLastProfiledAt(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** Number of times this asset has been queried. */ + Long getQueryCount(); + + /** Time (epoch) at which the query count was last updated, in milliseconds. */ + Long getQueryCountUpdatedAt(); + + /** Number of unique users who have queried this asset. */ + Long getQueryUserCount(); + + /** Map of unique users who have queried this asset to the number of times they have queried it. */ + Map getQueryUserMap(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + String getSchemaName(); + + /** Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + String getSchemaQualifiedName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context. */ + String getSqlAIModelContextQualifiedName(); + + /** Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds. */ + Long getSqlAiInsightsLastAnalyzedAt(); + + /** Number of popular business questions associated with this asset. */ + Integer getSqlAiInsightsPopularBusinessQuestionCount(); + + /** Number of popular filter patterns associated with this asset. */ + Integer getSqlAiInsightsPopularFilterCount(); + + /** Number of popular join patterns associated with this asset. */ + Integer getSqlAiInsightsPopularJoinCount(); + + /** Number of relationship insights associated with this asset. */ + Integer getSqlAiInsightsRelationshipCount(); + + /** Identifier of the Coalesce environment. */ + String getSqlCoalesceEnvironmentId(); + + /** Name of the Coalesce environment. */ + String getSqlCoalesceEnvironmentName(); + + /** Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds. */ + Long getSqlCoalesceLastRunAt(); + + /** Status of the Coalesce run. One of: success, failure, cancelled, or skipped. */ + String getSqlCoalesceLastRunStatus(); + + /** Status of the Coalesce node for a given run. */ + String getSqlCoalesceNodeStatus(); + + /** Type of the Coalesce node. */ + String getSqlCoalesceNodeType(); + + /** Identifier of the Coalesce project. */ + String getSqlCoalesceProjectId(); + + /** Name of the Coalesce project. */ + String getSqlCoalesceProjectName(); + + /** Sources related to this asset. */ + default SortedSet getSqlDBTSources() { + return null; + } + + /** Assets related to the model. */ + default SortedSet getSqlDbtModels() { + return null; + } + + /** Whether this asset has any AI insights data available. */ + Boolean getSqlHasAiInsights(); + + /** Whether this asset is secure (true) or not (false). */ + Boolean getSqlIsSecure(); + + /** Qualified names of data shares this asset is granted to. */ + SortedSet getSqlShareQualifiedNames(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + String getTableName(); + + /** Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + String getTableQualifiedName(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + String getViewName(); + + /** Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + String getViewQualifiedName(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/IDbtColumnProcess.java b/sdk/src/main/java/com/atlan/model/assets/IDbtColumnProcess.java index f8a779bae1..4eb17c17b9 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IDbtColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/IDbtColumnProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.KeywordField; import com.atlan.model.relations.RelationshipAttributes; @@ -817,6 +818,9 @@ default ILineageProcess getProcess() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IDbtProcess.java b/sdk/src/main/java/com/atlan/model/assets/IDbtProcess.java index 33092989ce..0bb83cd7c3 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IDbtProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/IDbtProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.KeywordField; import com.atlan.model.relations.RelationshipAttributes; @@ -818,6 +819,9 @@ default IPowerBIDataflow getPowerBIDataflow() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IFlowDatasetOperation.java b/sdk/src/main/java/com/atlan/model/assets/IFlowDatasetOperation.java index 69cf583d90..be20801aa2 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IFlowDatasetOperation.java +++ b/sdk/src/main/java/com/atlan/model/assets/IFlowDatasetOperation.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.RelationField; import com.atlan.model.relations.RelationshipAttributes; @@ -744,6 +745,9 @@ default IPowerBIDataflow getPowerBIDataflow() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IFlowFieldOperation.java b/sdk/src/main/java/com/atlan/model/assets/IFlowFieldOperation.java index 14d033402d..c329bd95b3 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IFlowFieldOperation.java +++ b/sdk/src/main/java/com/atlan/model/assets/IFlowFieldOperation.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; @@ -740,6 +741,9 @@ default ILineageProcess getProcess() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IKafkaField.java b/sdk/src/main/java/com/atlan/model/assets/IKafkaField.java index 2fe94b15a9..2f5768d25c 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IKafkaField.java +++ b/sdk/src/main/java/com/atlan/model/assets/IKafkaField.java @@ -18,6 +18,7 @@ import com.atlan.model.fields.KeywordTextField; import com.atlan.model.fields.NumericField; import com.atlan.model.fields.RelationField; +import com.atlan.model.fields.TextField; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; import com.atlan.model.structs.AssetExternalDQMetadata; @@ -52,9 +53,19 @@ public interface IKafkaField { /** Default value for this field if one is defined in the schema. */ KeywordField KAFKA_FIELD_DEFAULT_VALUE = new KeywordField("kafkaFieldDefaultValue", "kafkaFieldDefaultValue"); + /** Level of nesting of this field (1 = direct child of topic schema, 2 = nested one level, etc.). */ + NumericField KAFKA_FIELD_DEPTH_LEVEL = new NumericField("kafkaFieldDepthLevel", "kafkaFieldDepthLevel"); + + /** List of top-level upstream nested fields. */ + KeywordField KAFKA_FIELD_HIERARCHIES = new KeywordField("kafkaFieldHierarchies", "kafkaFieldHierarchies"); + /** Whether this field is optional (true) or required (false) in the schema. */ BooleanField KAFKA_FIELD_IS_OPTIONAL = new BooleanField("kafkaFieldIsOptional", "kafkaFieldIsOptional"); + /** Order (position) in which this field appears within its parent nested field, as a dotted ordinal path such as '1.2.10'. Carries the same value as kafkaNestedFieldOrder, which it supersedes; sortable in schema-declaration order via its version sub-field. */ + KeywordTextField KAFKA_FIELD_NESTED_ORDER = + new KeywordTextField("kafkaFieldNestedOrder", "kafkaFieldNestedOrder.keyword", "kafkaFieldNestedOrder"); + /** Position (0-based) of this field in the schema definition. */ NumericField KAFKA_FIELD_ORDER = new NumericField("kafkaFieldOrder", "kafkaFieldOrder"); @@ -65,6 +76,25 @@ public interface IKafkaField { KeywordField KAFKA_FIELD_VERSION_INTRODUCED = new KeywordField("kafkaFieldVersionIntroduced", "kafkaFieldVersionIntroduced"); + /** Number of KafkaField assets directly nested within this field. */ + NumericField KAFKA_NESTED_FIELD_COUNT = new NumericField("kafkaNestedFieldCount", "kafkaNestedFieldCount"); + + /** Order (position) in which this field appears within its parent nested field (nest level starts at 1). */ + TextField KAFKA_NESTED_FIELD_ORDER = new TextField("kafkaNestedFieldOrder", "kafkaNestedFieldOrder"); + + /** KafkaField assets nested within this field. */ + RelationField KAFKA_NESTED_FIELDS = new RelationField("kafkaNestedFields"); + + /** Parent KafkaField containing this nested field. */ + RelationField KAFKA_PARENT_FIELD = new RelationField("kafkaParentField"); + + /** Simple name of the parent KafkaField in which this field is nested. */ + TextField KAFKA_PARENT_FIELD_NAME = new TextField("kafkaParentFieldName", "kafkaParentFieldName"); + + /** Unique name of the parent KafkaField in which this field is nested. */ + TextField KAFKA_PARENT_FIELD_QUALIFIED_NAME = + new TextField("kafkaParentFieldQualifiedName", "kafkaParentFieldQualifiedName"); + /** Kafka topic in which this field is defined. */ RelationField KAFKA_TOPIC = new RelationField("kafkaTopic"); @@ -616,9 +646,18 @@ default SortedSet getInputToSparkJobs() { /** Default value for this field if one is defined in the schema. */ String getKafkaFieldDefaultValue(); + /** Level of nesting of this field (1 = direct child of topic schema, 2 = nested one level, etc.). */ + Integer getKafkaFieldDepthLevel(); + + /** List of top-level upstream nested fields. */ + List> getKafkaFieldHierarchies(); + /** Whether this field is optional (true) or required (false) in the schema. */ Boolean getKafkaFieldIsOptional(); + /** Order (position) in which this field appears within its parent nested field, as a dotted ordinal path such as '1.2.10'. Carries the same value as kafkaNestedFieldOrder, which it supersedes; sortable in schema-declaration order via its version sub-field. */ + String getKafkaFieldNestedOrder(); + /** Position (0-based) of this field in the schema definition. */ Integer getKafkaFieldOrder(); @@ -628,6 +667,28 @@ default SortedSet getInputToSparkJobs() { /** Schema version in which this field was first introduced. */ String getKafkaFieldVersionIntroduced(); + /** Number of KafkaField assets directly nested within this field. */ + Integer getKafkaNestedFieldCount(); + + /** Order (position) in which this field appears within its parent nested field (nest level starts at 1). */ + String getKafkaNestedFieldOrder(); + + /** KafkaField assets nested within this field. */ + default SortedSet getKafkaNestedFields() { + return null; + } + + /** Parent KafkaField containing this nested field. */ + default IKafkaField getKafkaParentField() { + return null; + } + + /** Simple name of the parent KafkaField in which this field is nested. */ + String getKafkaParentFieldName(); + + /** Unique name of the parent KafkaField in which this field is nested. */ + String getKafkaParentFieldQualifiedName(); + /** Kafka topic in which this field is defined. */ default IKafkaTopic getKafkaTopic() { return null; diff --git a/sdk/src/main/java/com/atlan/model/assets/IKnowledge.java b/sdk/src/main/java/com/atlan/model/assets/IKnowledge.java index 4bc0b63e47..e3ddf8e376 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IKnowledge.java +++ b/sdk/src/main/java/com/atlan/model/assets/IKnowledge.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -49,6 +50,9 @@ public interface IKnowledge { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFile.java b/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFile.java index b14c3582d1..64dfa429d4 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFile.java +++ b/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFile.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -56,6 +57,9 @@ public interface IKnowledgeFile { /** Knowledge folders in which this file exists. */ RelationField KNOWLEDGE_FOLDERS = new RelationField("knowledgeFolders"); + /** Assets this knowledge file is linked to. */ + RelationField KNOWLEDGE_LINKED_ASSETS = new RelationField("knowledgeLinkedAssets"); + /** List of groups who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminGroups(); @@ -65,6 +69,9 @@ public interface IKnowledgeFile { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); @@ -621,6 +628,11 @@ default SortedSet getKnowledgeFolders() { return null; } + /** Assets this knowledge file is linked to. */ + default SortedSet getKnowledgeLinkedAssets() { + return null; + } + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ Long getLastRowChangedAt(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFolder.java b/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFolder.java index 9edd32bd29..78f9e3f865 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFolder.java +++ b/sdk/src/main/java/com/atlan/model/assets/IKnowledgeFolder.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -58,6 +59,9 @@ public interface IKnowledgeFolder { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ILineageProcess.java b/sdk/src/main/java/com/atlan/model/assets/ILineageProcess.java index e23375a065..d8e5db0383 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ILineageProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ILineageProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.BooleanField; import com.atlan.model.fields.KeywordField; @@ -97,6 +98,9 @@ public interface ILineageProcess { /** TBC */ RelationField POWER_BI_DATAFLOW = new RelationField("powerBIDataflow"); + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + KeywordField PROCESS_DERIVATION = new KeywordField("processDerivation", "processDerivation"); + /** TBC */ RelationField SPARK_JOBS = new RelationField("sparkJobs"); @@ -758,6 +762,9 @@ default IPowerBIDataflow getPowerBIDataflow() { return null; } + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISAPColumnProcess.java b/sdk/src/main/java/com/atlan/model/assets/ISAPColumnProcess.java index b95cc36c22..9097b99844 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISAPColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISAPColumnProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; @@ -691,6 +692,9 @@ default SortedSet getPartialChildObjects() { /** Popularity score for this asset. */ Double getPopularityScore(); + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISAPProcess.java b/sdk/src/main/java/com/atlan/model/assets/ISAPProcess.java index d284eb2448..7eb9200db9 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISAPProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISAPProcess.java @@ -13,6 +13,7 @@ import com.atlan.model.enums.DataQualityResult; import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; @@ -691,6 +692,9 @@ default SortedSet getPartialChildObjects() { /** Popularity score for this asset. */ Double getPopularityScore(); + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + ProcessLineageDerivation getProcessDerivation(); + /** Array of product guids linked to this asset */ SortedSet getProductGUIDs(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioProject.java b/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioProject.java index 09cd49eaff..826940cad0 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioProject.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioProject.java @@ -53,7 +53,7 @@ public interface ISageMakerUnifiedStudioProject { /** Amazon S3 location of the SageMaker Unified Studio project. */ KeywordField SMUS_PROJECT_S3LOCATION = new KeywordField("smusProjectS3Location", "smusProjectS3Location"); - /** SSO users associated with the SageMaker Unified Studio project, sourced from the source system. Each entry has `email` and `role` fields. */ + /** SSO users associated with the SageMaker Unified Studio project, sourced from the source system. Each entry has `email`, `role` and optional `fullName` fields. */ KeywordField SMUS_PROJECT_SSO_USERS = new KeywordField("smusProjectSsoUsers", "smusProjectSsoUsers"); /** Status of the SageMaker Unified Studio project. */ @@ -743,7 +743,7 @@ default SortedSet getSchemaRegistrySubjects() { /** Amazon S3 location of the SageMaker Unified Studio project. */ String getSmusProjectS3Location(); - /** SSO users associated with the SageMaker Unified Studio project, sourced from the source system. Each entry has `email` and `role` fields. */ + /** SSO users associated with the SageMaker Unified Studio project, sourced from the source system. Each entry has `email`, `role` and optional `fullName` fields. */ List getSmusProjectSsoUsers(); /** Status of the SageMaker Unified Studio project. */ diff --git a/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioPublishedAsset.java b/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioPublishedAsset.java index 63e852a070..b0017ea335 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioPublishedAsset.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISageMakerUnifiedStudioPublishedAsset.java @@ -15,6 +15,7 @@ import com.atlan.model.enums.SourceCostUnitType; import com.atlan.model.fields.NumericField; import com.atlan.model.fields.RelationField; +import com.atlan.model.fields.TextField; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; import com.atlan.model.structs.AssetExternalDQMetadata; @@ -45,6 +46,9 @@ public interface ISageMakerUnifiedStudioPublishedAsset { /** Project containing the published asset. */ RelationField SMUS_PROJECT = new RelationField("smusProject"); + /** Asset filters configured for the published asset in SageMaker Unified Studio, as a JSON-serialized array. Each entry represents a row-level or column-level access restriction (id, name, description, effectiveRowFilter, effectiveColumnNames). */ + TextField SMUS_PUBLISHED_ASSET_FILTERS = new TextField("smusPublishedAssetFilters", "smusPublishedAssetFilters"); + /** Number of subscriptions for the published asset. */ NumericField SMUS_PUBLISHED_ASSET_SUBSCRIPTIONS_COUNT = new NumericField("smusPublishedAssetSubscriptionsCount", "smusPublishedAssetSubscriptionsCount"); @@ -746,6 +750,9 @@ default ISageMakerUnifiedStudioProject getSmusProject() { /** Unique identifier of the SageMaker Unified Studio project. */ String getSmusProjectId(); + /** Asset filters configured for the published asset in SageMaker Unified Studio, as a JSON-serialized array. Each entry represents a row-level or column-level access restriction (id, name, description, effectiveRowFilter, effectiveColumnNames). */ + String getSmusPublishedAssetFilters(); + /** Number of subscriptions for the published asset. */ Long getSmusPublishedAssetSubscriptionsCount(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloud.java b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloud.java new file mode 100644 index 0000000000..9b19ce24a5 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloud.java @@ -0,0 +1,929 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapAnalyticsCloud { + + public static final String TYPE_NAME = "SapAnalyticsCloud"; + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + KeywordField SAP_ANALYTICS_CLOUD_OBJECT_ID = + new KeywordField("sapAnalyticsCloudObjectId", "sapAnalyticsCloudObjectId"); + + /** 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. */ + KeywordField SAP_ANALYTICS_CLOUD_PARENT_FOLDER_NAME = + new KeywordField("sapAnalyticsCloudParentFolderName", "sapAnalyticsCloudParentFolderName"); + + /** 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. */ + KeywordField SAP_ANALYTICS_CLOUD_PARENT_FOLDER_QUALIFIED_NAME = new KeywordField( + "sapAnalyticsCloudParentFolderQualifiedName", "sapAnalyticsCloudParentFolderQualifiedName"); + + /** 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. */ + KeywordField SAP_ANALYTICS_CLOUD_REPOSITORY_PARTITION = + new KeywordField("sapAnalyticsCloudRepositoryPartition", "sapAnalyticsCloudRepositoryPartition"); + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + KeywordField SAP_ANALYTICS_CLOUD_RESOURCE_ID = + new KeywordField("sapAnalyticsCloudResourceId", "sapAnalyticsCloudResourceId"); + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + KeywordField SAP_ANALYTICS_CLOUD_WORKSPACE_ID = + new KeywordField("sapAnalyticsCloudWorkspaceId", "sapAnalyticsCloudWorkspaceId"); + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + KeywordField SAP_ANALYTICS_CLOUD_WORKSPACE_NAME = + new KeywordField("sapAnalyticsCloudWorkspaceName", "sapAnalyticsCloudWorkspaceName"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + String getSapAnalyticsCloudObjectId(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderName(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderQualifiedName(); + + /** 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. */ + String getSapAnalyticsCloudRepositoryPartition(); + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + String getSapAnalyticsCloudResourceId(); + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceId(); + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceName(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + Long getSapFieldCount(); + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + Integer getSapFieldOrder(); + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + String getSapLogicalName(); + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + String getSapPackageName(); + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + String getSapTechnicalName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudColumn.java b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudColumn.java new file mode 100644 index 0000000000..3ea5fb0cf4 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudColumn.java @@ -0,0 +1,1248 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.fields.RelationField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetHistogram; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.ColumnValueFrequencyMap; +import com.atlan.model.structs.Histogram; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapAnalyticsCloudColumn { + + public static final String TYPE_NAME = "SapAnalyticsCloudColumn"; + + /** Model in which this column is defined. */ + RelationField SAP_ANALYTICS_CLOUD_MODEL = new RelationField("sapAnalyticsCloudModel"); + + /** Simple name of the SAP Analytics Cloud model in which this column exists. */ + KeywordField SAP_ANALYTICS_CLOUD_MODEL_NAME = + new KeywordField("sapAnalyticsCloudModelName", "sapAnalyticsCloudModelName"); + + /** Unique name of the SAP Analytics Cloud model in which this column exists. */ + KeywordField SAP_ANALYTICS_CLOUD_MODEL_QUALIFIED_NAME = + new KeywordField("sapAnalyticsCloudModelQualifiedName", "sapAnalyticsCloudModelQualifiedName"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + String getCalculationViewName(); + + /** Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + String getCalculationViewQualifiedName(); + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Type of dimension as classified by AI analysis, for example: time, categorical, geographic. */ + String getColumnAiInsightsDimensionType(); + + /** Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns. */ + String getColumnAiInsightsForeignKeyColumnQualifiedName(); + + /** When true, this column is identified as a dimension by AI analysis of query patterns. */ + Boolean getColumnAiInsightsIsDimension(); + + /** When true, this column is identified as a measure/calculated column by AI analysis of query patterns. */ + Boolean getColumnAiInsightsIsMeasure(); + + /** Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived. */ + String getColumnAiInsightsMeasureType(); + + /** Average value in this column. */ + Double getColumnAverage(); + + /** Average length of values in a string column. */ + Double getColumnAverageLength(); + + /** Average length of values in a string column. */ + Double getColumnAverageLengthValue(); + + /** Average value in this column. */ + Double getColumnAverageValue(); + + /** Compression type of this column. */ + String getColumnCompression(); + + /** Level of nesting of this column, used for STRUCT and NESTED columns. */ + Integer getColumnDepthLevel(); + + /** Number of rows that contain distinct values. */ + Integer getColumnDistinctValuesCount(); + + /** Number of rows that contain distinct values. */ + Long getColumnDistinctValuesCountLong(); + + /** Percentage of rows in a column that contain distinct values. */ + Double getColumnDistinctValuesPercentage(); + + /** Detailed information representing a histogram of values for a column. */ + AssetHistogram getColumnDistributionHistogram(); + + /** Number of rows that contain duplicate values. */ + Integer getColumnDuplicateValuesCount(); + + /** Number of rows that contain duplicate values. */ + Long getColumnDuplicateValuesCountLong(); + + /** Encoding type of this column. */ + String getColumnEncoding(); + + /** List of top-level upstream nested columns. */ + List> getColumnHierarchy(); + + /** List of values in a histogram that represents the contents of this column. */ + Histogram getColumnHistogram(); + + /** When true, this column is of type measure/calculated. */ + Boolean getColumnIsMeasure(); + + /** Greatest value in a numeric column. */ + Double getColumnMax(); + + /** Greatest value in a numeric column. */ + Double getColumnMaxValue(); + + /** Length of the longest value in a string column. */ + Integer getColumnMaximumStringLength(); + + /** List of the greatest values in a column. */ + SortedSet getColumnMaxs(); + + /** Arithmetic mean of the values in a numeric column. */ + Double getColumnMean(); + + /** Arithmetic mean of the values in a numeric column. */ + Double getColumnMeanValue(); + + /** The type of measure/calculated column this is, eg: base, calculated, derived. */ + String getColumnMeasureType(); + + /** Calculated median of the values in a numeric column. */ + Double getColumnMedian(); + + /** Calculated median of the values in a numeric column. */ + Double getColumnMedianValue(); + + /** Least value in a numeric column. */ + Double getColumnMin(); + + /** Least value in a numeric column. */ + Double getColumnMinValue(); + + /** Length of the shortest value in a string column. */ + Integer getColumnMinimumStringLength(); + + /** List of the least values in a column. */ + SortedSet getColumnMins(); + + /** Number of rows in a column that do not contain content. */ + Integer getColumnMissingValuesCount(); + + /** Number of rows in a column that do not contain content. */ + Long getColumnMissingValuesCountLong(); + + /** Percentage of rows in a column that do not contain content. */ + Double getColumnMissingValuesPercentage(); + + /** Calculated standard deviation of the values in a numeric column. */ + Double getColumnStandardDeviation(); + + /** Calculated standard deviation of the values in a numeric column. */ + Double getColumnStandardDeviationValue(); + + /** Calculated sum of the values in a numeric column. */ + Double getColumnSum(); + + /** Calculated sum of the values in a numeric column. */ + Double getColumnSumValue(); + + /** List of top values in this column. */ + List getColumnTopValues(); + + /** Number of rows in which a value in this column appears only once. */ + Integer getColumnUniqueValuesCount(); + + /** Number of rows in which a value in this column appears only once. */ + Long getColumnUniqueValuesCountLong(); + + /** 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. */ + Double getColumnUniquenessPercentage(); + + /** Calculated variance of the values in a numeric column. */ + Double getColumnVariance(); + + /** Calculated variance of the values in a numeric column. */ + Double getColumnVarianceValue(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Data type of values in this column. */ + String getDataType(); + + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + String getDatabaseName(); + + /** Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + String getDatabaseQualifiedName(); + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** Default value for this column. */ + String getDefaultValue(); + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this column is a clustered column (true) or not (false). */ + Boolean getIsClustered(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this column is a distribution column (true) or not (false). */ + Boolean getIsDist(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** 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. */ + Boolean getIsForeign(); + + /** When true, this column is indexed in the database. */ + Boolean getIsIndexed(); + + /** When true, the values in this column can be null. */ + Boolean getIsNullable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Whether this column is a partition column (true) or not (false). */ + Boolean getIsPartition(); + + /** Whether this column is pinned (true) or not (false). */ + Boolean getIsPinned(); + + /** When true, this column is the primary key for the table. */ + Boolean getIsPrimary(); + + /** Whether this asset has been profiled (true) or not (false). */ + Boolean getIsProfiled(); + + /** Whether this column is a sort column (true) or not (false). */ + Boolean getIsSort(); + + /** Time (epoch) at which this asset was last profiled, in milliseconds. */ + Long getLastProfiledAt(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** Maximum length of a value in this column. */ + Long getMaxLength(); + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Number of columns nested within this (STRUCT or NESTED) column. */ + Integer getNestedColumnCount(); + + /** Order (position) in which this column appears in the nested Column (nest level starts at 1). */ + String getNestedColumnOrder(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** 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. */ + String getNosqlCollectionName(); + + /** 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. */ + String getNosqlCollectionQualifiedName(); + + /** Number of digits allowed to the right of the decimal point. */ + Double getNumericScale(); + + /** Order (position) in which this column appears in the table (starting at 1). */ + Integer getOrder(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Simple name of the column this column is nested within, for STRUCT and NESTED columns. */ + String getParentColumnName(); + + /** Unique name of the column this column is nested within, for STRUCT and NESTED columns. */ + String getParentColumnQualifiedName(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Order (position) of this partition column in the table. */ + Integer getPartitionOrder(); + + /** Time (epoch) at which this column was pinned, in milliseconds. */ + Long getPinnedAt(); + + /** User who pinned this column. */ + String getPinnedBy(); + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Total number of digits allowed, when the dataType is numeric. */ + Integer getPrecision(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** Number of times this asset has been queried. */ + Long getQueryCount(); + + /** Time (epoch) at which the query count was last updated, in milliseconds. */ + Long getQueryCountUpdatedAt(); + + /** Number of unique users who have queried this asset. */ + Long getQueryUserCount(); + + /** Map of unique users who have queried this asset to the number of times they have queried it. */ + Map getQueryUserMap(); + + /** Raw data type definition of this column. */ + String getRawDataTypeDefinition(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Model in which this column is defined. */ + default ISapAnalyticsCloudModel getSapAnalyticsCloudModel() { + return null; + } + + /** Simple name of the SAP Analytics Cloud model in which this column exists. */ + String getSapAnalyticsCloudModelName(); + + /** Unique name of the SAP Analytics Cloud model in which this column exists. */ + String getSapAnalyticsCloudModelQualifiedName(); + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + String getSapAnalyticsCloudObjectId(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderName(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderQualifiedName(); + + /** 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. */ + String getSapAnalyticsCloudRepositoryPartition(); + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + String getSapAnalyticsCloudResourceId(); + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceId(); + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceName(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + Long getSapFieldCount(); + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + Integer getSapFieldOrder(); + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + String getSapLogicalName(); + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + String getSapPackageName(); + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + String getSapTechnicalName(); + + /** Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + String getSchemaName(); + + /** Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + String getSchemaQualifiedName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context. */ + String getSqlAIModelContextQualifiedName(); + + /** Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds. */ + Long getSqlAiInsightsLastAnalyzedAt(); + + /** Number of popular business questions associated with this asset. */ + Integer getSqlAiInsightsPopularBusinessQuestionCount(); + + /** Number of popular filter patterns associated with this asset. */ + Integer getSqlAiInsightsPopularFilterCount(); + + /** Number of popular join patterns associated with this asset. */ + Integer getSqlAiInsightsPopularJoinCount(); + + /** Number of relationship insights associated with this asset. */ + Integer getSqlAiInsightsRelationshipCount(); + + /** Identifier of the Coalesce environment. */ + String getSqlCoalesceEnvironmentId(); + + /** Name of the Coalesce environment. */ + String getSqlCoalesceEnvironmentName(); + + /** Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds. */ + Long getSqlCoalesceLastRunAt(); + + /** Status of the Coalesce run. One of: success, failure, cancelled, or skipped. */ + String getSqlCoalesceLastRunStatus(); + + /** Status of the Coalesce node for a given run. */ + String getSqlCoalesceNodeStatus(); + + /** Type of the Coalesce node. */ + String getSqlCoalesceNodeType(); + + /** Identifier of the Coalesce project. */ + String getSqlCoalesceProjectId(); + + /** Name of the Coalesce project. */ + String getSqlCoalesceProjectName(); + + /** Whether this asset has any AI insights data available. */ + Boolean getSqlHasAiInsights(); + + /** Whether this asset is secure (true) or not (false). */ + Boolean getSqlIsSecure(); + + /** Qualified names of data shares this asset is granted to. */ + SortedSet getSqlShareQualifiedNames(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Sub-data type of this column. */ + String getSubDataType(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + String getTableName(); + + /** Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + String getTableQualifiedName(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** Validations for this column. */ + Map getValidations(); + + /** Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + String getViewName(); + + /** Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + String getViewQualifiedName(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudFolder.java b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudFolder.java new file mode 100644 index 0000000000..cc5570a464 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudFolder.java @@ -0,0 +1,933 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.RelationField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * Folder in the SAP Analytics Cloud file repository. Folders nest to arbitrary depth and are the organizational container for stories and models. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapAnalyticsCloudFolder { + + public static final String TYPE_NAME = "SapAnalyticsCloudFolder"; + + /** Models held in this folder. */ + RelationField SAP_ANALYTICS_CLOUD_MODELS = new RelationField("sapAnalyticsCloudModels"); + + /** Folder containing this folder. */ + RelationField SAP_ANALYTICS_CLOUD_PARENT_FOLDER = new RelationField("sapAnalyticsCloudParentFolder"); + + /** Stories held in this folder. */ + RelationField SAP_ANALYTICS_CLOUD_STORIES = new RelationField("sapAnalyticsCloudStories"); + + /** Folders nested within this folder. */ + RelationField SAP_ANALYTICS_CLOUD_SUB_FOLDERS = new RelationField("sapAnalyticsCloudSubFolders"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Models held in this folder. */ + default SortedSet getSapAnalyticsCloudModels() { + return null; + } + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + String getSapAnalyticsCloudObjectId(); + + /** Folder containing this folder. */ + default ISapAnalyticsCloudFolder getSapAnalyticsCloudParentFolder() { + return null; + } + + /** 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. */ + String getSapAnalyticsCloudParentFolderName(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderQualifiedName(); + + /** 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. */ + String getSapAnalyticsCloudRepositoryPartition(); + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + String getSapAnalyticsCloudResourceId(); + + /** Stories held in this folder. */ + default SortedSet getSapAnalyticsCloudStories() { + return null; + } + + /** Folders nested within this folder. */ + default SortedSet getSapAnalyticsCloudSubFolders() { + return null; + } + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceId(); + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceName(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + Long getSapFieldCount(); + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + Integer getSapFieldOrder(); + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + String getSapLogicalName(); + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + String getSapPackageName(); + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + String getSapTechnicalName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudModel.java b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudModel.java new file mode 100644 index 0000000000..8f98cda332 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudModel.java @@ -0,0 +1,1003 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.fields.NumericField; +import com.atlan.model.fields.RelationField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapAnalyticsCloudModel { + + public static final String TYPE_NAME = "SapAnalyticsCloudModel"; + + /** Columns defined within this model. */ + RelationField SAP_ANALYTICS_CLOUD_COLUMNS = new RelationField("sapAnalyticsCloudColumns"); + + /** 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. */ + KeywordField SAP_ANALYTICS_CLOUD_DATA_ACCESS_MODE = + new KeywordField("sapAnalyticsCloudDataAccessMode", "sapAnalyticsCloudDataAccessMode"); + + /** Folder containing this model. */ + RelationField SAP_ANALYTICS_CLOUD_FOLDER = new RelationField("sapAnalyticsCloudFolder"); + + /** Host of the remote system a live model reads from. Empty for imported models. */ + KeywordField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_HOST = + new KeywordField("sapAnalyticsCloudLiveConnectionHost", "sapAnalyticsCloudLiveConnectionHost"); + + /** Identifier of the remote connection a live model reads from. Empty for imported models. */ + KeywordField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_ID = + new KeywordField("sapAnalyticsCloudLiveConnectionId", "sapAnalyticsCloudLiveConnectionId"); + + /** Simple name of the remote connection a live model reads from. Empty for imported models. */ + KeywordField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_NAME = + new KeywordField("sapAnalyticsCloudLiveConnectionName", "sapAnalyticsCloudLiveConnectionName"); + + /** Port of the remote system a live model reads from. Empty for imported models. */ + NumericField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_PORT = + new NumericField("sapAnalyticsCloudLiveConnectionPort", "sapAnalyticsCloudLiveConnectionPort"); + + /** Protocol used to reach the remote system a live model reads from, such as HTTPS. Empty for imported models. */ + KeywordField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_PROTOCOL = + new KeywordField("sapAnalyticsCloudLiveConnectionProtocol", "sapAnalyticsCloudLiveConnectionProtocol"); + + /** Type of the remote system a live model reads from, such as DWC for SAP Datasphere. Empty for imported models. */ + KeywordField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_SYSTEM_TYPE = + new KeywordField("sapAnalyticsCloudLiveConnectionSystemType", "sapAnalyticsCloudLiveConnectionSystemType"); + + /** Type of the remote connection a live model reads from, such as DIRECT. Empty for imported models. */ + KeywordField SAP_ANALYTICS_CLOUD_LIVE_CONNECTION_TYPE = + new KeywordField("sapAnalyticsCloudLiveConnectionType", "sapAnalyticsCloudLiveConnectionType"); + + /** Model identifier reported by the SAP Analytics Cloud tenant APIs, which differs from the file-repository resource identifier for live models. */ + KeywordField SAP_ANALYTICS_CLOUD_MODEL_ID = + new KeywordField("sapAnalyticsCloudModelId", "sapAnalyticsCloudModelId"); + + /** 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. */ + KeywordField SAP_ANALYTICS_CLOUD_MODEL_KIND = + new KeywordField("sapAnalyticsCloudModelKind", "sapAnalyticsCloudModelKind"); + + /** Identifier of the OData provider that exposes this model's metadata. This is the key that joins a model to its columns. */ + KeywordField SAP_ANALYTICS_CLOUD_PROVIDER_ID = + new KeywordField("sapAnalyticsCloudProviderId", "sapAnalyticsCloudProviderId"); + + /** Number of SAP Analytics Cloud stories that consume this model, as reported by the source. */ + NumericField SAP_ANALYTICS_CLOUD_STORY_COUNT = + new NumericField("sapAnalyticsCloudStoryCount", "sapAnalyticsCloudStoryCount"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Columns defined within this model. */ + default SortedSet getSapAnalyticsCloudColumns() { + return null; + } + + /** 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. */ + String getSapAnalyticsCloudDataAccessMode(); + + /** Folder containing this model. */ + default ISapAnalyticsCloudFolder getSapAnalyticsCloudFolder() { + return null; + } + + /** Host of the remote system a live model reads from. Empty for imported models. */ + String getSapAnalyticsCloudLiveConnectionHost(); + + /** Identifier of the remote connection a live model reads from. Empty for imported models. */ + String getSapAnalyticsCloudLiveConnectionId(); + + /** Simple name of the remote connection a live model reads from. Empty for imported models. */ + String getSapAnalyticsCloudLiveConnectionName(); + + /** Port of the remote system a live model reads from. Empty for imported models. */ + Integer getSapAnalyticsCloudLiveConnectionPort(); + + /** Protocol used to reach the remote system a live model reads from, such as HTTPS. Empty for imported models. */ + String getSapAnalyticsCloudLiveConnectionProtocol(); + + /** Type of the remote system a live model reads from, such as DWC for SAP Datasphere. Empty for imported models. */ + String getSapAnalyticsCloudLiveConnectionSystemType(); + + /** Type of the remote connection a live model reads from, such as DIRECT. Empty for imported models. */ + String getSapAnalyticsCloudLiveConnectionType(); + + /** Model identifier reported by the SAP Analytics Cloud tenant APIs, which differs from the file-repository resource identifier for live models. */ + String getSapAnalyticsCloudModelId(); + + /** 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. */ + String getSapAnalyticsCloudModelKind(); + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + String getSapAnalyticsCloudObjectId(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderName(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderQualifiedName(); + + /** Identifier of the OData provider that exposes this model's metadata. This is the key that joins a model to its columns. */ + String getSapAnalyticsCloudProviderId(); + + /** 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. */ + String getSapAnalyticsCloudRepositoryPartition(); + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + String getSapAnalyticsCloudResourceId(); + + /** Number of SAP Analytics Cloud stories that consume this model, as reported by the source. */ + Long getSapAnalyticsCloudStoryCount(); + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceId(); + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceName(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + Long getSapFieldCount(); + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + Integer getSapFieldOrder(); + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + String getSapLogicalName(); + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + String getSapPackageName(); + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + String getSapTechnicalName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudStory.java b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudStory.java new file mode 100644 index 0000000000..0f099379f5 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapAnalyticsCloudStory.java @@ -0,0 +1,925 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.BooleanField; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.fields.RelationField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapAnalyticsCloudStory { + + public static final String TYPE_NAME = "SapAnalyticsCloudStory"; + + /** Folder containing this story. */ + RelationField SAP_ANALYTICS_CLOUD_FOLDER = new RelationField("sapAnalyticsCloudFolder"); + + /** Whether this story is one of the samples shipped with SAP Analytics Cloud rather than tenant content. */ + BooleanField SAP_ANALYTICS_CLOUD_IS_SAMPLE = + new BooleanField("sapAnalyticsCloudIsSample", "sapAnalyticsCloudIsSample"); + + /** 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. */ + KeywordField SAP_ANALYTICS_CLOUD_STORY_KIND = + new KeywordField("sapAnalyticsCloudStoryKind", "sapAnalyticsCloudStoryKind"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Unique identifier of the dataset this asset belongs to. */ + String getCatalogDatasetGuid(); + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Folder containing this story. */ + default ISapAnalyticsCloudFolder getSapAnalyticsCloudFolder() { + return null; + } + + /** Whether this story is one of the samples shipped with SAP Analytics Cloud rather than tenant content. */ + Boolean getSapAnalyticsCloudIsSample(); + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + String getSapAnalyticsCloudObjectId(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderName(); + + /** 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. */ + String getSapAnalyticsCloudParentFolderQualifiedName(); + + /** 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. */ + String getSapAnalyticsCloudRepositoryPartition(); + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + String getSapAnalyticsCloudResourceId(); + + /** 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. */ + String getSapAnalyticsCloudStoryKind(); + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceId(); + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + String getSapAnalyticsCloudWorkspaceName(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + Long getSapFieldCount(); + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + Integer getSapFieldOrder(); + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + String getSapLogicalName(); + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + String getSapPackageName(); + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + String getSapTechnicalName(); + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapDatasphereReplicationFlow.java b/sdk/src/main/java/com/atlan/model/assets/ISapDatasphereReplicationFlow.java new file mode 100644 index 0000000000..026cb8f02b --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapDatasphereReplicationFlow.java @@ -0,0 +1,953 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2023 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.model.enums.AssetDQRunStatus; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.AtlanConnectorType; +import com.atlan.model.enums.AtlanIcon; +import com.atlan.model.enums.AtlanStatus; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.DataQualityDimension; +import com.atlan.model.enums.DataQualityResult; +import com.atlan.model.enums.DataQualityScheduleType; +import com.atlan.model.enums.DataQualitySourceSyncStatus; +import com.atlan.model.enums.SourceCostUnitType; +import com.atlan.model.fields.KeywordField; +import com.atlan.model.fields.KeywordTextField; +import com.atlan.model.fields.NumericField; +import com.atlan.model.fields.RelationField; +import com.atlan.model.relations.RelationshipAttributes; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.structs.AssetExternalDQMetadata; +import com.atlan.model.structs.AssetGCPDataplexMetadata; +import com.atlan.model.structs.AssetSmusMetadataFormDetails; +import com.atlan.model.structs.AssetSummaryProvider; +import com.atlan.model.structs.PopularityInsights; +import com.atlan.model.structs.StarredDetails; +import com.atlan.serde.AssetDeserializer; +import com.atlan.serde.AssetSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.SortedSet; +import javax.annotation.processing.Generated; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapDatasphereReplicationFlow { + + public static final String TYPE_NAME = "SapDatasphereReplicationFlow"; + + /** Number of datasets moved by this replication flow. */ + NumericField SAP_DATASPHERE_REPLICATION_FLOW_DATASET_COUNT = + new NumericField("sapDatasphereReplicationFlowDatasetCount", "sapDatasphereReplicationFlowDatasetCount"); + + /** Type of load performed by this replication flow, such as INITIAL or INITIAL_AND_DELTA. */ + KeywordField SAP_DATASPHERE_REPLICATION_FLOW_LOAD_TYPE = + new KeywordField("sapDatasphereReplicationFlowLoadType", "sapDatasphereReplicationFlowLoadType"); + + /** 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. */ + KeywordField SAP_DATASPHERE_REPLICATION_FLOW_SOURCE_CONNECTION = new KeywordField( + "sapDatasphereReplicationFlowSourceConnection", "sapDatasphereReplicationFlowSourceConnection"); + + /** Simple name of the Datasphere space in which this replication flow runs and creates its target tables. */ + KeywordTextField SAP_DATASPHERE_REPLICATION_FLOW_SPACE_NAME = new KeywordTextField( + "sapDatasphereReplicationFlowSpaceName", + "sapDatasphereReplicationFlowSpaceName.keyword", + "sapDatasphereReplicationFlowSpaceName"); + + /** Unique name of the Datasphere space in which this replication flow runs and creates its target tables. */ + KeywordField SAP_DATASPHERE_REPLICATION_FLOW_SPACE_QUALIFIED_NAME = new KeywordField( + "sapDatasphereReplicationFlowSpaceQualifiedName", "sapDatasphereReplicationFlowSpaceQualifiedName"); + + /** Name of the target connection into which this replication flow writes data, such as the local Datasphere repository. */ + KeywordField SAP_DATASPHERE_REPLICATION_FLOW_TARGET_CONNECTION = new KeywordField( + "sapDatasphereReplicationFlowTargetConnection", "sapDatasphereReplicationFlowTargetConnection"); + + /** Schema (Datasphere space) in which this replication flow creates its target tables. */ + RelationField SAP_DATASPHERE_SCHEMA = new RelationField("sapDatasphereSchema"); + + /** List of groups who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminGroups(); + + /** List of roles who administer this asset. (This is only used for Connection assets.) */ + SortedSet getAdminRoles(); + + /** List of users who administer this asset. (This is only used for certain asset types.) */ + SortedSet getAdminUsers(); + + /** Detailed message to include in the announcement on this asset. */ + String getAnnouncementMessage(); + + /** Brief title for the announcement on this asset. Required when announcementType is specified. */ + String getAnnouncementTitle(); + + /** Type of announcement on this asset. */ + AtlanAnnouncementType getAnnouncementType(); + + /** Time (epoch) at which the announcement was last updated, in milliseconds. */ + Long getAnnouncementUpdatedAt(); + + /** Name of the user who last updated the announcement. */ + String getAnnouncementUpdatedBy(); + + /** Checks that run on this asset. */ + default SortedSet getAnomaloChecks() { + return null; + } + + /** Application owning the Asset. */ + default IApplication getApplication() { + return null; + } + + /** ApplicationField owning the Asset. */ + default IApplicationField getApplicationField() { + return null; + } + + /** Qualified name of the ApplicationField that contains this asset. */ + String getApplicationFieldQualifiedName(); + + /** Qualified name of the Application that contains this asset. */ + String getApplicationQualifiedName(); + + /** List of AI-generated aliases for this asset, to aid in search and discovery. */ + SortedSet getAssetAiAlias(); + + /** Description of this asset, generated by AI based on the asset's context. Displayed separately in the UI and can be used to overwrite existing descriptions. */ + String getAssetAiGeneratedDescription(); + + /** Confidence score of the AI-generated description, ranging from 0.0 to 1.0. */ + Double getAssetAiGeneratedDescriptionConfidence(); + + /** Reasoning behind the AI-generated description, explaining how the description was derived from the asset's context. */ + String getAssetAiGeneratedDescriptionReasoning(); + + /** Time (epoch) at which the announcement expires, in milliseconds. When set, the announcement will no longer be displayed after this time. */ + Long getAssetAnnouncementExpiredAt(); + + /** All associated Anomalo check types. */ + SortedSet getAssetAnomaloAppliedCheckTypes(); + + /** Total number of checks present in Anomalo for this asset. */ + Long getAssetAnomaloCheckCount(); + + /** Stringified JSON object containing status of all Anomalo checks associated to this asset. */ + String getAssetAnomaloCheckStatuses(); + + /** Status of data quality from Anomalo. */ + String getAssetAnomaloDQStatus(); + + /** Total number of checks failed in Anomalo for this asset. */ + Long getAssetAnomaloFailedCheckCount(); + + /** All associated Anomalo failed check types. */ + SortedSet getAssetAnomaloFailedCheckTypes(); + + /** Time (epoch) at which the last check was run via Anomalo. */ + Long getAssetAnomaloLastCheckRunAt(); + + /** URL of the source in Anomalo. */ + String getAssetAnomaloSourceUrl(); + + /** Cover image to use for this asset in the UI (applicable to only a few asset types). */ + String getAssetCoverImage(); + + /** Expectation of data freshness from Source. */ + Long getAssetDQFreshnessExpectation(); + + /** Value of data freshness from Source. */ + Long getAssetDQFreshnessValue(); + + /** Status of the latest manual DQ run triggered for this asset. */ + AssetDQRunStatus getAssetDQManualRunStatus(); + + /** Overall result of all the dq rules. If any one rule failed, then fail else pass. */ + DataQualityResult getAssetDQResult(); + + /** Qualified name of the column used for row scope filtering in DQ rules for this asset. */ + String getAssetDQRowScopeFilterColumnQualifiedName(); + + /** List of all the dimensions of attached rules. */ + SortedSet getAssetDQRuleAttachedDimensions(); + + /** List of all the types of attached rules. */ + SortedSet getAssetDQRuleAttachedRuleTypes(); + + /** Count of failed DQ rules attached to this asset. */ + Long getAssetDQRuleFailedCount(); + + /** List of all the dimensions of failed rules. */ + SortedSet getAssetDQRuleFailedDimensions(); + + /** List of all the types of failed rules. */ + SortedSet getAssetDQRuleFailedRuleTypes(); + + /** Time (epoch) at which the last dq rule ran. */ + Long getAssetDQRuleLastRunAt(); + + /** Count of passed DQ rules attached to this asset. */ + Long getAssetDQRulePassedCount(); + + /** List of all the dimensions for which all the rules passed. */ + SortedSet getAssetDQRulePassedDimensions(); + + /** List of all the types of rules for which all the rules passed. */ + SortedSet getAssetDQRulePassedRuleTypes(); + + /** Tag for the result of the DQ rules. Eg, rule_pass:completeness:null_count. */ + SortedSet getAssetDQRuleResultTags(); + + /** Count of DQ rules attached to this asset. */ + Long getAssetDQRuleTotalCount(); + + /** Crontab of the DQ rule that will run at datasource. */ + String getAssetDQScheduleCrontab(); + + /** Error code in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorCode(); + + /** Error message in the case of sync state being "error". */ + String getAssetDQScheduleSourceSyncErrorMessage(); + + /** Raw error message from the source. */ + String getAssetDQScheduleSourceSyncRawError(); + + /** Latest sync status of the schedule to the source. */ + DataQualitySourceSyncStatus getAssetDQScheduleSourceSyncStatus(); + + /** Time (epoch) at which the schedule synced to the source. */ + Long getAssetDQScheduleSourceSyncedAt(); + + /** Timezone of the DQ rule schedule that will run at datasource */ + String getAssetDQScheduleTimeZone(); + + /** Type of schedule of the DQ rule that will run at datasource. */ + DataQualityScheduleType getAssetDQScheduleType(); + + /** Name of the account in which this asset exists in dbt. */ + String getAssetDbtAccountName(); + + /** Alias of this asset in dbt. */ + String getAssetDbtAlias(); + + /** Version of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentDbtVersion(); + + /** Name of the environment in which this asset is materialized in dbt. */ + String getAssetDbtEnvironmentName(); + + /** Time (epoch) at which the job that materialized this asset in dbt last ran, in milliseconds. */ + Long getAssetDbtJobLastRun(); + + /** Path in S3 to the artifacts saved from the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunArtifactS3Path(); + + /** Whether artifacts were saved from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunArtifactsSaved(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last created, in milliseconds. */ + Long getAssetDbtJobLastRunCreatedAt(); + + /** Time (epoch) at which the job that materialized this asset in dbt was dequeued, in milliseconds. */ + Long getAssetDbtJobLastRunDequedAt(); + + /** Thread ID of the user who executed the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunExecutedByThreadId(); + + /** Branch in git from which the last run of the job that materialized this asset in dbt ran. */ + String getAssetDbtJobLastRunGitBranch(); + + /** SHA hash in git for the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunGitSha(); + + /** Whether docs were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasDocsGenerated(); + + /** Whether sources were generated from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunHasSourcesGenerated(); + + /** Whether notifications were sent from the last run of the job that materialized this asset in dbt (true) or not (false). */ + Boolean getAssetDbtJobLastRunNotificationsSent(); + + /** Thread ID of the owner of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunOwnerThreadId(); + + /** Total duration the job that materialized this asset in dbt spent being queued. */ + String getAssetDbtJobLastRunQueuedDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt spend being queued. */ + String getAssetDbtJobLastRunQueuedDurationHumanized(); + + /** Run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDuration(); + + /** Human-readable run duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunRunDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was started running, in milliseconds. */ + Long getAssetDbtJobLastRunStartedAt(); + + /** Status message of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunStatusMessage(); + + /** Total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDuration(); + + /** Human-readable total duration of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunTotalDurationHumanized(); + + /** Time (epoch) at which the job that materialized this asset in dbt was last updated, in milliseconds. */ + Long getAssetDbtJobLastRunUpdatedAt(); + + /** URL of the last run of the job that materialized this asset in dbt. */ + String getAssetDbtJobLastRunUrl(); + + /** Name of the job that materialized this asset in dbt. */ + String getAssetDbtJobName(); + + /** Time (epoch) when the next run of the job that materializes this asset in dbt is scheduled. */ + Long getAssetDbtJobNextRun(); + + /** Human-readable time when the next run of the job that materializes this asset in dbt is scheduled. */ + String getAssetDbtJobNextRunHumanized(); + + /** Schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobSchedule(); + + /** Human-readable cron schedule of the job that materialized this asset in dbt. */ + String getAssetDbtJobScheduleCronHumanized(); + + /** Status of the job that materialized this asset in dbt. */ + String getAssetDbtJobStatus(); + + /** Metadata for this asset in dbt, specifically everything under the 'meta' key in the dbt object. */ + String getAssetDbtMeta(); + + /** Name of the package in which this asset exists in dbt. */ + String getAssetDbtPackageName(); + + /** Name of the project in which this asset exists in dbt. */ + String getAssetDbtProjectName(); + + /** URL of the semantic layer proxy for this asset in dbt. */ + String getAssetDbtSemanticLayerProxyUrl(); + + /** Freshness criteria for the source of this asset in dbt. */ + String getAssetDbtSourceFreshnessCriteria(); + + /** List of tags attached to this asset in dbt. */ + SortedSet getAssetDbtTags(); + + /** All associated dbt test statuses. */ + String getAssetDbtTestStatus(); + + /** Unique identifier of this asset in dbt. */ + String getAssetDbtUniqueId(); + + /** Name of the DBT workflow in Atlan that last updated the asset. */ + String getAssetDbtWorkflowLastUpdated(); + + /** DQ metadata captured for asset from external DQ tool(s). */ + Map getAssetExternalDQMetadataDetails(); + + /** Single asset-level DQ score (0–100). Populated natively by tools that provide one. */ + Double getAssetExternalDQScoreValue(); + + /** List of mean scores across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestAvgScores(); + + /** Ordered list of DQ test/scan names on this asset. Positionally aligned with the score metrics. */ + SortedSet getAssetExternalDQTestEntities(); + + /** List of scores of the most recent run for each DQ test. */ + SortedSet getAssetExternalDQTestLatestScores(); + + /** List of minimum (floor) score across all runs for each DQ test. */ + SortedSet getAssetExternalDQTestMinScores(); + + /** List of field key-values associated with all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectFieldList(); + + /** List of names of all Aspects linked to this asset. */ + SortedSet getAssetGCPDataplexAspectList(); + + /** Metrics captured by GCP Dataplex for objects associated with GCP services. */ + AssetGCPDataplexMetadata getAssetGCPDataplexMetadataDetails(); + + /** Whether this asset has an AI-generated readme. */ + Boolean getAssetHasAiReadme(); + + /** Name of the icon to use for this asset. (Only applies to glossaries, currently.) */ + AtlanIcon getAssetIcon(); + + /** The type of request form on Immuta applicable for the asset. */ + String getAssetImmutaRequestType(); + + /** URL of the request form on Immuta relevant to the asset. */ + String getAssetImmutaRequestUrl(); + + /** Internal Popularity score for this asset. */ + Double getAssetInternalPopularityScore(); + + /** List of unique Monte Carlo alert names attached to this asset. */ + SortedSet getAssetMcAlertQualifiedNames(); + + /** List of Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentNames(); + + /** List of Monte Carlo incident priorities associated with this asset. */ + SortedSet getAssetMcIncidentPriorities(); + + /** List of unique Monte Carlo incident names attached to this asset. */ + SortedSet getAssetMcIncidentQualifiedNames(); + + /** List of Monte Carlo incident severities associated with this asset. */ + SortedSet getAssetMcIncidentSeverities(); + + /** List of Monte Carlo incident states associated with this asset. */ + SortedSet getAssetMcIncidentStates(); + + /** List of Monte Carlo incident sub-types associated with this asset. */ + SortedSet getAssetMcIncidentSubTypes(); + + /** List of Monte Carlo incident types associated with this asset. */ + SortedSet getAssetMcIncidentTypes(); + + /** Tracks whether this asset is monitored by MC or not */ + Boolean getAssetMcIsMonitored(); + + /** Time (epoch) at which this asset was last synced from Monte Carlo. */ + Long getAssetMcLastSyncRunAt(); + + /** List of Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorNames(); + + /** List of unique Monte Carlo monitor names attached to this asset. */ + SortedSet getAssetMcMonitorQualifiedNames(); + + /** Schedules of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorScheduleTypes(); + + /** Statuses of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorStatuses(); + + /** Types of all associated Monte Carlo monitors. */ + SortedSet getAssetMcMonitorTypes(); + + /** Count of policies inside the asset */ + Long getAssetPoliciesCount(); + + /** Array of policy ids governing this asset */ + SortedSet getAssetPolicyGUIDs(); + + /** Array of asset ids that equivalent to this asset. */ + SortedSet getAssetRedirectGUIDs(); + + /** AWS SMUS Asset MetadataForm details */ + List getAssetSmusMetadataFormDetails(); + + /** List of AWS SMUS MetadataForm Key:Value Details. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormKeyValueDetails(); + + /** List of AWS SMUS MetadataForm Names. This is mainly used for filtering purpose. */ + SortedSet getAssetSmusMetadataFormNames(); + + /** Number of checks done via Soda. */ + Long getAssetSodaCheckCount(); + + /** All associated Soda check statuses. */ + String getAssetSodaCheckStatuses(); + + /** Status of data quality from Soda. */ + String getAssetSodaDQStatus(); + + /** TBC */ + Long getAssetSodaLastScanAt(); + + /** TBC */ + Long getAssetSodaLastSyncRunAt(); + + /** TBC */ + String getAssetSodaSourceURL(); + + /** Unique identifier for this asset in the system from which it was sourced. */ + String getAssetSourceId(); + + /** Readme of this asset, as extracted from source. If present, this will be used for the readme in user interface. */ + String getAssetSourceReadme(); + + /** Name of the space that contains this asset. */ + String getAssetSpaceName(); + + /** Unique name of the space that contains this asset. */ + String getAssetSpaceQualifiedName(); + + /** Provider-defined summary of this asset as a JSON-stringified object. Display-only; the rendered shape is provider-specific. */ + String getAssetSummary(); + + /** Flattened tokens for section-scoped filtering on assetSummary. Each token is shaped as 'section|||name|||count'. */ + SortedSet getAssetSummaryFilterTokens(); + + /** Metadata about the provider of this asset's summary. */ + AssetSummaryProvider getAssetSummaryProvider(); + + /** List of tags attached to this asset. */ + SortedSet getAssetTags(); + + /** Color (in hexadecimal RGB) to use to represent this asset. */ + String getAssetThemeHex(); + + /** Name to use for this type of asset, as a subtype of the actual typeName. */ + String getAssetUserDefinedType(); + + /** Glossary terms that are linked to this asset. */ + default SortedSet getAssignedTerms() { + return null; + } + + /** Status of this asset's certification. */ + CertificateStatus getCertificateStatus(); + + /** Human-readable descriptive message used to provide further detail to certificateStatus. */ + String getCertificateStatusMessage(); + + /** Time (epoch) at which the certification was last updated, in milliseconds. */ + Long getCertificateUpdatedAt(); + + /** Name of the user who last updated the certification of this asset. */ + String getCertificateUpdatedBy(); + + /** Simple name of the connection through which this asset is accessible. */ + String getConnectionName(); + + /** Unique name of the connection through which this asset is accessible. */ + String getConnectionQualifiedName(); + + /** Type of the connector through which this asset is accessible. */ + String getConnectorName(); + + /** Latest version of the data contract (in any status) for this asset. */ + default IDataContract getDataContractLatest() { + return null; + } + + /** Latest certified version of the data contract for this asset. */ + default IDataContract getDataContractLatestCertified() { + return null; + } + + /** Unique name of this asset in dbt. */ + String getDbtQualifiedName(); + + /** Description of this asset, for example as crawled from a source. Fallback for display purposes, if userDescription is empty. */ + String getDescription(); + + /** Human-readable name of this asset used for display purposes (in user interface). */ + String getDisplayName(); + + /** Array of domain guids linked to this asset */ + SortedSet getDomainGUIDs(); + + /** Rules that are applied on this dataset. */ + default SortedSet getDqBaseDatasetRules() { + return null; + } + + /** Rules where this dataset is referenced. */ + default SortedSet getDqReferenceDatasetRules() { + return null; + } + + /** TBC */ + default SortedSet getFiles() { + return null; + } + + /** Optional error message of the flow run. */ + String getFlowErrorMessage(); + + /** Date and time at which this point in the data processing or orchestration finished. */ + Long getFlowFinishedAt(); + + /** Simple name of the folder in which this asset is contained. */ + String getFlowFolderName(); + + /** Unique name of the folder in which this asset is contained. */ + String getFlowFolderQualifiedName(); + + /** Unique ID for this flow asset, which will remain constant throughout the lifecycle of the asset. */ + String getFlowId(); + + /** Input parameters for the flow run. */ + Map getFlowInputParameters(); + + /** Simple name of the project in which this asset is contained. */ + String getFlowProjectName(); + + /** Unique name of the project in which this asset is contained. */ + String getFlowProjectQualifiedName(); + + /** Simple name of the reusable grouping of operations in which this ephemeral data is contained. */ + String getFlowReusableUnitName(); + + /** Unique name of the reusable grouping of operations in which this ephemeral data is contained. */ + String getFlowReusableUnitQualifiedName(); + + /** Unique ID of the flow run, which could change on subsequent runs of the same flow. */ + String getFlowRunId(); + + /** Schedule for this point in the data processing or orchestration. */ + String getFlowSchedule(); + + /** Date and time at which this point in the data processing or orchestration started. */ + Long getFlowStartedAt(); + + /** Overall status of this point in the data processing or orchestration. */ + String getFlowStatus(); + + /** Whether this asset has contract (true) or not (false). */ + Boolean getHasContract(); + + /** Whether this asset has lineage (true) or not (false). */ + Boolean getHasLineage(); + + /** Data products for which this asset is an input port. */ + default SortedSet getInputPortDataProducts() { + return null; + } + + /** Tasks to which this asset provides input. */ + default SortedSet getInputToAirflowTasks() { + return null; + } + + /** Processes to which this asset provides input. */ + default SortedSet getInputToProcesses() { + return null; + } + + /** TBC */ + default SortedSet getInputToSparkJobs() { + return null; + } + + /** TBC */ + Boolean getIsAIGenerated(); + + /** Whether this asset is discoverable through the UI (true) or not (false). */ + Boolean getIsDiscoverable(); + + /** Whether this asset can be edited in the UI (true) or not (false). */ + Boolean getIsEditable(); + + /** Indicates this asset is not fully-known, if true. */ + Boolean getIsPartial(); + + /** Time (epoch) of the last operation that inserted, updated, or deleted rows, in milliseconds. */ + Long getLastRowChangedAt(); + + /** Name of the last run of the crawler that last synchronized this asset. */ + String getLastSyncRun(); + + /** Time (epoch) at which this asset was last crawled, in milliseconds. */ + Long getLastSyncRunAt(); + + /** Name of the crawler that last synchronized this asset. */ + String getLastSyncWorkflowName(); + + /** Custom order for sorting purpose, managed by client */ + String getLexicographicalSortOrder(); + + /** Links that are attached to this asset. */ + default SortedSet getLinks() { + return null; + } + + /** TBC */ + default SortedSet getMcIncidents() { + return null; + } + + /** Monitors that observe this asset. */ + default SortedSet getMcMonitors() { + return null; + } + + /** TBC */ + default SortedSet getMetrics() { + return null; + } + + /** Attributes implemented by this asset. */ + default SortedSet getModelImplementedAttributes() { + return null; + } + + /** Entities implemented by this asset. */ + default SortedSet getModelImplementedEntities() { + return null; + } + + /** Name of this asset. Fallback for display purposes, if displayName is empty. */ + String getName(); + + /** Array of policy ids non-compliant to this asset */ + SortedSet getNonCompliantAssetPolicyGUIDs(); + + /** Tasks from which this asset is output. */ + default SortedSet getOutputFromAirflowTasks() { + return null; + } + + /** Processes from which this asset is produced as output. */ + default SortedSet getOutputFromProcesses() { + return null; + } + + /** TBC */ + default SortedSet getOutputFromSparkJobs() { + return null; + } + + /** Data products for which this asset is an output port. */ + default SortedSet getOutputPortDataProducts() { + return null; + } + + /** Array of product guids which have this asset as outputPort */ + SortedSet getOutputProductGUIDs(); + + /** List of groups who own this asset. */ + SortedSet getOwnerGroups(); + + /** List of users who own this asset. */ + SortedSet getOwnerUsers(); + + /** Partial fields contained in the asset. */ + default SortedSet getPartialChildFields() { + return null; + } + + /** Partial objects contained in the asset. */ + default SortedSet getPartialChildObjects() { + return null; + } + + /** Popularity score for this asset. */ + Double getPopularityScore(); + + /** Array of product guids linked to this asset */ + SortedSet getProductGUIDs(); + + /** Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type. */ + String getQualifiedName(); + + /** README that is linked to this asset. */ + default IReadme getReadme() { + return null; + } + + /** URL for sample data for this asset. */ + String getSampleDataUrl(); + + /** Number of datasets moved by this replication flow. */ + Long getSapDatasphereReplicationFlowDatasetCount(); + + /** Type of load performed by this replication flow, such as INITIAL or INITIAL_AND_DELTA. */ + String getSapDatasphereReplicationFlowLoadType(); + + /** 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. */ + String getSapDatasphereReplicationFlowSourceConnection(); + + /** Simple name of the Datasphere space in which this replication flow runs and creates its target tables. */ + String getSapDatasphereReplicationFlowSpaceName(); + + /** Unique name of the Datasphere space in which this replication flow runs and creates its target tables. */ + String getSapDatasphereReplicationFlowSpaceQualifiedName(); + + /** Name of the target connection into which this replication flow writes data, such as the local Datasphere repository. */ + String getSapDatasphereReplicationFlowTargetConnection(); + + /** Schema (Datasphere space) in which this replication flow creates its target tables. */ + default ISchema getSapDatasphereSchema() { + return null; + } + + /** TBC */ + default SortedSet getSchemaRegistrySubjects() { + return null; + } + + /** TBC */ + default SortedSet getSodaChecks() { + return null; + } + + /** The unit of measure for sourceTotalCost. */ + SourceCostUnitType getSourceCostUnit(); + + /** Time (epoch) at which this asset was created in the source system, in milliseconds. */ + Long getSourceCreatedAt(); + + /** Name of the user who created this asset, in the source system. */ + String getSourceCreatedBy(); + + /** URL to create an embed for a resource (for example, an image of a dashboard) within Atlan. */ + String getSourceEmbedURL(); + + /** Timestamp of most recent read operation. */ + Long getSourceLastReadAt(); + + /** List of owners of this asset, in the source system. */ + String getSourceOwners(); + + /** List of most expensive warehouses with extra insights. */ + List getSourceQueryComputeCostRecords(); + + /** List of most expensive warehouse names. */ + SortedSet getSourceQueryComputeCosts(); + + /** Total count of all read operations at source. */ + Long getSourceReadCount(); + + /** List of the most expensive queries that accessed this asset. */ + List getSourceReadExpensiveQueryRecords(); + + /** List of the most popular queries that accessed this asset. */ + List getSourceReadPopularQueryRecords(); + + /** Total cost of read queries at source. */ + Double getSourceReadQueryCost(); + + /** List of usernames with extra insights for the most recent users who read this asset. */ + List getSourceReadRecentUserRecords(); + + /** List of usernames of the most recent users who read this asset. */ + SortedSet getSourceReadRecentUsers(); + + /** List of the slowest queries that accessed this asset. */ + List getSourceReadSlowQueryRecords(); + + /** List of usernames with extra insights for the users who read this asset the most. */ + List getSourceReadTopUserRecords(); + + /** List of usernames of the users who read this asset the most. */ + SortedSet getSourceReadTopUsers(); + + /** Total number of unique users that read data from asset. */ + Long getSourceReadUserCount(); + + /** Total cost of all operations at source. */ + Double getSourceTotalCost(); + + /** URL to the resource within the source application, used to create a button to view this asset in the source application. */ + String getSourceURL(); + + /** Time (epoch) at which this asset was last updated in the source system, in milliseconds. */ + Long getSourceUpdatedAt(); + + /** Name of the user who last updated this asset, in the source system. */ + String getSourceUpdatedBy(); + + /** Users who have starred this asset. */ + SortedSet getStarredBy(); + + /** Number of users who have starred this asset. */ + Integer getStarredCount(); + + /** List of usernames with extra information of the users who have starred an asset. */ + List getStarredDetails(); + + /** Subtype of this asset. */ + String getSubType(); + + /** Name of the Atlan workspace in which this asset exists. */ + String getTenantId(); + + /** TBC */ + default SortedSet getUserDefRelationshipFroms() { + return null; + } + + /** TBC */ + default SortedSet getUserDefRelationshipTos() { + return null; + } + + /** Description of this asset, as provided by a user. If present, this will be used for the description in user interface. */ + String getUserDescription(); + + /** View score for this asset. */ + Double getViewScore(); + + /** List of groups who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerGroups(); + + /** List of users who can view assets contained in a collection. (This is only used for certain asset types.) */ + SortedSet getViewerUsers(); + + /** URL of an icon to use for this asset. (Only applies to CustomEntity and Fivetran Catalog assets, currently.) */ + String getIconUrl(); + + /** Built-in connector type through which this asset is accessible. */ + AtlanConnectorType getConnectorType(); + + /** Custom connector type through which this asset is accessible. */ + String getCustomConnectorType(); + + /** Name of the type that defines the asset. */ + String getTypeName(); + + /** Globally-unique identifier for the asset. */ + String getGuid(); + + /** Human-readable name of the asset. */ + String getDisplayText(); + + /** Status of the asset (if this is a related asset). */ + String getEntityStatus(); + + /** Type of the relationship (if this is a related asset). */ + String getRelationshipType(); + + /** Unique identifier of the relationship (when this is a related asset). */ + String getRelationshipGuid(); + + /** Status of the relationship (when this is a related asset). */ + AtlanStatus getRelationshipStatus(); + + /** Attributes specific to the relationship (unused). */ + RelationshipAttributes getRelationshipAttributes(); + + /** + * Attribute(s) that uniquely identify the asset (when this is a related asset). + * If the guid is not provided, these must be provided. + */ + UniqueAttributes getUniqueAttributes(); + + /** + * When true, indicates that this object represents a complete view of the entity. + * When false, this object is only a reference or some partial view of the entity. + */ + boolean isComplete(); + + /** + * Indicates whether this object can be used as a valid reference by GUID. + * @return true if it is a valid GUID reference, false otherwise + */ + boolean isValidReferenceByGuid(); + + /** + * Indicates whether this object can be used as a valid reference by qualifiedName. + * @return true if it is a valid qualifiedName reference, false otherwise + */ + boolean isValidReferenceByQualifiedName(); +} diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java b/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java index 1ad708ae2d..a40b40d58e 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java @@ -48,6 +48,9 @@ public interface ISapErpTable { /** SAP ERP Tables that are associated with this SAP ERP Component. */ RelationField SAP_ERP_COMPONENT = new RelationField("sapErpComponent"); + /** SAP ERP Tables that are related to this SAP ERP Table. */ + RelationField SAP_ERP_RELATED_TABLES = new RelationField("sapErpRelatedTables"); + /** Defines the delivery class of the SAP ERP table, determining how the table's data is transported and managed during system updates. */ KeywordField SAP_ERP_TABLE_DELIVERY_CLASS = new KeywordField("sapErpTableDeliveryClass", "sapErpTableDeliveryClass"); @@ -717,6 +720,11 @@ default ISapErpComponent getSapErpComponent() { return null; } + /** SAP ERP Tables that are related to this SAP ERP Table. */ + default SortedSet getSapErpRelatedTables() { + return null; + } + /** Defines the delivery class of the SAP ERP table, determining how the table's data is transported and managed during system updates. */ String getSapErpTableDeliveryClass(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISkill.java b/sdk/src/main/java/com/atlan/model/assets/ISkill.java index bd9d288cb9..b2deee49c9 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISkill.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISkill.java @@ -3,6 +3,7 @@ package com.atlan.model.assets; import com.atlan.model.enums.AgenticLifecycleStatus; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -88,6 +89,9 @@ public interface ISkill { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISkillArtifact.java b/sdk/src/main/java/com/atlan/model/assets/ISkillArtifact.java index 694e5737d6..991a808944 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISkillArtifact.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISkillArtifact.java @@ -2,6 +2,7 @@ Copyright 2023 Atlan Pte. Ltd. */ package com.atlan.model.assets; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AssetDQRunStatus; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.AtlanConnectorType; @@ -54,6 +55,9 @@ public interface ISkillArtifact { /** List of users who administer this asset. (This is only used for certain asset types.) */ SortedSet getAdminUsers(); + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + AgenticSource getAgenticSource(); + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ Long getAgenticVersion(); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISnowflakeSemanticView.java b/sdk/src/main/java/com/atlan/model/assets/ISnowflakeSemanticView.java index 0aa5bfb490..7a8be3ecc2 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISnowflakeSemanticView.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISnowflakeSemanticView.java @@ -13,8 +13,8 @@ import com.atlan.model.enums.DataQualityScheduleType; import com.atlan.model.enums.DataQualitySourceSyncStatus; import com.atlan.model.enums.SourceCostUnitType; -import com.atlan.model.fields.KeywordField; import com.atlan.model.fields.RelationField; +import com.atlan.model.fields.TextField; import com.atlan.model.relations.RelationshipAttributes; import com.atlan.model.relations.UniqueAttributes; import com.atlan.model.structs.AssetExternalDQMetadata; @@ -43,7 +43,7 @@ public interface ISnowflakeSemanticView { public static final String TYPE_NAME = "SnowflakeSemanticView"; /** DDL definition of the semantic view (via GET_DDL). */ - KeywordField SNOWFLAKE_DEFINITION = new KeywordField("snowflakeDefinition", "snowflakeDefinition"); + TextField SNOWFLAKE_DEFINITION = new TextField("snowflakeDefinition", "snowflakeDefinition"); /** Logical tables contained in the semantic view. */ RelationField SNOWFLAKE_SEMANTIC_LOGICAL_TABLES = new RelationField("snowflakeSemanticLogicalTables"); diff --git a/sdk/src/main/java/com/atlan/model/assets/ISqlInsightBusinessQuestion.java b/sdk/src/main/java/com/atlan/model/assets/ISqlInsightBusinessQuestion.java index dca7cfe944..55bd8db62d 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISqlInsightBusinessQuestion.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISqlInsightBusinessQuestion.java @@ -47,6 +47,14 @@ public interface ISqlInsightBusinessQuestion { KeywordField SQL_INSIGHT_BUSINESS_QUESTION_CANONICAL_SQL = new KeywordField("sqlInsightBusinessQuestionCanonicalSQL", "sqlInsightBusinessQuestionCanonicalSQL"); + /** Qualified name of the dataset this business question relates to. */ + KeywordField SQL_INSIGHT_BUSINESS_QUESTION_DATASET_QUALIFIED_NAME = new KeywordField( + "sqlInsightBusinessQuestionDatasetQualifiedName", "sqlInsightBusinessQuestionDatasetQualifiedName"); + + /** Example SQL queries that demonstrate this business question, with usage details. */ + KeywordField SQL_INSIGHT_BUSINESS_QUESTION_EXAMPLE_QUERIES = + new KeywordField("sqlInsightBusinessQuestionExampleQueries", "sqlInsightBusinessQuestionExampleQueries"); + /** Time (epoch) at which this question was last observed, in milliseconds. */ NumericField SQL_INSIGHT_BUSINESS_QUESTION_LAST_SEEN_AT = new NumericField("sqlInsightBusinessQuestionLastSeenAt", "sqlInsightBusinessQuestionLastSeenAt"); @@ -791,6 +799,12 @@ default SortedSet getSodaChecks() { /** Canonical SQL query that answers this business question. */ String getSqlInsightBusinessQuestionCanonicalSQL(); + /** Qualified name of the dataset this business question relates to. */ + String getSqlInsightBusinessQuestionDatasetQualifiedName(); + + /** Example SQL queries that demonstrate this business question, with usage details. */ + List getSqlInsightBusinessQuestionExampleQueries(); + /** Time (epoch) at which this question was last observed, in milliseconds. */ Long getSqlInsightBusinessQuestionLastSeenAt(); diff --git a/sdk/src/main/java/com/atlan/model/assets/IcebergNamespace.java b/sdk/src/main/java/com/atlan/model/assets/IcebergNamespace.java index acd36e566c..1751465a9e 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IcebergNamespace.java +++ b/sdk/src/main/java/com/atlan/model/assets/IcebergNamespace.java @@ -224,6 +224,11 @@ public class IcebergNamespace extends Asset @Singular("putQueryUserMap") Map queryUserMap; + /** SAP Datasphere replication flows that create tables within this schema (Datasphere space). */ + @Attribute + @Singular + SortedSet sapDatasphereReplicationFlows; + /** External location of this schema, for example: an S3 object location. */ @Attribute String schemaExternalLocation; diff --git a/sdk/src/main/java/com/atlan/model/assets/KafkaField.java b/sdk/src/main/java/com/atlan/model/assets/KafkaField.java index 90d98f3e50..ae6e381e9d 100644 --- a/sdk/src/main/java/com/atlan/model/assets/KafkaField.java +++ b/sdk/src/main/java/com/atlan/model/assets/KafkaField.java @@ -75,10 +75,23 @@ public class KafkaField extends Asset implements IKafkaField, IKafka, IEventStor @Attribute String kafkaFieldDefaultValue; + /** Level of nesting of this field (1 = direct child of topic schema, 2 = nested one level, etc.). */ + @Attribute + Integer kafkaFieldDepthLevel; + + /** List of top-level upstream nested fields. */ + @Attribute + @Singular + List> kafkaFieldHierarchies; + /** Whether this field is optional (true) or required (false) in the schema. */ @Attribute Boolean kafkaFieldIsOptional; + /** Order (position) in which this field appears within its parent nested field, as a dotted ordinal path such as '1.2.10'. Carries the same value as kafkaNestedFieldOrder, which it supersedes; sortable in schema-declaration order via its version sub-field. */ + @Attribute + String kafkaFieldNestedOrder; + /** Position (0-based) of this field in the schema definition. */ @Attribute Integer kafkaFieldOrder; @@ -91,6 +104,31 @@ public class KafkaField extends Asset implements IKafkaField, IKafka, IEventStor @Attribute String kafkaFieldVersionIntroduced; + /** Number of KafkaField assets directly nested within this field. */ + @Attribute + Integer kafkaNestedFieldCount; + + /** Order (position) in which this field appears within its parent nested field (nest level starts at 1). */ + @Attribute + String kafkaNestedFieldOrder; + + /** KafkaField assets nested within this field. */ + @Attribute + @Singular + SortedSet kafkaNestedFields; + + /** Parent KafkaField containing this nested field. */ + @Attribute + IKafkaField kafkaParentField; + + /** Simple name of the parent KafkaField in which this field is nested. */ + @Attribute + String kafkaParentFieldName; + + /** Unique name of the parent KafkaField in which this field is nested. */ + @Attribute + String kafkaParentFieldQualifiedName; + /** Kafka topic in which this field is defined. */ @Attribute IKafkaTopic kafkaTopic; diff --git a/sdk/src/main/java/com/atlan/model/assets/Knowledge.java b/sdk/src/main/java/com/atlan/model/assets/Knowledge.java index 0cc53b22e5..b73095ab72 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Knowledge.java +++ b/sdk/src/main/java/com/atlan/model/assets/Knowledge.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.fields.AtlanField; @@ -48,6 +49,10 @@ public class Knowledge extends Asset implements IKnowledge, IAgentic, ICatalog, @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/KnowledgeFile.java b/sdk/src/main/java/com/atlan/model/assets/KnowledgeFile.java index bb5ff5ff16..3b4aa9137b 100644 --- a/sdk/src/main/java/com/atlan/model/assets/KnowledgeFile.java +++ b/sdk/src/main/java/com/atlan/model/assets/KnowledgeFile.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.FileType; @@ -50,6 +51,10 @@ public class KnowledgeFile extends Asset @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; @@ -107,6 +112,11 @@ public class KnowledgeFile extends Asset @Singular SortedSet knowledgeFolders; + /** Assets this knowledge file is linked to. */ + @Attribute + @Singular + SortedSet knowledgeLinkedAssets; + /** URL to the resource. */ @Attribute String link; diff --git a/sdk/src/main/java/com/atlan/model/assets/KnowledgeFolder.java b/sdk/src/main/java/com/atlan/model/assets/KnowledgeFolder.java index 390087220b..dfa99df0ce 100644 --- a/sdk/src/main/java/com/atlan/model/assets/KnowledgeFolder.java +++ b/sdk/src/main/java/com/atlan/model/assets/KnowledgeFolder.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.KnowledgeFolderType; @@ -50,6 +51,10 @@ public class KnowledgeFolder extends Asset @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java b/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java index 1c05209cc7..3ddb4ba5ca 100644 --- a/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -130,6 +131,10 @@ public class LineageProcess extends Asset implements ILineageProcess, IAsset, IR @Attribute IPowerBIDataflow powerBIDataflow; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** TBC */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/Procedure.java b/sdk/src/main/java/com/atlan/model/assets/Procedure.java index c4b66b48ae..2d485bb428 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Procedure.java +++ b/sdk/src/main/java/com/atlan/model/assets/Procedure.java @@ -63,6 +63,10 @@ public class Procedure extends Asset implements IProcedure, ISQL, ICatalog, IAss @Attribute String catalogDatasetGuid; + /** Cosmos collection in which this procedure exists. */ + @Attribute + ICosmosMongoDBCollection cosmosMongoDBCollection; + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ @Attribute String databaseName; diff --git a/sdk/src/main/java/com/atlan/model/assets/Response.java b/sdk/src/main/java/com/atlan/model/assets/Response.java index cada7f1267..beeb663589 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Response.java +++ b/sdk/src/main/java/com/atlan/model/assets/Response.java @@ -74,6 +74,11 @@ public class Response extends Asset implements IResponse, IForm, IAsset, IRefere @Singular SortedSet gcpDataplexAspectTypeMetadataEntities; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** Options of the response to a form. */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/SAPColumnProcess.java b/sdk/src/main/java/com/atlan/model/assets/SAPColumnProcess.java index 5fceb720ef..4a52e93b60 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SAPColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/SAPColumnProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -185,6 +186,10 @@ public class SAPColumnProcess extends Asset @Attribute ILineageProcess process; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** SAP BW Transformation whose mapping logic this column-level process represents (populated as a single-element list by the connector). */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/SAPProcess.java b/sdk/src/main/java/com/atlan/model/assets/SAPProcess.java index cbc0e486ce..9544bae7d6 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SAPProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/SAPProcess.java @@ -10,6 +10,7 @@ import com.atlan.model.enums.AIDatasetType; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.enums.ProcessLineageDerivation; import com.atlan.model.fields.AtlanField; import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; @@ -180,6 +181,10 @@ public class SAPProcess extends Asset implements ISAPProcess, ILineageProcess, I @Attribute IPowerBIDataflow powerBIDataflow; + /** How this lineage process was derived — statically from an asset definition, or from an operational data-processing run. */ + @Attribute + ProcessLineageDerivation processDerivation; + /** SAP BW DTPs whose data flow this process materialises (typically one, occasionally several for chained loads). */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioProject.java b/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioProject.java index e6b16314d4..a550e2ec7f 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioProject.java +++ b/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioProject.java @@ -141,7 +141,7 @@ public class SageMakerUnifiedStudioProject extends Asset @Attribute String smusProjectS3Location; - /** SSO users associated with the SageMaker Unified Studio project, sourced from the source system. Each entry has `email` and `role` fields. */ + /** SSO users associated with the SageMaker Unified Studio project, sourced from the source system. Each entry has `email`, `role` and optional `fullName` fields. */ @Attribute @Singular List smusProjectSsoUsers; diff --git a/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAsset.java b/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAsset.java index 1978baa5e8..a879af21ed 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAsset.java +++ b/sdk/src/main/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAsset.java @@ -162,6 +162,10 @@ public class SageMakerUnifiedStudioPublishedAsset extends Asset @Attribute String smusProjectId; + /** Asset filters configured for the published asset in SageMaker Unified Studio, as a JSON-serialized array. Each entry represents a row-level or column-level access restriction (id, name, description, effectiveRowFilter, effectiveColumnNames). */ + @Attribute + String smusPublishedAssetFilters; + /** Number of subscriptions for the published asset. */ @Attribute Long smusPublishedAssetSubscriptionsCount; diff --git a/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloud.java b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloud.java new file mode 100644 index 0000000000..3f8ae2e412 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloud.java @@ -0,0 +1,652 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapAnalyticsCloud extends Asset implements ISapAnalyticsCloud, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapAnalyticsCloud"; + + /** Fixed typeName for SapAnalyticsClouds. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + @Attribute + String sapAnalyticsCloudObjectId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderQualifiedName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudRepositoryPartition; + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + @Attribute + String sapAnalyticsCloudResourceId; + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceId; + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceName; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + @Attribute + Long sapFieldCount; + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + @Attribute + Integer sapFieldOrder; + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + @Attribute + String sapLogicalName; + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + @Attribute + String sapPackageName; + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + @Attribute + String sapTechnicalName; + + /** + * Builds the minimal object necessary to create a relationship to a SapAnalyticsCloud, from a potentially + * more-complete SapAnalyticsCloud object. + * + * @return the minimal object necessary to relate to the SapAnalyticsCloud + * @throws InvalidRequestException if any of the minimal set of required properties for a SapAnalyticsCloud relationship are not found in the initial object + */ + @Override + public SapAnalyticsCloud trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloud assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) SapAnalyticsCloud assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapAnalyticsCloud assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloud assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) SapAnalyticsClouds will be included + * @return a fluent search that includes all SapAnalyticsCloud assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a SapAnalyticsCloud by GUID. Use this to create a relationship to this SapAnalyticsCloud, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapAnalyticsCloud to reference + * @return reference to a SapAnalyticsCloud that can be used for defining a relationship to a SapAnalyticsCloud + */ + public static SapAnalyticsCloud refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloud by GUID. Use this to create a relationship to this SapAnalyticsCloud, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapAnalyticsCloud to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloud that can be used for defining a relationship to a SapAnalyticsCloud + */ + public static SapAnalyticsCloud refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapAnalyticsCloud._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapAnalyticsCloud by qualifiedName. Use this to create a relationship to this SapAnalyticsCloud, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloud to reference + * @return reference to a SapAnalyticsCloud that can be used for defining a relationship to a SapAnalyticsCloud + */ + public static SapAnalyticsCloud refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloud by qualifiedName. Use this to create a relationship to this SapAnalyticsCloud, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloud to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloud that can be used for defining a relationship to a SapAnalyticsCloud + */ + public static SapAnalyticsCloud refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapAnalyticsCloud._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapAnalyticsCloud by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloud to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapAnalyticsCloud, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloud does not exist or the provided GUID is not a SapAnalyticsCloud + */ + @JsonIgnore + public static SapAnalyticsCloud get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapAnalyticsCloud by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloud to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full SapAnalyticsCloud, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloud does not exist or the provided GUID is not a SapAnalyticsCloud + */ + @JsonIgnore + public static SapAnalyticsCloud get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof SapAnalyticsCloud) { + return (SapAnalyticsCloud) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof SapAnalyticsCloud) { + return (SapAnalyticsCloud) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapAnalyticsCloud by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloud to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloud, including any relationships + * @return the requested SapAnalyticsCloud, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloud does not exist or the provided GUID is not a SapAnalyticsCloud + */ + @JsonIgnore + public static SapAnalyticsCloud get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapAnalyticsCloud by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloud to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloud, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapAnalyticsCloud + * @return the requested SapAnalyticsCloud, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloud does not exist or the provided GUID is not a SapAnalyticsCloud + */ + @JsonIgnore + public static SapAnalyticsCloud get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = SapAnalyticsCloud.select(client) + .where(SapAnalyticsCloud.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof SapAnalyticsCloud) { + return (SapAnalyticsCloud) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapAnalyticsCloud.select(client) + .where(SapAnalyticsCloud.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof SapAnalyticsCloud) { + return (SapAnalyticsCloud) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapAnalyticsCloud to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapAnalyticsCloud + * @return true if the SapAnalyticsCloud is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a SapAnalyticsCloud. + * + * @param qualifiedName of the SapAnalyticsCloud + * @param name of the SapAnalyticsCloud + * @return the minimal request necessary to update the SapAnalyticsCloud, as a builder + */ + public static SapAnalyticsCloudBuilder updater(String qualifiedName, String name) { + return SapAnalyticsCloud._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a SapAnalyticsCloud, + * from a potentially more-complete SapAnalyticsCloud object. + * + * @return the minimal object necessary to update the SapAnalyticsCloud, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapAnalyticsCloud are not present in the initial object + */ + @Override + public SapAnalyticsCloudBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class SapAnalyticsCloudBuilder< + C extends SapAnalyticsCloud, B extends SapAnalyticsCloudBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloud + * @param name of the SapAnalyticsCloud + * @return the updated SapAnalyticsCloud, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloud) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloud + * @param name of the SapAnalyticsCloud + * @return the updated SapAnalyticsCloud, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloud) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloud's owners + * @param qualifiedName of the SapAnalyticsCloud + * @param name of the SapAnalyticsCloud + * @return the updated SapAnalyticsCloud, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloud) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloud's certificate + * @param qualifiedName of the SapAnalyticsCloud + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapAnalyticsCloud, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapAnalyticsCloud) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloud's certificate + * @param qualifiedName of the SapAnalyticsCloud + * @param name of the SapAnalyticsCloud + * @return the updated SapAnalyticsCloud, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloud) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloud's announcement + * @param qualifiedName of the SapAnalyticsCloud + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapAnalyticsCloud) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan client from which to remove the SapAnalyticsCloud's announcement + * @param qualifiedName of the SapAnalyticsCloud + * @param name of the SapAnalyticsCloud + * @return the updated SapAnalyticsCloud, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloud) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant on which to replace the SapAnalyticsCloud's assigned terms + * @param qualifiedName for the SapAnalyticsCloud + * @param name human-readable name of the SapAnalyticsCloud + * @param terms the list of terms to replace on the SapAnalyticsCloud, or null to remove all terms from the SapAnalyticsCloud + * @return the SapAnalyticsCloud that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloud replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapAnalyticsCloud) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapAnalyticsCloud, without replacing existing terms linked to the SapAnalyticsCloud. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloud's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the SapAnalyticsCloud + * @param qualifiedName for the SapAnalyticsCloud + * @param terms the list of terms to append to the SapAnalyticsCloud + * @return the SapAnalyticsCloud that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloud appendTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (SapAnalyticsCloud) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapAnalyticsCloud, without replacing all existing terms linked to the SapAnalyticsCloud. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloud's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the SapAnalyticsCloud + * @param qualifiedName for the SapAnalyticsCloud + * @param terms the list of terms to remove from the SapAnalyticsCloud, which must be referenced by GUID + * @return the SapAnalyticsCloud that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloud removeTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (SapAnalyticsCloud) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapAnalyticsCloud, without replacing existing Atlan tags linked to the SapAnalyticsCloud. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloud's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloud + * @param qualifiedName of the SapAnalyticsCloud + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloud + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapAnalyticsCloud appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapAnalyticsCloud) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapAnalyticsCloud, without replacing existing Atlan tags linked to the SapAnalyticsCloud. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloud's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloud + * @param qualifiedName of the SapAnalyticsCloud + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloud + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapAnalyticsCloud appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapAnalyticsCloud) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapAnalyticsCloud. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapAnalyticsCloud + * @param qualifiedName of the SapAnalyticsCloud + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the SapAnalyticsCloud + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudColumn.java b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudColumn.java new file mode 100644 index 0000000000..c2ee756169 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudColumn.java @@ -0,0 +1,1255 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.model.structs.AssetHistogram; +import com.atlan.model.structs.ColumnValueFrequencyMap; +import com.atlan.model.structs.Histogram; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapAnalyticsCloudColumn extends Asset + implements ISapAnalyticsCloudColumn, IColumn, ISapAnalyticsCloud, ISQL, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapAnalyticsCloudColumn"; + + /** Fixed typeName for SapAnalyticsCloudColumns. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Calculate view in which this column exists. */ + @Attribute + ICalculationView calculationView; + + /** Simple name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + @Attribute + String calculationViewName; + + /** Unique name of the calculation view in which this SQL asset exists, or empty if it does not exist within a calculation view. */ + @Attribute + String calculationViewQualifiedName; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Type of dimension as classified by AI analysis, for example: time, categorical, geographic. */ + @Attribute + String columnAiInsightsDimensionType; + + /** Qualified name of the column in another table that this column likely references as a foreign key, inferred by AI analysis of query patterns. */ + @Attribute + String columnAiInsightsForeignKeyColumnQualifiedName; + + /** When true, this column is identified as a dimension by AI analysis of query patterns. */ + @Attribute + Boolean columnAiInsightsIsDimension; + + /** When true, this column is identified as a measure/calculated column by AI analysis of query patterns. */ + @Attribute + Boolean columnAiInsightsIsMeasure; + + /** Type of measure/calculated column as classified by AI analysis, for example: base, calculated, derived. */ + @Attribute + String columnAiInsightsMeasureType; + + /** Average value in this column. */ + @Attribute + Double columnAverage; + + /** Average length of values in a string column. */ + @Attribute + Double columnAverageLength; + + /** Average length of values in a string column. */ + @Attribute + Double columnAverageLengthValue; + + /** Average value in this column. */ + @Attribute + Double columnAverageValue; + + /** Compression type of this column. */ + @Attribute + String columnCompression; + + /** Model columns related to this column. */ + @Attribute + @Singular + SortedSet columnDbtModelColumns; + + /** Level of nesting of this column, used for STRUCT and NESTED columns. */ + @Attribute + Integer columnDepthLevel; + + /** Number of rows that contain distinct values. */ + @Attribute + Integer columnDistinctValuesCount; + + /** Number of rows that contain distinct values. */ + @Attribute + Long columnDistinctValuesCountLong; + + /** Percentage of rows in a column that contain distinct values. */ + @Attribute + Double columnDistinctValuesPercentage; + + /** Detailed information representing a histogram of values for a column. */ + @Attribute + AssetHistogram columnDistributionHistogram; + + /** Number of rows that contain duplicate values. */ + @Attribute + Integer columnDuplicateValuesCount; + + /** Number of rows that contain duplicate values. */ + @Attribute + Long columnDuplicateValuesCountLong; + + /** Encoding type of this column. */ + @Attribute + String columnEncoding; + + /** List of top-level upstream nested columns. */ + @Attribute + @Singular("putColumnHierarchy") + List> columnHierarchy; + + /** List of values in a histogram that represents the contents of this column. */ + @Attribute + Histogram columnHistogram; + + /** When true, this column is of type measure/calculated. */ + @Attribute + Boolean columnIsMeasure; + + /** Greatest value in a numeric column. */ + @Attribute + Double columnMax; + + /** Greatest value in a numeric column. */ + @Attribute + Double columnMaxValue; + + /** Length of the longest value in a string column. */ + @Attribute + Integer columnMaximumStringLength; + + /** List of the greatest values in a column. */ + @Attribute + @Singular("addColumnMax") + SortedSet columnMaxs; + + /** Arithmetic mean of the values in a numeric column. */ + @Attribute + Double columnMean; + + /** Arithmetic mean of the values in a numeric column. */ + @Attribute + Double columnMeanValue; + + /** The type of measure/calculated column this is, eg: base, calculated, derived. */ + @Attribute + String columnMeasureType; + + /** Calculated median of the values in a numeric column. */ + @Attribute + Double columnMedian; + + /** Calculated median of the values in a numeric column. */ + @Attribute + Double columnMedianValue; + + /** Least value in a numeric column. */ + @Attribute + Double columnMin; + + /** Least value in a numeric column. */ + @Attribute + Double columnMinValue; + + /** Length of the shortest value in a string column. */ + @Attribute + Integer columnMinimumStringLength; + + /** List of the least values in a column. */ + @Attribute + @Singular("addColumnMin") + SortedSet columnMins; + + /** Number of rows in a column that do not contain content. */ + @Attribute + Integer columnMissingValuesCount; + + /** Number of rows in a column that do not contain content. */ + @Attribute + Long columnMissingValuesCountLong; + + /** Percentage of rows in a column that do not contain content. */ + @Attribute + Double columnMissingValuesPercentage; + + /** Calculated standard deviation of the values in a numeric column. */ + @Attribute + Double columnStandardDeviation; + + /** Calculated standard deviation of the values in a numeric column. */ + @Attribute + Double columnStandardDeviationValue; + + /** Calculated sum of the values in a numeric column. */ + @Attribute + Double columnSum; + + /** Calculated sum of the values in a numeric column. */ + @Attribute + Double columnSumValue; + + /** List of top values in this column. */ + @Attribute + @Singular + List columnTopValues; + + /** Number of rows in which a value in this column appears only once. */ + @Attribute + Integer columnUniqueValuesCount; + + /** Number of rows in which a value in this column appears only once. */ + @Attribute + Long columnUniqueValuesCountLong; + + /** 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. */ + @Attribute + Double columnUniquenessPercentage; + + /** Calculated variance of the values in a numeric column. */ + @Attribute + Double columnVariance; + + /** Calculated variance of the values in a numeric column. */ + @Attribute + Double columnVarianceValue; + + /** Cosmos collection in which this column exists. */ + @Attribute + ICosmosMongoDBCollection cosmosMongoDBCollection; + + /** TBC */ + @Attribute + @Singular + SortedSet dataQualityMetricDimensions; + + /** Data type of values in this column. */ + @Attribute + String dataType; + + /** Simple name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + @Attribute + String databaseName; + + /** Unique name of the database in which this SQL asset exists, or empty if it does not exist within a database. */ + @Attribute + String databaseQualifiedName; + + /** Metrics related to this model column. */ + @Attribute + @Singular + SortedSet dbtMetrics; + + /** (Deprecated) Model columns related to this model column. */ + @Attribute + @Singular + SortedSet dbtModelColumns; + + /** (Deprecated) Model containing the assets. */ + @Attribute + @Singular + SortedSet dbtModels; + + /** DBT seeds that materialize the SQL asset. */ + @Attribute + @Singular + SortedSet dbtSeedAssets; + + /** Source containing the assets. */ + @Attribute + @Singular + SortedSet dbtSources; + + /** Tests related to this asset. */ + @Attribute + @Singular + SortedSet dbtTests; + + /** Default value for this column. */ + @Attribute + String defaultValue; + + /** Rules that are applied on this column. */ + @Attribute + @Singular + SortedSet dqBaseColumnRules; + + /** Rules where this column is referenced. */ + @Attribute + @Singular + SortedSet dqReferenceColumnRules; + + /** Column this foreign key column refers to. */ + @Attribute + IColumn foreignKeyFrom; + + /** Columns that use this column as a foreign key. */ + @Attribute + @Singular("addForeignKeyTo") + SortedSet foreignKeyTo; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Whether this column is a clustered column (true) or not (false). */ + @Attribute + Boolean isClustered; + + /** Whether this column is a distribution column (true) or not (false). */ + @Attribute + Boolean isDist; + + /** 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. */ + @Attribute + Boolean isForeign; + + /** When true, this column is indexed in the database. */ + @Attribute + Boolean isIndexed; + + /** When true, the values in this column can be null. */ + @Attribute + Boolean isNullable; + + /** Whether this column is a partition column (true) or not (false). */ + @Attribute + Boolean isPartition; + + /** Whether this column is pinned (true) or not (false). */ + @Attribute + Boolean isPinned; + + /** When true, this column is the primary key for the table. */ + @Attribute + Boolean isPrimary; + + /** Whether this asset has been profiled (true) or not (false). */ + @Attribute + Boolean isProfiled; + + /** Whether this column is a sort column (true) or not (false). */ + @Attribute + Boolean isSort; + + /** Time (epoch) at which this asset was last profiled, in milliseconds. */ + @Attribute + @Date + Long lastProfiledAt; + + /** Materialized view in which this column exists. */ + @Attribute + @JsonProperty("materialisedView") + IMaterializedView materializedView; + + /** Maximum length of a value in this column. */ + @Attribute + Long maxLength; + + /** TBC */ + @Attribute + @Singular + SortedSet metricTimestamps; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Collection in which the columns exist. */ + @Attribute + IMongoDBCollection mongoDBCollection; + + /** Number of columns nested within this (STRUCT or NESTED) column. */ + @Attribute + Integer nestedColumnCount; + + /** Order (position) in which this column appears in the nested Column (nest level starts at 1). */ + @Attribute + String nestedColumnOrder; + + /** Nested columns that exist within this column. */ + @Attribute + @Singular + SortedSet nestedColumns; + + /** 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. */ + @Attribute + String nosqlCollectionName; + + /** 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. */ + @Attribute + String nosqlCollectionQualifiedName; + + /** Number of digits allowed to the right of the decimal point. */ + @Attribute + Double numericScale; + + /** Order (position) in which this column appears in the table (starting at 1). */ + @Attribute + Integer order; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Column in which this sub-column is nested. */ + @Attribute + IColumn parentColumn; + + /** Simple name of the column this column is nested within, for STRUCT and NESTED columns. */ + @Attribute + String parentColumnName; + + /** Unique name of the column this column is nested within, for STRUCT and NESTED columns. */ + @Attribute + String parentColumnQualifiedName; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Order (position) of this partition column in the table. */ + @Attribute + Integer partitionOrder; + + /** Time (epoch) at which this column was pinned, in milliseconds. */ + @Attribute + @Date + Long pinnedAt; + + /** User who pinned this column. */ + @Attribute + String pinnedBy; + + /** Total number of digits allowed, when the dataType is numeric. */ + @Attribute + Integer precision; + + /** Queries that access this column. */ + @Attribute + @Singular + SortedSet queries; + + /** Number of times this asset has been queried. */ + @Attribute + Long queryCount; + + /** Time (epoch) at which the query count was last updated, in milliseconds. */ + @Attribute + @Date + Long queryCountUpdatedAt; + + /** Number of unique users who have queried this asset. */ + @Attribute + Long queryUserCount; + + /** Map of unique users who have queried this asset to the number of times they have queried it. */ + @Attribute + @Singular("putQueryUserMap") + Map queryUserMap; + + /** Raw data type definition of this column. */ + @Attribute + String rawDataTypeDefinition; + + /** Model in which this column is defined. */ + @Attribute + ISapAnalyticsCloudModel sapAnalyticsCloudModel; + + /** Simple name of the SAP Analytics Cloud model in which this column exists. */ + @Attribute + String sapAnalyticsCloudModelName; + + /** Unique name of the SAP Analytics Cloud model in which this column exists. */ + @Attribute + String sapAnalyticsCloudModelQualifiedName; + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + @Attribute + String sapAnalyticsCloudObjectId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderQualifiedName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudRepositoryPartition; + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + @Attribute + String sapAnalyticsCloudResourceId; + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceId; + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceName; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + @Attribute + Long sapFieldCount; + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + @Attribute + Integer sapFieldOrder; + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + @Attribute + String sapLogicalName; + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + @Attribute + String sapPackageName; + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + @Attribute + String sapTechnicalName; + + /** Simple name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + @Attribute + String schemaName; + + /** Unique name of the schema in which this SQL asset exists, or empty if it does not exist within a schema. */ + @Attribute + String schemaQualifiedName; + + /** Snowflake dynamic table in which this column exists. */ + @Attribute + ISnowflakeDynamicTable snowflakeDynamicTable; + + /** Semantic logical tables that reference this physical table or view. */ + @Attribute + @Singular + SortedSet snowflakeSemanticLogicalTables; + + /** Unique name of the context in which the model versions exist, or empty if it does not exist within an AI model context. */ + @Attribute + String sqlAIModelContextQualifiedName; + + /** Time (epoch) at which this asset was last analyzed for AI insights, in milliseconds. */ + @Attribute + @Date + Long sqlAiInsightsLastAnalyzedAt; + + /** Number of popular business questions associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularBusinessQuestionCount; + + /** Number of popular filter patterns associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularFilterCount; + + /** Number of popular join patterns associated with this asset. */ + @Attribute + Integer sqlAiInsightsPopularJoinCount; + + /** Number of relationship insights associated with this asset. */ + @Attribute + Integer sqlAiInsightsRelationshipCount; + + /** Identifier of the Coalesce environment. */ + @Attribute + String sqlCoalesceEnvironmentId; + + /** Name of the Coalesce environment. */ + @Attribute + String sqlCoalesceEnvironmentName; + + /** Time (epoch) at which the Coalesce node that materialized this asset last ran, in milliseconds. */ + @Attribute + @Date + Long sqlCoalesceLastRunAt; + + /** Status of the Coalesce run. One of: success, failure, cancelled, or skipped. */ + @Attribute + String sqlCoalesceLastRunStatus; + + /** Status of the Coalesce node for a given run. */ + @Attribute + String sqlCoalesceNodeStatus; + + /** Type of the Coalesce node. */ + @Attribute + String sqlCoalesceNodeType; + + /** Identifier of the Coalesce project. */ + @Attribute + String sqlCoalesceProjectId; + + /** Name of the Coalesce project. */ + @Attribute + String sqlCoalesceProjectName; + + /** Sources related to this asset. */ + @Attribute + @Singular + SortedSet sqlDBTSources; + + /** Assets related to the model. */ + @Attribute + @Singular + SortedSet sqlDbtModels; + + /** Whether this asset has any AI insights data available. */ + @Attribute + Boolean sqlHasAiInsights; + + /** Business question insights for this SQL asset. */ + @Attribute + @Singular + SortedSet sqlInsightBusinessQuestions; + + /** Filter insights for this column. */ + @Attribute + @Singular + SortedSet sqlInsightFilters; + + /** Join insights where this asset is the joined dataset. */ + @Attribute + @Singular + SortedSet sqlInsightIncomingJoins; + + /** Join insights where this asset is the source dataset. */ + @Attribute + @Singular + SortedSet sqlInsightOutgoingJoins; + + /** Whether this asset is secure (true) or not (false). */ + @Attribute + Boolean sqlIsSecure; + + /** Qualified names of data shares this asset is granted to. */ + @Attribute + @Singular + SortedSet sqlShareQualifiedNames; + + /** Sub-data type of this column. */ + @Attribute + String subDataType; + + /** Table in which this column exists. */ + @Attribute + ITable table; + + /** Simple name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + @Attribute + String tableName; + + /** Table partition that contains this column. */ + @Attribute + ITablePartition tablePartition; + + /** Unique name of the table in which this SQL asset exists, or empty if it does not exist within a table. */ + @Attribute + String tableQualifiedName; + + /** Validations for this column. */ + @Attribute + @Singular + Map validations; + + /** View in which this column exists. */ + @Attribute + IView view; + + /** Simple name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + @Attribute + String viewName; + + /** Unique name of the view in which this SQL asset exists, or empty if it does not exist within a view. */ + @Attribute + String viewQualifiedName; + + /** + * Builds the minimal object necessary to create a relationship to a SapAnalyticsCloudColumn, from a potentially + * more-complete SapAnalyticsCloudColumn object. + * + * @return the minimal object necessary to relate to the SapAnalyticsCloudColumn + * @throws InvalidRequestException if any of the minimal set of required properties for a SapAnalyticsCloudColumn relationship are not found in the initial object + */ + @Override + public SapAnalyticsCloudColumn trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudColumn assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) SapAnalyticsCloudColumn assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapAnalyticsCloudColumn assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudColumn assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) SapAnalyticsCloudColumns will be included + * @return a fluent search that includes all SapAnalyticsCloudColumn assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a SapAnalyticsCloudColumn by GUID. Use this to create a relationship to this SapAnalyticsCloudColumn, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapAnalyticsCloudColumn to reference + * @return reference to a SapAnalyticsCloudColumn that can be used for defining a relationship to a SapAnalyticsCloudColumn + */ + public static SapAnalyticsCloudColumn refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudColumn by GUID. Use this to create a relationship to this SapAnalyticsCloudColumn, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapAnalyticsCloudColumn to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudColumn that can be used for defining a relationship to a SapAnalyticsCloudColumn + */ + public static SapAnalyticsCloudColumn refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudColumn._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapAnalyticsCloudColumn by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudColumn, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudColumn to reference + * @return reference to a SapAnalyticsCloudColumn that can be used for defining a relationship to a SapAnalyticsCloudColumn + */ + public static SapAnalyticsCloudColumn refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudColumn by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudColumn, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudColumn to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudColumn that can be used for defining a relationship to a SapAnalyticsCloudColumn + */ + public static SapAnalyticsCloudColumn refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudColumn._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapAnalyticsCloudColumn by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudColumn to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapAnalyticsCloudColumn, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudColumn does not exist or the provided GUID is not a SapAnalyticsCloudColumn + */ + @JsonIgnore + public static SapAnalyticsCloudColumn get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapAnalyticsCloudColumn by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudColumn to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full SapAnalyticsCloudColumn, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudColumn does not exist or the provided GUID is not a SapAnalyticsCloudColumn + */ + @JsonIgnore + public static SapAnalyticsCloudColumn get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof SapAnalyticsCloudColumn) { + return (SapAnalyticsCloudColumn) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof SapAnalyticsCloudColumn) { + return (SapAnalyticsCloudColumn) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapAnalyticsCloudColumn by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudColumn to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudColumn, including any relationships + * @return the requested SapAnalyticsCloudColumn, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudColumn does not exist or the provided GUID is not a SapAnalyticsCloudColumn + */ + @JsonIgnore + public static SapAnalyticsCloudColumn get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapAnalyticsCloudColumn by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudColumn to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudColumn, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapAnalyticsCloudColumn + * @return the requested SapAnalyticsCloudColumn, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudColumn does not exist or the provided GUID is not a SapAnalyticsCloudColumn + */ + @JsonIgnore + public static SapAnalyticsCloudColumn get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = SapAnalyticsCloudColumn.select(client) + .where(SapAnalyticsCloudColumn.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof SapAnalyticsCloudColumn) { + return (SapAnalyticsCloudColumn) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapAnalyticsCloudColumn.select(client) + .where(SapAnalyticsCloudColumn.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof SapAnalyticsCloudColumn) { + return (SapAnalyticsCloudColumn) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapAnalyticsCloudColumn to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapAnalyticsCloudColumn + * @return true if the SapAnalyticsCloudColumn is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a SapAnalyticsCloudColumn. + * + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param name of the SapAnalyticsCloudColumn + * @return the minimal request necessary to update the SapAnalyticsCloudColumn, as a builder + */ + public static SapAnalyticsCloudColumnBuilder updater(String qualifiedName, String name) { + return SapAnalyticsCloudColumn._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a SapAnalyticsCloudColumn, + * from a potentially more-complete SapAnalyticsCloudColumn object. + * + * @return the minimal object necessary to update the SapAnalyticsCloudColumn, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapAnalyticsCloudColumn are not present in the initial object + */ + @Override + public SapAnalyticsCloudColumnBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class SapAnalyticsCloudColumnBuilder< + C extends SapAnalyticsCloudColumn, B extends SapAnalyticsCloudColumnBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param name of the SapAnalyticsCloudColumn + * @return the updated SapAnalyticsCloudColumn, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param name of the SapAnalyticsCloudColumn + * @return the updated SapAnalyticsCloudColumn, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudColumn's owners + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param name of the SapAnalyticsCloudColumn + * @return the updated SapAnalyticsCloudColumn, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudColumn's certificate + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapAnalyticsCloudColumn, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapAnalyticsCloudColumn) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudColumn's certificate + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param name of the SapAnalyticsCloudColumn + * @return the updated SapAnalyticsCloudColumn, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudColumn's announcement + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapAnalyticsCloudColumn) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan client from which to remove the SapAnalyticsCloudColumn's announcement + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param name of the SapAnalyticsCloudColumn + * @return the updated SapAnalyticsCloudColumn, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant on which to replace the SapAnalyticsCloudColumn's assigned terms + * @param qualifiedName for the SapAnalyticsCloudColumn + * @param name human-readable name of the SapAnalyticsCloudColumn + * @param terms the list of terms to replace on the SapAnalyticsCloudColumn, or null to remove all terms from the SapAnalyticsCloudColumn + * @return the SapAnalyticsCloudColumn that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudColumn replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapAnalyticsCloudColumn, without replacing existing terms linked to the SapAnalyticsCloudColumn. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudColumn's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the SapAnalyticsCloudColumn + * @param qualifiedName for the SapAnalyticsCloudColumn + * @param terms the list of terms to append to the SapAnalyticsCloudColumn + * @return the SapAnalyticsCloudColumn that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudColumn appendTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapAnalyticsCloudColumn, without replacing all existing terms linked to the SapAnalyticsCloudColumn. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudColumn's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the SapAnalyticsCloudColumn + * @param qualifiedName for the SapAnalyticsCloudColumn + * @param terms the list of terms to remove from the SapAnalyticsCloudColumn, which must be referenced by GUID + * @return the SapAnalyticsCloudColumn that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudColumn removeTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudColumn, without replacing existing Atlan tags linked to the SapAnalyticsCloudColumn. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudColumn's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudColumn + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudColumn + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapAnalyticsCloudColumn appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudColumn, without replacing existing Atlan tags linked to the SapAnalyticsCloudColumn. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudColumn's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudColumn + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudColumn + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapAnalyticsCloudColumn appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapAnalyticsCloudColumn) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapAnalyticsCloudColumn. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapAnalyticsCloudColumn + * @param qualifiedName of the SapAnalyticsCloudColumn + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the SapAnalyticsCloudColumn + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudFolder.java b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudFolder.java new file mode 100644 index 0000000000..8113bc730c --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudFolder.java @@ -0,0 +1,672 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * Folder in the SAP Analytics Cloud file repository. Folders nest to arbitrary depth and are the organizational container for stories and models. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapAnalyticsCloudFolder extends Asset + implements ISapAnalyticsCloudFolder, ISapAnalyticsCloud, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapAnalyticsCloudFolder"; + + /** Fixed typeName for SapAnalyticsCloudFolders. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Models held in this folder. */ + @Attribute + @Singular + SortedSet sapAnalyticsCloudModels; + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + @Attribute + String sapAnalyticsCloudObjectId; + + /** Folder containing this folder. */ + @Attribute + ISapAnalyticsCloudFolder sapAnalyticsCloudParentFolder; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderQualifiedName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudRepositoryPartition; + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + @Attribute + String sapAnalyticsCloudResourceId; + + /** Stories held in this folder. */ + @Attribute + @Singular + SortedSet sapAnalyticsCloudStories; + + /** Folders nested within this folder. */ + @Attribute + @Singular + SortedSet sapAnalyticsCloudSubFolders; + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceId; + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceName; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + @Attribute + Long sapFieldCount; + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + @Attribute + Integer sapFieldOrder; + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + @Attribute + String sapLogicalName; + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + @Attribute + String sapPackageName; + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + @Attribute + String sapTechnicalName; + + /** + * Builds the minimal object necessary to create a relationship to a SapAnalyticsCloudFolder, from a potentially + * more-complete SapAnalyticsCloudFolder object. + * + * @return the minimal object necessary to relate to the SapAnalyticsCloudFolder + * @throws InvalidRequestException if any of the minimal set of required properties for a SapAnalyticsCloudFolder relationship are not found in the initial object + */ + @Override + public SapAnalyticsCloudFolder trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudFolder assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) SapAnalyticsCloudFolder assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapAnalyticsCloudFolder assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudFolder assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) SapAnalyticsCloudFolders will be included + * @return a fluent search that includes all SapAnalyticsCloudFolder assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a SapAnalyticsCloudFolder by GUID. Use this to create a relationship to this SapAnalyticsCloudFolder, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapAnalyticsCloudFolder to reference + * @return reference to a SapAnalyticsCloudFolder that can be used for defining a relationship to a SapAnalyticsCloudFolder + */ + public static SapAnalyticsCloudFolder refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudFolder by GUID. Use this to create a relationship to this SapAnalyticsCloudFolder, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapAnalyticsCloudFolder to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudFolder that can be used for defining a relationship to a SapAnalyticsCloudFolder + */ + public static SapAnalyticsCloudFolder refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudFolder._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapAnalyticsCloudFolder by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudFolder, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudFolder to reference + * @return reference to a SapAnalyticsCloudFolder that can be used for defining a relationship to a SapAnalyticsCloudFolder + */ + public static SapAnalyticsCloudFolder refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudFolder by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudFolder, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudFolder to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudFolder that can be used for defining a relationship to a SapAnalyticsCloudFolder + */ + public static SapAnalyticsCloudFolder refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudFolder._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapAnalyticsCloudFolder by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudFolder to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapAnalyticsCloudFolder, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudFolder does not exist or the provided GUID is not a SapAnalyticsCloudFolder + */ + @JsonIgnore + public static SapAnalyticsCloudFolder get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapAnalyticsCloudFolder by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudFolder to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full SapAnalyticsCloudFolder, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudFolder does not exist or the provided GUID is not a SapAnalyticsCloudFolder + */ + @JsonIgnore + public static SapAnalyticsCloudFolder get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof SapAnalyticsCloudFolder) { + return (SapAnalyticsCloudFolder) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof SapAnalyticsCloudFolder) { + return (SapAnalyticsCloudFolder) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapAnalyticsCloudFolder by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudFolder to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudFolder, including any relationships + * @return the requested SapAnalyticsCloudFolder, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudFolder does not exist or the provided GUID is not a SapAnalyticsCloudFolder + */ + @JsonIgnore + public static SapAnalyticsCloudFolder get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapAnalyticsCloudFolder by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudFolder to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudFolder, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapAnalyticsCloudFolder + * @return the requested SapAnalyticsCloudFolder, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudFolder does not exist or the provided GUID is not a SapAnalyticsCloudFolder + */ + @JsonIgnore + public static SapAnalyticsCloudFolder get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = SapAnalyticsCloudFolder.select(client) + .where(SapAnalyticsCloudFolder.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof SapAnalyticsCloudFolder) { + return (SapAnalyticsCloudFolder) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapAnalyticsCloudFolder.select(client) + .where(SapAnalyticsCloudFolder.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof SapAnalyticsCloudFolder) { + return (SapAnalyticsCloudFolder) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapAnalyticsCloudFolder to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapAnalyticsCloudFolder + * @return true if the SapAnalyticsCloudFolder is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a SapAnalyticsCloudFolder. + * + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param name of the SapAnalyticsCloudFolder + * @return the minimal request necessary to update the SapAnalyticsCloudFolder, as a builder + */ + public static SapAnalyticsCloudFolderBuilder updater(String qualifiedName, String name) { + return SapAnalyticsCloudFolder._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a SapAnalyticsCloudFolder, + * from a potentially more-complete SapAnalyticsCloudFolder object. + * + * @return the minimal object necessary to update the SapAnalyticsCloudFolder, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapAnalyticsCloudFolder are not present in the initial object + */ + @Override + public SapAnalyticsCloudFolderBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class SapAnalyticsCloudFolderBuilder< + C extends SapAnalyticsCloudFolder, B extends SapAnalyticsCloudFolderBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param name of the SapAnalyticsCloudFolder + * @return the updated SapAnalyticsCloudFolder, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param name of the SapAnalyticsCloudFolder + * @return the updated SapAnalyticsCloudFolder, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudFolder's owners + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param name of the SapAnalyticsCloudFolder + * @return the updated SapAnalyticsCloudFolder, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudFolder's certificate + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapAnalyticsCloudFolder, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapAnalyticsCloudFolder) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudFolder's certificate + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param name of the SapAnalyticsCloudFolder + * @return the updated SapAnalyticsCloudFolder, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudFolder's announcement + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapAnalyticsCloudFolder) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan client from which to remove the SapAnalyticsCloudFolder's announcement + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param name of the SapAnalyticsCloudFolder + * @return the updated SapAnalyticsCloudFolder, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant on which to replace the SapAnalyticsCloudFolder's assigned terms + * @param qualifiedName for the SapAnalyticsCloudFolder + * @param name human-readable name of the SapAnalyticsCloudFolder + * @param terms the list of terms to replace on the SapAnalyticsCloudFolder, or null to remove all terms from the SapAnalyticsCloudFolder + * @return the SapAnalyticsCloudFolder that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudFolder replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapAnalyticsCloudFolder, without replacing existing terms linked to the SapAnalyticsCloudFolder. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudFolder's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the SapAnalyticsCloudFolder + * @param qualifiedName for the SapAnalyticsCloudFolder + * @param terms the list of terms to append to the SapAnalyticsCloudFolder + * @return the SapAnalyticsCloudFolder that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudFolder appendTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapAnalyticsCloudFolder, without replacing all existing terms linked to the SapAnalyticsCloudFolder. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudFolder's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the SapAnalyticsCloudFolder + * @param qualifiedName for the SapAnalyticsCloudFolder + * @param terms the list of terms to remove from the SapAnalyticsCloudFolder, which must be referenced by GUID + * @return the SapAnalyticsCloudFolder that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudFolder removeTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudFolder, without replacing existing Atlan tags linked to the SapAnalyticsCloudFolder. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudFolder's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudFolder + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudFolder + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapAnalyticsCloudFolder appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudFolder, without replacing existing Atlan tags linked to the SapAnalyticsCloudFolder. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudFolder's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudFolder + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudFolder + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapAnalyticsCloudFolder appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapAnalyticsCloudFolder) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapAnalyticsCloudFolder. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapAnalyticsCloudFolder + * @param qualifiedName of the SapAnalyticsCloudFolder + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the SapAnalyticsCloudFolder + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudModel.java b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudModel.java new file mode 100644 index 0000000000..aaea80daf5 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudModel.java @@ -0,0 +1,710 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapAnalyticsCloudModel extends Asset + implements ISapAnalyticsCloudModel, ISapAnalyticsCloud, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapAnalyticsCloudModel"; + + /** Fixed typeName for SapAnalyticsCloudModels. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Columns defined within this model. */ + @Attribute + @Singular + SortedSet sapAnalyticsCloudColumns; + + /** 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. */ + @Attribute + String sapAnalyticsCloudDataAccessMode; + + /** Folder containing this model. */ + @Attribute + ISapAnalyticsCloudFolder sapAnalyticsCloudFolder; + + /** Host of the remote system a live model reads from. Empty for imported models. */ + @Attribute + String sapAnalyticsCloudLiveConnectionHost; + + /** Identifier of the remote connection a live model reads from. Empty for imported models. */ + @Attribute + String sapAnalyticsCloudLiveConnectionId; + + /** Simple name of the remote connection a live model reads from. Empty for imported models. */ + @Attribute + String sapAnalyticsCloudLiveConnectionName; + + /** Port of the remote system a live model reads from. Empty for imported models. */ + @Attribute + Integer sapAnalyticsCloudLiveConnectionPort; + + /** Protocol used to reach the remote system a live model reads from, such as HTTPS. Empty for imported models. */ + @Attribute + String sapAnalyticsCloudLiveConnectionProtocol; + + /** Type of the remote system a live model reads from, such as DWC for SAP Datasphere. Empty for imported models. */ + @Attribute + String sapAnalyticsCloudLiveConnectionSystemType; + + /** Type of the remote connection a live model reads from, such as DIRECT. Empty for imported models. */ + @Attribute + String sapAnalyticsCloudLiveConnectionType; + + /** Model identifier reported by the SAP Analytics Cloud tenant APIs, which differs from the file-repository resource identifier for live models. */ + @Attribute + String sapAnalyticsCloudModelId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudModelKind; + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + @Attribute + String sapAnalyticsCloudObjectId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderQualifiedName; + + /** Identifier of the OData provider that exposes this model's metadata. This is the key that joins a model to its columns. */ + @Attribute + String sapAnalyticsCloudProviderId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudRepositoryPartition; + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + @Attribute + String sapAnalyticsCloudResourceId; + + /** Number of SAP Analytics Cloud stories that consume this model, as reported by the source. */ + @Attribute + Long sapAnalyticsCloudStoryCount; + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceId; + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceName; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + @Attribute + Long sapFieldCount; + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + @Attribute + Integer sapFieldOrder; + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + @Attribute + String sapLogicalName; + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + @Attribute + String sapPackageName; + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + @Attribute + String sapTechnicalName; + + /** + * Builds the minimal object necessary to create a relationship to a SapAnalyticsCloudModel, from a potentially + * more-complete SapAnalyticsCloudModel object. + * + * @return the minimal object necessary to relate to the SapAnalyticsCloudModel + * @throws InvalidRequestException if any of the minimal set of required properties for a SapAnalyticsCloudModel relationship are not found in the initial object + */ + @Override + public SapAnalyticsCloudModel trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudModel assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) SapAnalyticsCloudModel assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapAnalyticsCloudModel assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudModel assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) SapAnalyticsCloudModels will be included + * @return a fluent search that includes all SapAnalyticsCloudModel assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a SapAnalyticsCloudModel by GUID. Use this to create a relationship to this SapAnalyticsCloudModel, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapAnalyticsCloudModel to reference + * @return reference to a SapAnalyticsCloudModel that can be used for defining a relationship to a SapAnalyticsCloudModel + */ + public static SapAnalyticsCloudModel refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudModel by GUID. Use this to create a relationship to this SapAnalyticsCloudModel, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapAnalyticsCloudModel to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudModel that can be used for defining a relationship to a SapAnalyticsCloudModel + */ + public static SapAnalyticsCloudModel refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudModel._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapAnalyticsCloudModel by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudModel, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudModel to reference + * @return reference to a SapAnalyticsCloudModel that can be used for defining a relationship to a SapAnalyticsCloudModel + */ + public static SapAnalyticsCloudModel refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudModel by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudModel, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudModel to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudModel that can be used for defining a relationship to a SapAnalyticsCloudModel + */ + public static SapAnalyticsCloudModel refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudModel._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapAnalyticsCloudModel by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudModel to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapAnalyticsCloudModel, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudModel does not exist or the provided GUID is not a SapAnalyticsCloudModel + */ + @JsonIgnore + public static SapAnalyticsCloudModel get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapAnalyticsCloudModel by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudModel to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full SapAnalyticsCloudModel, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudModel does not exist or the provided GUID is not a SapAnalyticsCloudModel + */ + @JsonIgnore + public static SapAnalyticsCloudModel get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof SapAnalyticsCloudModel) { + return (SapAnalyticsCloudModel) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof SapAnalyticsCloudModel) { + return (SapAnalyticsCloudModel) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapAnalyticsCloudModel by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudModel to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudModel, including any relationships + * @return the requested SapAnalyticsCloudModel, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudModel does not exist or the provided GUID is not a SapAnalyticsCloudModel + */ + @JsonIgnore + public static SapAnalyticsCloudModel get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapAnalyticsCloudModel by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudModel to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudModel, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapAnalyticsCloudModel + * @return the requested SapAnalyticsCloudModel, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudModel does not exist or the provided GUID is not a SapAnalyticsCloudModel + */ + @JsonIgnore + public static SapAnalyticsCloudModel get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = SapAnalyticsCloudModel.select(client) + .where(SapAnalyticsCloudModel.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof SapAnalyticsCloudModel) { + return (SapAnalyticsCloudModel) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapAnalyticsCloudModel.select(client) + .where(SapAnalyticsCloudModel.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof SapAnalyticsCloudModel) { + return (SapAnalyticsCloudModel) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapAnalyticsCloudModel to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapAnalyticsCloudModel + * @return true if the SapAnalyticsCloudModel is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a SapAnalyticsCloudModel. + * + * @param qualifiedName of the SapAnalyticsCloudModel + * @param name of the SapAnalyticsCloudModel + * @return the minimal request necessary to update the SapAnalyticsCloudModel, as a builder + */ + public static SapAnalyticsCloudModelBuilder updater(String qualifiedName, String name) { + return SapAnalyticsCloudModel._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a SapAnalyticsCloudModel, + * from a potentially more-complete SapAnalyticsCloudModel object. + * + * @return the minimal object necessary to update the SapAnalyticsCloudModel, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapAnalyticsCloudModel are not present in the initial object + */ + @Override + public SapAnalyticsCloudModelBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class SapAnalyticsCloudModelBuilder< + C extends SapAnalyticsCloudModel, B extends SapAnalyticsCloudModelBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudModel + * @param name of the SapAnalyticsCloudModel + * @return the updated SapAnalyticsCloudModel, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudModel) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudModel + * @param name of the SapAnalyticsCloudModel + * @return the updated SapAnalyticsCloudModel, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudModel) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudModel's owners + * @param qualifiedName of the SapAnalyticsCloudModel + * @param name of the SapAnalyticsCloudModel + * @return the updated SapAnalyticsCloudModel, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudModel) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudModel's certificate + * @param qualifiedName of the SapAnalyticsCloudModel + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapAnalyticsCloudModel, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapAnalyticsCloudModel) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudModel's certificate + * @param qualifiedName of the SapAnalyticsCloudModel + * @param name of the SapAnalyticsCloudModel + * @return the updated SapAnalyticsCloudModel, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudModel) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudModel's announcement + * @param qualifiedName of the SapAnalyticsCloudModel + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapAnalyticsCloudModel) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan client from which to remove the SapAnalyticsCloudModel's announcement + * @param qualifiedName of the SapAnalyticsCloudModel + * @param name of the SapAnalyticsCloudModel + * @return the updated SapAnalyticsCloudModel, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudModel) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant on which to replace the SapAnalyticsCloudModel's assigned terms + * @param qualifiedName for the SapAnalyticsCloudModel + * @param name human-readable name of the SapAnalyticsCloudModel + * @param terms the list of terms to replace on the SapAnalyticsCloudModel, or null to remove all terms from the SapAnalyticsCloudModel + * @return the SapAnalyticsCloudModel that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudModel replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapAnalyticsCloudModel) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapAnalyticsCloudModel, without replacing existing terms linked to the SapAnalyticsCloudModel. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudModel's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the SapAnalyticsCloudModel + * @param qualifiedName for the SapAnalyticsCloudModel + * @param terms the list of terms to append to the SapAnalyticsCloudModel + * @return the SapAnalyticsCloudModel that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudModel appendTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudModel) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapAnalyticsCloudModel, without replacing all existing terms linked to the SapAnalyticsCloudModel. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudModel's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the SapAnalyticsCloudModel + * @param qualifiedName for the SapAnalyticsCloudModel + * @param terms the list of terms to remove from the SapAnalyticsCloudModel, which must be referenced by GUID + * @return the SapAnalyticsCloudModel that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudModel removeTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudModel) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudModel, without replacing existing Atlan tags linked to the SapAnalyticsCloudModel. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudModel's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudModel + * @param qualifiedName of the SapAnalyticsCloudModel + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudModel + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapAnalyticsCloudModel appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapAnalyticsCloudModel) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudModel, without replacing existing Atlan tags linked to the SapAnalyticsCloudModel. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudModel's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudModel + * @param qualifiedName of the SapAnalyticsCloudModel + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudModel + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapAnalyticsCloudModel appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapAnalyticsCloudModel) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapAnalyticsCloudModel. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapAnalyticsCloudModel + * @param qualifiedName of the SapAnalyticsCloudModel + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the SapAnalyticsCloudModel + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudStory.java b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudStory.java new file mode 100644 index 0000000000..82e412017a --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapAnalyticsCloudStory.java @@ -0,0 +1,665 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapAnalyticsCloudStory extends Asset + implements ISapAnalyticsCloudStory, ISapAnalyticsCloud, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapAnalyticsCloudStory"; + + /** Fixed typeName for SapAnalyticsCloudStorys. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Unique identifier of the dataset this asset belongs to. */ + @Attribute + String catalogDatasetGuid; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Folder containing this story. */ + @Attribute + ISapAnalyticsCloudFolder sapAnalyticsCloudFolder; + + /** Whether this story is one of the samples shipped with SAP Analytics Cloud rather than tenant content. */ + @Attribute + Boolean sapAnalyticsCloudIsSample; + + /** Underlying object identifier reported by the SAP Analytics Cloud file repository for this asset. */ + @Attribute + String sapAnalyticsCloudObjectId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudParentFolderQualifiedName; + + /** 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. */ + @Attribute + String sapAnalyticsCloudRepositoryPartition; + + /** Identifier of this asset in the SAP Analytics Cloud file repository. Stable across renames and used by the source APIs to address the resource. */ + @Attribute + String sapAnalyticsCloudResourceId; + + /** 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. */ + @Attribute + String sapAnalyticsCloudStoryKind; + + /** Identifier of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceId; + + /** Simple name of the SAP Analytics Cloud workspace that owns this asset. */ + @Attribute + String sapAnalyticsCloudWorkspaceName; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** Represents the total number of fields, columns, or child assets present in a given SAP asset. */ + @Attribute + Long sapFieldCount; + + /** Indicates the sequential position of a field, column, or child asset within its parent SAP asset, starting from 1. */ + @Attribute + Integer sapFieldOrder; + + /** Logical, business-friendly identifier for SAP data objects, aligned with business terminology and concepts. */ + @Attribute + String sapLogicalName; + + /** Name of the SAP package, representing a logical grouping of related SAP data objects. */ + @Attribute + String sapPackageName; + + /** Technical identifier for SAP data objects, used for integration and internal reference. */ + @Attribute + String sapTechnicalName; + + /** + * Builds the minimal object necessary to create a relationship to a SapAnalyticsCloudStory, from a potentially + * more-complete SapAnalyticsCloudStory object. + * + * @return the minimal object necessary to relate to the SapAnalyticsCloudStory + * @throws InvalidRequestException if any of the minimal set of required properties for a SapAnalyticsCloudStory relationship are not found in the initial object + */ + @Override + public SapAnalyticsCloudStory trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudStory assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) SapAnalyticsCloudStory assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapAnalyticsCloudStory assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapAnalyticsCloudStory assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) SapAnalyticsCloudStorys will be included + * @return a fluent search that includes all SapAnalyticsCloudStory assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a SapAnalyticsCloudStory by GUID. Use this to create a relationship to this SapAnalyticsCloudStory, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapAnalyticsCloudStory to reference + * @return reference to a SapAnalyticsCloudStory that can be used for defining a relationship to a SapAnalyticsCloudStory + */ + public static SapAnalyticsCloudStory refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudStory by GUID. Use this to create a relationship to this SapAnalyticsCloudStory, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapAnalyticsCloudStory to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudStory that can be used for defining a relationship to a SapAnalyticsCloudStory + */ + public static SapAnalyticsCloudStory refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudStory._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapAnalyticsCloudStory by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudStory, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudStory to reference + * @return reference to a SapAnalyticsCloudStory that can be used for defining a relationship to a SapAnalyticsCloudStory + */ + public static SapAnalyticsCloudStory refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapAnalyticsCloudStory by qualifiedName. Use this to create a relationship to this SapAnalyticsCloudStory, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapAnalyticsCloudStory to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapAnalyticsCloudStory that can be used for defining a relationship to a SapAnalyticsCloudStory + */ + public static SapAnalyticsCloudStory refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapAnalyticsCloudStory._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapAnalyticsCloudStory by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudStory to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapAnalyticsCloudStory, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudStory does not exist or the provided GUID is not a SapAnalyticsCloudStory + */ + @JsonIgnore + public static SapAnalyticsCloudStory get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapAnalyticsCloudStory by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudStory to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full SapAnalyticsCloudStory, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudStory does not exist or the provided GUID is not a SapAnalyticsCloudStory + */ + @JsonIgnore + public static SapAnalyticsCloudStory get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof SapAnalyticsCloudStory) { + return (SapAnalyticsCloudStory) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof SapAnalyticsCloudStory) { + return (SapAnalyticsCloudStory) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapAnalyticsCloudStory by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudStory to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudStory, including any relationships + * @return the requested SapAnalyticsCloudStory, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudStory does not exist or the provided GUID is not a SapAnalyticsCloudStory + */ + @JsonIgnore + public static SapAnalyticsCloudStory get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapAnalyticsCloudStory by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapAnalyticsCloudStory to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapAnalyticsCloudStory, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapAnalyticsCloudStory + * @return the requested SapAnalyticsCloudStory, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapAnalyticsCloudStory does not exist or the provided GUID is not a SapAnalyticsCloudStory + */ + @JsonIgnore + public static SapAnalyticsCloudStory get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = SapAnalyticsCloudStory.select(client) + .where(SapAnalyticsCloudStory.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof SapAnalyticsCloudStory) { + return (SapAnalyticsCloudStory) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapAnalyticsCloudStory.select(client) + .where(SapAnalyticsCloudStory.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof SapAnalyticsCloudStory) { + return (SapAnalyticsCloudStory) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapAnalyticsCloudStory to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapAnalyticsCloudStory + * @return true if the SapAnalyticsCloudStory is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a SapAnalyticsCloudStory. + * + * @param qualifiedName of the SapAnalyticsCloudStory + * @param name of the SapAnalyticsCloudStory + * @return the minimal request necessary to update the SapAnalyticsCloudStory, as a builder + */ + public static SapAnalyticsCloudStoryBuilder updater(String qualifiedName, String name) { + return SapAnalyticsCloudStory._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a SapAnalyticsCloudStory, + * from a potentially more-complete SapAnalyticsCloudStory object. + * + * @return the minimal object necessary to update the SapAnalyticsCloudStory, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapAnalyticsCloudStory are not present in the initial object + */ + @Override + public SapAnalyticsCloudStoryBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class SapAnalyticsCloudStoryBuilder< + C extends SapAnalyticsCloudStory, B extends SapAnalyticsCloudStoryBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudStory + * @param name of the SapAnalyticsCloudStory + * @return the updated SapAnalyticsCloudStory, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudStory) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapAnalyticsCloudStory + * @param name of the SapAnalyticsCloudStory + * @return the updated SapAnalyticsCloudStory, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudStory) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudStory's owners + * @param qualifiedName of the SapAnalyticsCloudStory + * @param name of the SapAnalyticsCloudStory + * @return the updated SapAnalyticsCloudStory, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudStory) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudStory's certificate + * @param qualifiedName of the SapAnalyticsCloudStory + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapAnalyticsCloudStory, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapAnalyticsCloudStory) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant from which to remove the SapAnalyticsCloudStory's certificate + * @param qualifiedName of the SapAnalyticsCloudStory + * @param name of the SapAnalyticsCloudStory + * @return the updated SapAnalyticsCloudStory, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudStory) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant on which to update the SapAnalyticsCloudStory's announcement + * @param qualifiedName of the SapAnalyticsCloudStory + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapAnalyticsCloudStory) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan client from which to remove the SapAnalyticsCloudStory's announcement + * @param qualifiedName of the SapAnalyticsCloudStory + * @param name of the SapAnalyticsCloudStory + * @return the updated SapAnalyticsCloudStory, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapAnalyticsCloudStory) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant on which to replace the SapAnalyticsCloudStory's assigned terms + * @param qualifiedName for the SapAnalyticsCloudStory + * @param name human-readable name of the SapAnalyticsCloudStory + * @param terms the list of terms to replace on the SapAnalyticsCloudStory, or null to remove all terms from the SapAnalyticsCloudStory + * @return the SapAnalyticsCloudStory that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapAnalyticsCloudStory replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapAnalyticsCloudStory) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapAnalyticsCloudStory, without replacing existing terms linked to the SapAnalyticsCloudStory. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudStory's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the SapAnalyticsCloudStory + * @param qualifiedName for the SapAnalyticsCloudStory + * @param terms the list of terms to append to the SapAnalyticsCloudStory + * @return the SapAnalyticsCloudStory that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudStory appendTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudStory) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapAnalyticsCloudStory, without replacing all existing terms linked to the SapAnalyticsCloudStory. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudStory's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the SapAnalyticsCloudStory + * @param qualifiedName for the SapAnalyticsCloudStory + * @param terms the list of terms to remove from the SapAnalyticsCloudStory, which must be referenced by GUID + * @return the SapAnalyticsCloudStory that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapAnalyticsCloudStory removeTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapAnalyticsCloudStory) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudStory, without replacing existing Atlan tags linked to the SapAnalyticsCloudStory. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudStory's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudStory + * @param qualifiedName of the SapAnalyticsCloudStory + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudStory + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapAnalyticsCloudStory appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapAnalyticsCloudStory) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapAnalyticsCloudStory, without replacing existing Atlan tags linked to the SapAnalyticsCloudStory. + * Note: this operation must make two API calls — one to retrieve the SapAnalyticsCloudStory's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapAnalyticsCloudStory + * @param qualifiedName of the SapAnalyticsCloudStory + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated SapAnalyticsCloudStory + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapAnalyticsCloudStory appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapAnalyticsCloudStory) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapAnalyticsCloudStory. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapAnalyticsCloudStory + * @param qualifiedName of the SapAnalyticsCloudStory + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the SapAnalyticsCloudStory + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/SapDatasphereReplicationFlow.java b/sdk/src/main/java/com/atlan/model/assets/SapDatasphereReplicationFlow.java new file mode 100644 index 0000000000..5afed91bbb --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapDatasphereReplicationFlow.java @@ -0,0 +1,708 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import com.atlan.AtlanClient; +import com.atlan.exception.AtlanException; +import com.atlan.exception.ErrorCode; +import com.atlan.exception.InvalidRequestException; +import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AtlanAnnouncementType; +import com.atlan.model.enums.CertificateStatus; +import com.atlan.model.fields.AtlanField; +import com.atlan.model.relations.Reference; +import com.atlan.model.relations.UniqueAttributes; +import com.atlan.model.search.FluentSearch; +import com.atlan.util.StringUtils; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.processing.Generated; +import lombok.*; +import lombok.experimental.SuperBuilder; +import lombok.extern.slf4j.Slf4j; + +/** + * 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. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapDatasphereReplicationFlow extends Asset + implements ISapDatasphereReplicationFlow, IFlowControlOperation, ISAP, IFlow, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapDatasphereReplicationFlow"; + + /** Fixed typeName for SapDatasphereReplicationFlows. */ + @Getter(onMethod_ = {@Override}) + @Builder.Default + String typeName = TYPE_NAME; + + /** Control operation that controls the execution of this control operation. */ + @Attribute + IFlowControlOperation flowControlledBy; + + /** Control operations whose execution is controlled by this control operation. */ + @Attribute + @Singular + SortedSet flowControlledOperations; + + /** Individual data flows (processes) orchestrated by this control operation. */ + @Attribute + @Singular + SortedSet flowDataResults; + + /** Optional error message of the flow run. */ + @Attribute + String flowErrorMessage; + + /** Date and time at which this point in the data processing or orchestration finished. */ + @Attribute + @Date + Long flowFinishedAt; + + /** Simple name of the folder in which this asset is contained. */ + @Attribute + String flowFolderName; + + /** Unique name of the folder in which this asset is contained. */ + @Attribute + String flowFolderQualifiedName; + + /** Unique ID for this flow asset, which will remain constant throughout the lifecycle of the asset. */ + @Attribute + String flowId; + + /** Input parameters for the flow run. */ + @Attribute + @Singular + Map flowInputParameters; + + /** Control operations that are configured to execute before this one. */ + @Attribute + @Singular + SortedSet flowPredecessors; + + /** Simple name of the project in which this asset is contained. */ + @Attribute + String flowProjectName; + + /** Unique name of the project in which this asset is contained. */ + @Attribute + String flowProjectQualifiedName; + + /** Simple name of the reusable grouping of operations in which this ephemeral data is contained. */ + @Attribute + String flowReusableUnitName; + + /** Unique name of the reusable grouping of operations in which this ephemeral data is contained. */ + @Attribute + String flowReusableUnitQualifiedName; + + /** Unique ID of the flow run, which could change on subsequent runs of the same flow. */ + @Attribute + String flowRunId; + + /** Schedule for this point in the data processing or orchestration. */ + @Attribute + String flowSchedule; + + /** Date and time at which this point in the data processing or orchestration started. */ + @Attribute + @Date + Long flowStartedAt; + + /** Overall status of this point in the data processing or orchestration. */ + @Attribute + String flowStatus; + + /** Control operations that are configured to execute only after this one. */ + @Attribute + @Singular + SortedSet flowSuccessors; + + /** Tasks to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToAirflowTasks; + + /** Processes to which this asset provides input. */ + @Attribute + @Singular + SortedSet inputToProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet inputToSparkJobs; + + /** Attributes implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedAttributes; + + /** Entities implemented by this asset. */ + @Attribute + @Singular + SortedSet modelImplementedEntities; + + /** Tasks from which this asset is output. */ + @Attribute + @Singular + SortedSet outputFromAirflowTasks; + + /** Processes from which this asset is produced as output. */ + @Attribute + @Singular + SortedSet outputFromProcesses; + + /** TBC */ + @Attribute + @Singular + SortedSet outputFromSparkJobs; + + /** Partial fields contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildFields; + + /** Partial objects contained in the asset. */ + @Attribute + @Singular + SortedSet partialChildObjects; + + /** Number of datasets moved by this replication flow. */ + @Attribute + Long sapDatasphereReplicationFlowDatasetCount; + + /** Type of load performed by this replication flow, such as INITIAL or INITIAL_AND_DELTA. */ + @Attribute + String sapDatasphereReplicationFlowLoadType; + + /** 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. */ + @Attribute + String sapDatasphereReplicationFlowSourceConnection; + + /** Simple name of the Datasphere space in which this replication flow runs and creates its target tables. */ + @Attribute + String sapDatasphereReplicationFlowSpaceName; + + /** Unique name of the Datasphere space in which this replication flow runs and creates its target tables. */ + @Attribute + String sapDatasphereReplicationFlowSpaceQualifiedName; + + /** Name of the target connection into which this replication flow writes data, such as the local Datasphere repository. */ + @Attribute + String sapDatasphereReplicationFlowTargetConnection; + + /** Schema (Datasphere space) in which this replication flow creates its target tables. */ + @Attribute + ISchema sapDatasphereSchema; + + /** + * Builds the minimal object necessary to create a relationship to a SapDatasphereReplicationFlow, from a potentially + * more-complete SapDatasphereReplicationFlow object. + * + * @return the minimal object necessary to relate to the SapDatasphereReplicationFlow + * @throws InvalidRequestException if any of the minimal set of required properties for a SapDatasphereReplicationFlow relationship are not found in the initial object + */ + @Override + public SapDatasphereReplicationFlow trimToReference() throws InvalidRequestException { + if (this.getGuid() != null && !this.getGuid().isEmpty()) { + return refByGuid(this.getGuid()); + } + if (this.getQualifiedName() != null && !this.getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getQualifiedName()); + } + if (this.getUniqueAttributes() != null + && this.getUniqueAttributes().getQualifiedName() != null + && !this.getUniqueAttributes().getQualifiedName().isEmpty()) { + return refByQualifiedName(this.getUniqueAttributes().getQualifiedName()); + } + throw new InvalidRequestException( + ErrorCode.MISSING_REQUIRED_RELATIONSHIP_PARAM, TYPE_NAME, "guid, qualifiedName"); + } + + /** + * Start a fluent search that will return all SapDatasphereReplicationFlow assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. Only active (non-archived) SapDatasphereReplicationFlow assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapDatasphereReplicationFlow assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapDatasphereReplicationFlow assets. + * Additional conditions can be chained onto the returned search before any + * asset retrieval is attempted, ensuring all conditions are pushed-down for + * optimal retrieval. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @param includeArchived when true, archived (soft-deleted) SapDatasphereReplicationFlows will be included + * @return a fluent search that includes all SapDatasphereReplicationFlow assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client, boolean includeArchived) { + FluentSearch.FluentSearchBuilder builder = + FluentSearch.builder(client).where(Asset.TYPE_NAME.eq(TYPE_NAME)); + if (!includeArchived) { + builder.active(); + } + return builder; + } + + /** + * Reference to a SapDatasphereReplicationFlow by GUID. Use this to create a relationship to this SapDatasphereReplicationFlow, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapDatasphereReplicationFlow to reference + * @return reference to a SapDatasphereReplicationFlow that can be used for defining a relationship to a SapDatasphereReplicationFlow + */ + public static SapDatasphereReplicationFlow refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapDatasphereReplicationFlow by GUID. Use this to create a relationship to this SapDatasphereReplicationFlow, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapDatasphereReplicationFlow to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapDatasphereReplicationFlow that can be used for defining a relationship to a SapDatasphereReplicationFlow + */ + public static SapDatasphereReplicationFlow refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapDatasphereReplicationFlow._internal() + .guid(guid) + .semantic(semantic) + .build(); + } + + /** + * Reference to a SapDatasphereReplicationFlow by qualifiedName. Use this to create a relationship to this SapDatasphereReplicationFlow, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapDatasphereReplicationFlow to reference + * @return reference to a SapDatasphereReplicationFlow that can be used for defining a relationship to a SapDatasphereReplicationFlow + */ + public static SapDatasphereReplicationFlow refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapDatasphereReplicationFlow by qualifiedName. Use this to create a relationship to this SapDatasphereReplicationFlow, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapDatasphereReplicationFlow to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapDatasphereReplicationFlow that can be used for defining a relationship to a SapDatasphereReplicationFlow + */ + public static SapDatasphereReplicationFlow refByQualifiedName( + String qualifiedName, Reference.SaveSemantic semantic) { + return SapDatasphereReplicationFlow._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapDatasphereReplicationFlow by one of its identifiers, complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapDatasphereReplicationFlow to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapDatasphereReplicationFlow, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapDatasphereReplicationFlow does not exist or the provided GUID is not a SapDatasphereReplicationFlow + */ + @JsonIgnore + public static SapDatasphereReplicationFlow get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapDatasphereReplicationFlow by one of its identifiers, optionally complete with all of its relationships. + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapDatasphereReplicationFlow to retrieve, either its GUID or its full qualifiedName + * @param includeAllRelationships if true, all the asset's relationships will also be retrieved; if false, no relationships will be retrieved + * @return the requested full SapDatasphereReplicationFlow, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapDatasphereReplicationFlow does not exist or the provided GUID is not a SapDatasphereReplicationFlow + */ + @JsonIgnore + public static SapDatasphereReplicationFlow get(AtlanClient client, String id, boolean includeAllRelationships) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Asset asset = Asset.get(client, id, includeAllRelationships); + if (asset == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset instanceof SapDatasphereReplicationFlow) { + return (SapDatasphereReplicationFlow) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Asset asset = Asset.get(client, TYPE_NAME, id, includeAllRelationships); + if (asset instanceof SapDatasphereReplicationFlow) { + return (SapDatasphereReplicationFlow) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapDatasphereReplicationFlow by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapDatasphereReplicationFlow to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapDatasphereReplicationFlow, including any relationships + * @return the requested SapDatasphereReplicationFlow, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapDatasphereReplicationFlow does not exist or the provided GUID is not a SapDatasphereReplicationFlow + */ + @JsonIgnore + public static SapDatasphereReplicationFlow get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapDatasphereReplicationFlow by one of its identifiers, with only the requested attributes (and relationships). + * + * @param client connectivity to the Atlan tenant from which to retrieve the asset + * @param id of the SapDatasphereReplicationFlow to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapDatasphereReplicationFlow, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapDatasphereReplicationFlow + * @return the requested SapDatasphereReplicationFlow, with only its minimal information and the requested attributes (and relationships) + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapDatasphereReplicationFlow does not exist or the provided GUID is not a SapDatasphereReplicationFlow + */ + @JsonIgnore + public static SapDatasphereReplicationFlow get( + AtlanClient client, + String id, + Collection attributes, + Collection attributesOnRelated) + throws AtlanException { + if (id == null) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, "(null)"); + } else if (StringUtils.isUUID(id)) { + Optional asset = SapDatasphereReplicationFlow.select(client) + .where(SapDatasphereReplicationFlow.GUID.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id); + } else if (asset.get() instanceof SapDatasphereReplicationFlow) { + return (SapDatasphereReplicationFlow) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapDatasphereReplicationFlow.select(client) + .where(SapDatasphereReplicationFlow.QUALIFIED_NAME.eq(id)) + .includesOnResults(attributes) + .includesOnRelations(attributesOnRelated) + .includeRelationshipAttributes(true) + .pageSize(1) + .stream() + .findFirst(); + if (!asset.isPresent()) { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } else if (asset.get() instanceof SapDatasphereReplicationFlow) { + return (SapDatasphereReplicationFlow) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapDatasphereReplicationFlow to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapDatasphereReplicationFlow + * @return true if the SapDatasphereReplicationFlow is now active, and false otherwise + * @throws AtlanException on any API problems + */ + public static boolean restore(AtlanClient client, String qualifiedName) throws AtlanException { + return Asset.restore(client, TYPE_NAME, qualifiedName); + } + + /** + * Builds the minimal object necessary to update a SapDatasphereReplicationFlow. + * + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param name of the SapDatasphereReplicationFlow + * @return the minimal request necessary to update the SapDatasphereReplicationFlow, as a builder + */ + public static SapDatasphereReplicationFlowBuilder updater(String qualifiedName, String name) { + return SapDatasphereReplicationFlow._internal() + .guid("-" + ThreadLocalRandom.current().nextLong(0, Long.MAX_VALUE - 1)) + .qualifiedName(qualifiedName) + .name(name); + } + + /** + * Builds the minimal object necessary to apply an update to a SapDatasphereReplicationFlow, + * from a potentially more-complete SapDatasphereReplicationFlow object. + * + * @return the minimal object necessary to update the SapDatasphereReplicationFlow, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapDatasphereReplicationFlow are not present in the initial object + */ + @Override + public SapDatasphereReplicationFlowBuilder trimToRequired() throws InvalidRequestException { + Map map = new HashMap<>(); + map.put("qualifiedName", this.getQualifiedName()); + map.put("name", this.getName()); + validateRequired(TYPE_NAME, map); + return updater(this.getQualifiedName(), this.getName()); + } + + public abstract static class SapDatasphereReplicationFlowBuilder< + C extends SapDatasphereReplicationFlow, B extends SapDatasphereReplicationFlowBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param name of the SapDatasphereReplicationFlow + * @return the updated SapDatasphereReplicationFlow, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param name of the SapDatasphereReplicationFlow + * @return the updated SapDatasphereReplicationFlow, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow removeUserDescription( + AtlanClient client, String qualifiedName, String name) throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant from which to remove the SapDatasphereReplicationFlow's owners + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param name of the SapDatasphereReplicationFlow + * @return the updated SapDatasphereReplicationFlow, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant on which to update the SapDatasphereReplicationFlow's certificate + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapDatasphereReplicationFlow, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapDatasphereReplicationFlow) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant from which to remove the SapDatasphereReplicationFlow's certificate + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param name of the SapDatasphereReplicationFlow + * @return the updated SapDatasphereReplicationFlow, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant on which to update the SapDatasphereReplicationFlow's announcement + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param type type of announcement to set + * @param title (optional) title of the announcement to set (or null for no title) + * @param message (optional) message of the announcement to set (or null for no message) + * @return the result of the update, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapDatasphereReplicationFlow) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan client from which to remove the SapDatasphereReplicationFlow's announcement + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param name of the SapDatasphereReplicationFlow + * @return the updated SapDatasphereReplicationFlow, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant on which to replace the SapDatasphereReplicationFlow's assigned terms + * @param qualifiedName for the SapDatasphereReplicationFlow + * @param name human-readable name of the SapDatasphereReplicationFlow + * @param terms the list of terms to replace on the SapDatasphereReplicationFlow, or null to remove all terms from the SapDatasphereReplicationFlow + * @return the SapDatasphereReplicationFlow that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapDatasphereReplicationFlow replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapDatasphereReplicationFlow, without replacing existing terms linked to the SapDatasphereReplicationFlow. + * Note: this operation must make two API calls — one to retrieve the SapDatasphereReplicationFlow's existing terms, + * and a second to append the new terms. + * + * @param client connectivity to the Atlan tenant on which to append terms to the SapDatasphereReplicationFlow + * @param qualifiedName for the SapDatasphereReplicationFlow + * @param terms the list of terms to append to the SapDatasphereReplicationFlow + * @return the SapDatasphereReplicationFlow that was updated (note that it will NOT contain details of the appended terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapDatasphereReplicationFlow appendTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapDatasphereReplicationFlow, without replacing all existing terms linked to the SapDatasphereReplicationFlow. + * Note: this operation must make two API calls — one to retrieve the SapDatasphereReplicationFlow's existing terms, + * and a second to remove the provided terms. + * + * @param client connectivity to the Atlan tenant from which to remove terms from the SapDatasphereReplicationFlow + * @param qualifiedName for the SapDatasphereReplicationFlow + * @param terms the list of terms to remove from the SapDatasphereReplicationFlow, which must be referenced by GUID + * @return the SapDatasphereReplicationFlow that was updated (note that it will NOT contain details of the resulting terms) + * @throws AtlanException on any API problems + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAssignedTerm(GlossaryTerm)} + */ + @Deprecated + public static SapDatasphereReplicationFlow removeTerms( + AtlanClient client, String qualifiedName, List terms) throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapDatasphereReplicationFlow, without replacing existing Atlan tags linked to the SapDatasphereReplicationFlow. + * Note: this operation must make two API calls — one to retrieve the SapDatasphereReplicationFlow's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapDatasphereReplicationFlow + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapDatasphereReplicationFlow + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapDatasphereReplicationFlow appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapDatasphereReplicationFlow, without replacing existing Atlan tags linked to the SapDatasphereReplicationFlow. + * Note: this operation must make two API calls — one to retrieve the SapDatasphereReplicationFlow's existing Atlan tags, + * and a second to append the new Atlan tags. + * + * @param client connectivity to the Atlan tenant on which to append Atlan tags to the SapDatasphereReplicationFlow + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param atlanTagNames human-readable names of the Atlan tags to add + * @param propagate whether to propagate the Atlan tag (true) or not (false) + * @param removePropagationsOnDelete whether to remove the propagated Atlan tags when the Atlan tag is removed from this asset (true) or not (false) + * @param restrictLineagePropagation whether to avoid propagating through lineage (true) or do propagate through lineage (false) + * @throws AtlanException on any API problems + * @return the updated SapDatasphereReplicationFlow + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapDatasphereReplicationFlow appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapDatasphereReplicationFlow) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapDatasphereReplicationFlow. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapDatasphereReplicationFlow + * @param qualifiedName of the SapDatasphereReplicationFlow + * @param atlanTagName human-readable name of the Atlan tag to remove + * @throws AtlanException on any API problems, or if the Atlan tag does not exist on the SapDatasphereReplicationFlow + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#removeAtlanTag(String)} + */ + @Deprecated + public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) + throws AtlanException { + Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName); + } +} diff --git a/sdk/src/main/java/com/atlan/model/assets/SapErpTable.java b/sdk/src/main/java/com/atlan/model/assets/SapErpTable.java index a119092a95..f31c7974ac 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SapErpTable.java +++ b/sdk/src/main/java/com/atlan/model/assets/SapErpTable.java @@ -119,6 +119,11 @@ public class SapErpTable extends Asset implements ISapErpTable, ISAP, ICatalog, @Attribute ISapErpComponent sapErpComponent; + /** SAP ERP Tables that are related to this SAP ERP Table. */ + @Attribute + @Singular + SortedSet sapErpRelatedTables; + /** Defines the delivery class of the SAP ERP table, determining how the table's data is transported and managed during system updates. */ @Attribute String sapErpTableDeliveryClass; diff --git a/sdk/src/main/java/com/atlan/model/assets/Schema.java b/sdk/src/main/java/com/atlan/model/assets/Schema.java index 5bc2ffcff3..f61244da6d 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Schema.java +++ b/sdk/src/main/java/com/atlan/model/assets/Schema.java @@ -210,6 +210,11 @@ public class Schema extends Asset implements ISchema, ISQL, ICatalog, IAsset, IR @Singular("putQueryUserMap") Map queryUserMap; + /** SAP Datasphere replication flows that create tables within this schema (Datasphere space). */ + @Attribute + @Singular + SortedSet sapDatasphereReplicationFlows; + /** External location of this schema, for example: an S3 object location. */ @Attribute String schemaExternalLocation; diff --git a/sdk/src/main/java/com/atlan/model/assets/Skill.java b/sdk/src/main/java/com/atlan/model/assets/Skill.java index 38ec945e24..bc605ce6df 100644 --- a/sdk/src/main/java/com/atlan/model/assets/Skill.java +++ b/sdk/src/main/java/com/atlan/model/assets/Skill.java @@ -8,6 +8,7 @@ import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; import com.atlan.model.enums.AgenticLifecycleStatus; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.SkillType; @@ -55,6 +56,10 @@ public class Skill extends Asset implements ISkill, IAgentic, ICatalog, IAsset, @Singular SortedSet agentAgents; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/SkillArtifact.java b/sdk/src/main/java/com/atlan/model/assets/SkillArtifact.java index f47ce7a4fc..d89f17944c 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SkillArtifact.java +++ b/sdk/src/main/java/com/atlan/model/assets/SkillArtifact.java @@ -7,6 +7,7 @@ import com.atlan.exception.ErrorCode; import com.atlan.exception.InvalidRequestException; import com.atlan.exception.NotFoundException; +import com.atlan.model.enums.AgenticSource; import com.atlan.model.enums.AtlanAnnouncementType; import com.atlan.model.enums.CertificateStatus; import com.atlan.model.enums.FileType; @@ -50,6 +51,10 @@ public class SkillArtifact extends Asset @Builder.Default String typeName = TYPE_NAME; + /** Product surface this agentic asset was created from, so agents and skills can be attributed to their originating surface without slug pattern matching (AUT-1074). Mirrors AtlanAppWorkflow.source, which does the same for workflows (AUT-1028). */ + @Attribute + AgenticSource agenticSource; + /** Version of this agentic asset as an epoch-millisecond timestamp. One Atlan entity per (slug, version) tuple. */ @Attribute Long agenticVersion; diff --git a/sdk/src/main/java/com/atlan/model/assets/SqlInsightBusinessQuestion.java b/sdk/src/main/java/com/atlan/model/assets/SqlInsightBusinessQuestion.java index cdd3875fe3..1cc4ab74a9 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SqlInsightBusinessQuestion.java +++ b/sdk/src/main/java/com/atlan/model/assets/SqlInsightBusinessQuestion.java @@ -13,6 +13,7 @@ import com.atlan.model.relations.Reference; import com.atlan.model.relations.UniqueAttributes; import com.atlan.model.search.FluentSearch; +import com.atlan.model.structs.PopularityInsights; import com.atlan.util.StringUtils; import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.Collection; @@ -107,6 +108,15 @@ public class SqlInsightBusinessQuestion extends Asset @Attribute String sqlInsightBusinessQuestionCanonicalSQL; + /** Qualified name of the dataset this business question relates to. */ + @Attribute + String sqlInsightBusinessQuestionDatasetQualifiedName; + + /** Example SQL queries that demonstrate this business question, with usage details. */ + @Attribute + @Singular + List sqlInsightBusinessQuestionExampleQueries; + /** Time (epoch) at which this question was last observed, in milliseconds. */ @Attribute @Date diff --git a/sdk/src/main/java/com/atlan/model/assets/TagAttachment.java b/sdk/src/main/java/com/atlan/model/assets/TagAttachment.java index 66a1ea98bd..3204759840 100644 --- a/sdk/src/main/java/com/atlan/model/assets/TagAttachment.java +++ b/sdk/src/main/java/com/atlan/model/assets/TagAttachment.java @@ -79,6 +79,11 @@ public class TagAttachment extends Asset implements ITagAttachment, ITag, ICatal @Singular SortedSet inputToSparkJobs; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** Name of the classification in Atlan that is mapped to this tag. */ @Attribute @JsonProperty("mappedClassificationName") diff --git a/sdk/src/main/java/com/atlan/model/assets/WorkflowRun.java b/sdk/src/main/java/com/atlan/model/assets/WorkflowRun.java index 30ddc4cec2..7f9880a012 100644 --- a/sdk/src/main/java/com/atlan/model/assets/WorkflowRun.java +++ b/sdk/src/main/java/com/atlan/model/assets/WorkflowRun.java @@ -62,6 +62,11 @@ public class WorkflowRun extends Asset implements IWorkflowRun, IWorkflow, IAsse @Singular SortedSet gcpDataplexAspectTypeMetadataEntities; + /** Knowledge files linked to this asset. */ + @Attribute + @Singular + SortedSet knowledgeLinkedFiles; + /** List of workflow action choices. */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/enums/AgenticSource.java b/sdk/src/main/java/com/atlan/model/enums/AgenticSource.java new file mode 100644 index 0000000000..d9a9c87b34 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/enums/AgenticSource.java @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.enums; + +import com.fasterxml.jackson.annotation.JsonValue; +import javax.annotation.processing.Generated; +import lombok.Getter; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +public enum AgenticSource implements AtlanEnum { + CONTEXT_STUDIO("context_studio"), + ENRICHMENT_STUDIO("enrichment_studio"), + MARKETPLACE("marketplace"), + AUTOMATION_ENGINE("automation_engine"), + UNKNOWN("unknown"), + ; + + @JsonValue + @Getter(onMethod_ = {@Override}) + private final String value; + + AgenticSource(String value) { + this.value = value; + } + + public static AgenticSource fromValue(String value) { + for (AgenticSource b : AgenticSource.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } +} diff --git a/sdk/src/main/java/com/atlan/model/enums/AtlanAppDeploymentOperation.java b/sdk/src/main/java/com/atlan/model/enums/AtlanAppDeploymentOperation.java index d15f023bdc..ab11b4d304 100644 --- a/sdk/src/main/java/com/atlan/model/enums/AtlanAppDeploymentOperation.java +++ b/sdk/src/main/java/com/atlan/model/enums/AtlanAppDeploymentOperation.java @@ -11,6 +11,7 @@ public enum AtlanAppDeploymentOperation implements AtlanEnum { INSTALL("INSTALL"), UPGRADE("UPGRADE"), DOWNGRADE("DOWNGRADE"), + UNINSTALL("UNINSTALL"), ; @JsonValue diff --git a/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowRuntimeMode.java b/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowRuntimeMode.java new file mode 100644 index 0000000000..8803f2dc9a --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowRuntimeMode.java @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.enums; + +import com.fasterxml.jackson.annotation.JsonValue; +import javax.annotation.processing.Generated; +import lombok.Getter; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +public enum AtlanAppWorkflowRuntimeMode implements AtlanEnum { + SDR("SDR"), + DIRECT("DIRECT"), + ; + + @JsonValue + @Getter(onMethod_ = {@Override}) + private final String value; + + AtlanAppWorkflowRuntimeMode(String value) { + this.value = value; + } + + public static AtlanAppWorkflowRuntimeMode fromValue(String value) { + for (AtlanAppWorkflowRuntimeMode b : AtlanAppWorkflowRuntimeMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } +} diff --git a/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowSource.java b/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowSource.java index 821b66ef81..b9dcfcdd6f 100644 --- a/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowSource.java +++ b/sdk/src/main/java/com/atlan/model/enums/AtlanAppWorkflowSource.java @@ -13,6 +13,7 @@ public enum AtlanAppWorkflowSource implements AtlanEnum { BACKGROUND_JOB("background_job"), SYSTEM_JOB("system_job"), UNKNOWN("unknown"), + ADHOC("adhoc"), ; @JsonValue diff --git a/sdk/src/main/java/com/atlan/model/enums/DatabricksDashboardLifecycleState.java b/sdk/src/main/java/com/atlan/model/enums/DatabricksDashboardLifecycleState.java new file mode 100644 index 0000000000..59e96fc56d --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/enums/DatabricksDashboardLifecycleState.java @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.enums; + +import com.fasterxml.jackson.annotation.JsonValue; +import javax.annotation.processing.Generated; +import lombok.Getter; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +public enum DatabricksDashboardLifecycleState implements AtlanEnum { + ACTIVE("ACTIVE"), + TRASHED("TRASHED"), + ; + + @JsonValue + @Getter(onMethod_ = {@Override}) + private final String value; + + DatabricksDashboardLifecycleState(String value) { + this.value = value; + } + + public static DatabricksDashboardLifecycleState fromValue(String value) { + for (DatabricksDashboardLifecycleState b : DatabricksDashboardLifecycleState.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } +} diff --git a/sdk/src/main/java/com/atlan/model/enums/ProcessLineageDerivation.java b/sdk/src/main/java/com/atlan/model/enums/ProcessLineageDerivation.java new file mode 100644 index 0000000000..1781790375 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/enums/ProcessLineageDerivation.java @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.enums; + +import com.fasterxml.jackson.annotation.JsonValue; +import javax.annotation.processing.Generated; +import lombok.Getter; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +public enum ProcessLineageDerivation implements AtlanEnum { + STATIC("STATIC"), + RUNTIME("RUNTIME"), + ; + + @JsonValue + @Getter(onMethod_ = {@Override}) + private final String value; + + ProcessLineageDerivation(String value) { + this.value = value; + } + + public static ProcessLineageDerivation fromValue(String value) { + for (ProcessLineageDerivation b : ProcessLineageDerivation.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } +} diff --git a/sdk/src/main/java/com/atlan/model/structs/SageMakerUnifiedStudioSsoUser.java b/sdk/src/main/java/com/atlan/model/structs/SageMakerUnifiedStudioSsoUser.java index edc641eaae..5e60f6e648 100644 --- a/sdk/src/main/java/com/atlan/model/structs/SageMakerUnifiedStudioSsoUser.java +++ b/sdk/src/main/java/com/atlan/model/structs/SageMakerUnifiedStudioSsoUser.java @@ -35,16 +35,22 @@ public class SageMakerUnifiedStudioSsoUser extends AtlanStruct { /** Role assigned to the SSO user within the project. */ String smusSsoUserRole; + /** Full name of the SSO user, sourced from the identity provider's first and last name. */ + String smusSsoUserFullName; + /** * Quickly create a new SageMakerUnifiedStudioSsoUser. * @param smusSsoUserEmail Email address of the SSO user. * @param smusSsoUserRole Role assigned to the SSO user within the project. + * @param smusSsoUserFullName Full name of the SSO user, sourced from the identity provider's first and last name. * @return a SageMakerUnifiedStudioSsoUser with the provided information */ - public static SageMakerUnifiedStudioSsoUser of(String smusSsoUserEmail, String smusSsoUserRole) { + public static SageMakerUnifiedStudioSsoUser of( + String smusSsoUserEmail, String smusSsoUserRole, String smusSsoUserFullName) { return SageMakerUnifiedStudioSsoUser.builder() .smusSsoUserEmail(smusSsoUserEmail) .smusSsoUserRole(smusSsoUserRole) + .smusSsoUserFullName(smusSsoUserFullName) .build(); } diff --git a/sdk/src/test/java/com/atlan/model/assets/AirflowDagTest.java b/sdk/src/test/java/com/atlan/model/assets/AirflowDagTest.java index 9b29483b1c..0273b13369 100644 --- a/sdk/src/test/java/com/atlan/model/assets/AirflowDagTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/AirflowDagTest.java @@ -66,6 +66,7 @@ public class AirflowDagTest { .airflowRunOpenLineageVersion("String0") .airflowRunName("String0") .airflowRunType("String0") + .airflowRunErrorMessage("String0") .airflowRunStartTime(123456789L) .airflowRunEndTime(123456789L) .airflowRunOpenLineageState(OpenLineageRunState.START) diff --git a/sdk/src/test/java/com/atlan/model/assets/AirflowTaskTest.java b/sdk/src/test/java/com/atlan/model/assets/AirflowTaskTest.java index bb711d2488..134380142e 100644 --- a/sdk/src/test/java/com/atlan/model/assets/AirflowTaskTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/AirflowTaskTest.java @@ -66,6 +66,7 @@ public class AirflowTaskTest { .airflowRunOpenLineageVersion("String0") .airflowRunName("String0") .airflowRunType("String0") + .airflowRunErrorMessage("String0") .airflowRunStartTime(123456789L) .airflowRunEndTime(123456789L) .airflowRunOpenLineageState(OpenLineageRunState.START) diff --git a/sdk/src/test/java/com/atlan/model/assets/AtlanAppWorkflowTest.java b/sdk/src/test/java/com/atlan/model/assets/AtlanAppWorkflowTest.java index d1fcaa82f8..e71df00b40 100644 --- a/sdk/src/test/java/com/atlan/model/assets/AtlanAppWorkflowTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/AtlanAppWorkflowTest.java @@ -1157,6 +1157,9 @@ public class AtlanAppWorkflowTest { .atlanAppWorkflowOwnership(AtlanAppWorkflowOwnership.SYSTEM) .atlanAppWorkflowSource(AtlanAppWorkflowSource.CONNECTOR) .atlanAppWorkflowTriggers("String0") + .atlanAppWorkflowAgentName("String0") + .atlanAppWorkflowDeploymentName("String0") + .atlanAppWorkflowRuntimeMode(AtlanAppWorkflowRuntimeMode.SDR) .atlanAppTool(AtlanAppTool.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .atlanAppTool(AtlanAppTool.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .atlanAppWorkflow(AtlanAppWorkflow.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/AuthPolicyTest.java b/sdk/src/test/java/com/atlan/model/assets/AuthPolicyTest.java index 13262ede70..a46b26e10b 100644 --- a/sdk/src/test/java/com/atlan/model/assets/AuthPolicyTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/AuthPolicyTest.java @@ -1184,6 +1184,8 @@ public class AuthPolicyTest { GCPDataplexAspectType.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .gcpDataplexAspectTypeMetadataEntity( GCPDataplexAspectType.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .knowledgeLinkedFile(KnowledgeFile.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedFile(KnowledgeFile.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/AuthServiceTest.java b/sdk/src/test/java/com/atlan/model/assets/AuthServiceTest.java index 71697a3abd..a592221677 100644 --- a/sdk/src/test/java/com/atlan/model/assets/AuthServiceTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/AuthServiceTest.java @@ -1151,6 +1151,8 @@ public class AuthServiceTest { GCPDataplexAspectType.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .gcpDataplexAspectTypeMetadataEntity( GCPDataplexAspectType.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .knowledgeLinkedFile(KnowledgeFile.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedFile(KnowledgeFile.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/BIProcessTest.java b/sdk/src/test/java/com/atlan/model/assets/BIProcessTest.java index 2fe45f9de0..151b09a6b2 100644 --- a/sdk/src/test/java/com/atlan/model/assets/BIProcessTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/BIProcessTest.java @@ -68,6 +68,7 @@ public class BIProcessTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .name("String0") .displayName("String0") .description("String0") diff --git a/sdk/src/test/java/com/atlan/model/assets/BigqueryRoutineTest.java b/sdk/src/test/java/com/atlan/model/assets/BigqueryRoutineTest.java index d42b74b085..c0e8fc6676 100644 --- a/sdk/src/test/java/com/atlan/model/assets/BigqueryRoutineTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/BigqueryRoutineTest.java @@ -1205,6 +1205,7 @@ public class BigqueryRoutineTest { .bigqueryRoutineReturnType("String0") .bigqueryRoutineSecurityType("String0") .bigqueryRoutineDdl("String0") + .cosmosMongoDBCollection(CosmosMongoDBCollection.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .sqlDbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/ColumnProcessTest.java b/sdk/src/test/java/com/atlan/model/assets/ColumnProcessTest.java index 4bc87291b0..12e98ae8a6 100644 --- a/sdk/src/test/java/com/atlan/model/assets/ColumnProcessTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/ColumnProcessTest.java @@ -68,6 +68,7 @@ public class ColumnProcessTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .name("String0") .displayName("String0") .description("String0") diff --git a/sdk/src/test/java/com/atlan/model/assets/ContextArtifactTest.java b/sdk/src/test/java/com/atlan/model/assets/ContextArtifactTest.java index 247c45fb05..5bd7ee9c49 100644 --- a/sdk/src/test/java/com/atlan/model/assets/ContextArtifactTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/ContextArtifactTest.java @@ -62,6 +62,7 @@ public class ContextArtifactTest { .build()) .contextRepositoryQualifiedName("String0") .agenticVersion(123456789L) + .agenticSource(AgenticSource.CONTEXT_STUDIO) .catalogDatasetGuid("String0") .name("String0") .displayName("String0") diff --git a/sdk/src/test/java/com/atlan/model/assets/ContextRepositoryTest.java b/sdk/src/test/java/com/atlan/model/assets/ContextRepositoryTest.java index 8a4ddb568f..e960205220 100644 --- a/sdk/src/test/java/com/atlan/model/assets/ContextRepositoryTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/ContextRepositoryTest.java @@ -62,6 +62,7 @@ public class ContextRepositoryTest { .build()) .contextRepositoryQualifiedName("String0") .agenticVersion(123456789L) + .agenticSource(AgenticSource.CONTEXT_STUDIO) .catalogDatasetGuid("String0") .name("String0") .displayName("String0") @@ -1147,6 +1148,8 @@ public class ContextRepositoryTest { .contextArtifact(ContextArtifact.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .contextArtifact(ContextArtifact.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .contextOutputSkill(Skill.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .contextOutputAgent(Agent.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .contextOutputAgent(Agent.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .contextInputAsset(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .contextInputAsset(IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/CosmosMongoDBCollectionTest.java b/sdk/src/test/java/com/atlan/model/assets/CosmosMongoDBCollectionTest.java index f6f62ceb10..361e1789d3 100644 --- a/sdk/src/test/java/com/atlan/model/assets/CosmosMongoDBCollectionTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/CosmosMongoDBCollectionTest.java @@ -1220,6 +1220,11 @@ public class CosmosMongoDBCollectionTest { .cosmosMongoDBDatabase(CosmosMongoDBDatabase.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .column(Column.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .column(Column.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .cosmosMongoDBStoredProcedure(Procedure.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .cosmosMongoDBStoredProcedure( + Procedure.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .cosmosMongoDBFunction(Function.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .cosmosMongoDBFunction(Function.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .dbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .sqlDbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/DatabricksDashboardTest.java b/sdk/src/test/java/com/atlan/model/assets/DatabricksDashboardTest.java new file mode 100644 index 0000000000..583499dd35 --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/DatabricksDashboardTest.java @@ -0,0 +1,1272 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class DatabricksDashboardTest { + + private final DatabricksDashboard full = DatabricksDashboard._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .queryCount(123456789L) + .queryUserCount(123456789L) + .putQueryUserMap("String0", 123456789L) + .putQueryUserMap("String1", 987654321L) + .queryCountUpdatedAt(123456789L) + .databaseName("String0") + .databaseQualifiedName("String0") + .schemaName("String0") + .schemaQualifiedName("String0") + .tableName("String0") + .tableQualifiedName("String0") + .viewName("String0") + .viewQualifiedName("String0") + .calculationViewName("String0") + .calculationViewQualifiedName("String0") + .isProfiled(true) + .lastProfiledAt(123456789L) + .sqlAIModelContextQualifiedName("String0") + .sqlIsSecure(true) + .sqlHasAiInsights(true) + .sqlAiInsightsLastAnalyzedAt(123456789L) + .sqlAiInsightsPopularBusinessQuestionCount(123) + .sqlAiInsightsPopularJoinCount(123) + .sqlAiInsightsPopularFilterCount(123) + .sqlAiInsightsRelationshipCount(123) + .sqlCoalesceLastRunStatus("String0") + .sqlCoalesceNodeStatus("String0") + .sqlCoalesceLastRunAt(123456789L) + .sqlCoalesceNodeType("String0") + .sqlCoalesceEnvironmentId("String0") + .sqlCoalesceEnvironmentName("String0") + .sqlCoalesceProjectId("String0") + .sqlCoalesceProjectName("String0") + .sqlShareQualifiedName("String0") + .sqlShareQualifiedName("String1") + .catalogDatasetGuid("String0") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .databricksDashboardPath("String0") + .databricksDashboardWorkspaceId("String0") + .databricksDashboardWarehouseId("String0") + .databricksDashboardEtag("String0") + .databricksDashboardIsGenieSpaceEnabled(true) + .databricksDashboardLifecycleState(DatabricksDashboardLifecycleState.ACTIVE) + .inputToAirflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputToAirflowTask(AirflowTask.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputFromAirflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputFromAirflowTask(AirflowTask.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .modelImplementedEntity(ModelEntity.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .modelImplementedEntity(ModelEntity.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .modelImplementedAttribute(ModelAttribute.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .modelImplementedAttribute( + ModelAttribute.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .partialChildField(PartialField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .partialChildField(PartialField.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .partialChildObject(PartialObject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .partialChildObject(PartialObject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputToProcess(LineageProcess.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputToProcess(LineageProcess.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputFromProcess(LineageProcess.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputFromProcess(LineageProcess.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputToSparkJob(SparkJob.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputToSparkJob(SparkJob.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputFromSparkJob(SparkJob.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputFromSparkJob(SparkJob.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleDatabricksDashboard() throws IOException { + assertNotNull(full, "Unable to build sample instance of DatabricksDashboard,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting DatabricksDashboard via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of DatabricksDashboard,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final DatabricksDashboard frodo = MockAtlanTenant.client.readValue(serialized, DatabricksDashboard.class); + assertNotNull(frodo, "Unable to reverse-read serialized value back into an instance of DatabricksDashboard,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/DatabricksGenieAgentTest.java b/sdk/src/test/java/com/atlan/model/assets/DatabricksGenieAgentTest.java new file mode 100644 index 0000000000..71af09180d --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/DatabricksGenieAgentTest.java @@ -0,0 +1,1265 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class DatabricksGenieAgentTest { + + private final DatabricksGenieAgent full = DatabricksGenieAgent._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .queryCount(123456789L) + .queryUserCount(123456789L) + .putQueryUserMap("String0", 123456789L) + .putQueryUserMap("String1", 987654321L) + .queryCountUpdatedAt(123456789L) + .databaseName("String0") + .databaseQualifiedName("String0") + .schemaName("String0") + .schemaQualifiedName("String0") + .tableName("String0") + .tableQualifiedName("String0") + .viewName("String0") + .viewQualifiedName("String0") + .calculationViewName("String0") + .calculationViewQualifiedName("String0") + .isProfiled(true) + .lastProfiledAt(123456789L) + .sqlAIModelContextQualifiedName("String0") + .sqlIsSecure(true) + .sqlHasAiInsights(true) + .sqlAiInsightsLastAnalyzedAt(123456789L) + .sqlAiInsightsPopularBusinessQuestionCount(123) + .sqlAiInsightsPopularJoinCount(123) + .sqlAiInsightsPopularFilterCount(123) + .sqlAiInsightsRelationshipCount(123) + .sqlCoalesceLastRunStatus("String0") + .sqlCoalesceNodeStatus("String0") + .sqlCoalesceLastRunAt(123456789L) + .sqlCoalesceNodeType("String0") + .sqlCoalesceEnvironmentId("String0") + .sqlCoalesceEnvironmentName("String0") + .sqlCoalesceProjectId("String0") + .sqlCoalesceProjectName("String0") + .sqlShareQualifiedName("String0") + .sqlShareQualifiedName("String1") + .catalogDatasetGuid("String0") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .agentSlug("String0") + .agentType(AgentType.SYSTEM) + .agentStatus(AgenticLifecycleStatus.DRAFT) + .agentSystemPrompt("String0") + .agentLlmConfig("String0") + .agentMcpServers("String0") + .agentSchedules("String0") + .agentSkillName("String0") + .agentSkillName("String1") + .agentSkillQualifiedName("String0") + .agentSkillQualifiedName("String1") + .agenticVersion(123456789L) + .agenticSource(AgenticSource.CONTEXT_STUDIO) + .databricksGenieAgentWorkspaceId("String0") + .databricksGenieAgentWarehouseId("String0") + .databricksGenieAgentParentPath("String0") + .databricksGenieAgentEtag("String0") + .agentSkill(Skill.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .agentSkill(Skill.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .contextSourceRepository(ContextRepository.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleDatabricksGenieAgent() throws IOException { + assertNotNull(full, "Unable to build sample instance of DatabricksGenieAgent,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting DatabricksGenieAgent via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of DatabricksGenieAgent,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final DatabricksGenieAgent frodo = MockAtlanTenant.client.readValue(serialized, DatabricksGenieAgent.class); + assertNotNull(frodo, "Unable to reverse-read serialized value back into an instance of DatabricksGenieAgent,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/DbtColumnProcessTest.java b/sdk/src/test/java/com/atlan/model/assets/DbtColumnProcessTest.java index 90b314238d..ebeeb088b9 100644 --- a/sdk/src/test/java/com/atlan/model/assets/DbtColumnProcessTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/DbtColumnProcessTest.java @@ -1192,6 +1192,7 @@ public class DbtColumnProcessTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .dbtColumnProcessJobStatus("String0") .adfActivity(AdfActivity.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/DbtProcessTest.java b/sdk/src/test/java/com/atlan/model/assets/DbtProcessTest.java index afee72e785..81a458d21f 100644 --- a/sdk/src/test/java/com/atlan/model/assets/DbtProcessTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/DbtProcessTest.java @@ -1192,6 +1192,7 @@ public class DbtProcessTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .dbtProcessJobStatus("String0") .dbtUpstreamContext(DbtInputContext.builder() .dbtInputContextName("String0") diff --git a/sdk/src/test/java/com/atlan/model/assets/FlowDatasetOperationTest.java b/sdk/src/test/java/com/atlan/model/assets/FlowDatasetOperationTest.java index 97aa0f2a80..38aaeed939 100644 --- a/sdk/src/test/java/com/atlan/model/assets/FlowDatasetOperationTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/FlowDatasetOperationTest.java @@ -1161,6 +1161,7 @@ public class FlowDatasetOperationTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .adfActivity(AdfActivity.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) diff --git a/sdk/src/test/java/com/atlan/model/assets/FlowFieldOperationTest.java b/sdk/src/test/java/com/atlan/model/assets/FlowFieldOperationTest.java index 5c975f274b..d99c3aa7dc 100644 --- a/sdk/src/test/java/com/atlan/model/assets/FlowFieldOperationTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/FlowFieldOperationTest.java @@ -1161,6 +1161,7 @@ public class FlowFieldOperationTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .adfActivity(AdfActivity.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) diff --git a/sdk/src/test/java/com/atlan/model/assets/FunctionTest.java b/sdk/src/test/java/com/atlan/model/assets/FunctionTest.java index 440a426c25..e962ae495f 100644 --- a/sdk/src/test/java/com/atlan/model/assets/FunctionTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/FunctionTest.java @@ -1189,6 +1189,7 @@ public class FunctionTest { .functionSecrets("String0") .functionPackages("String0") .functionInstalledPackages("String0") + .cosmosMongoDBCollection(CosmosMongoDBCollection.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .sqlDbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/GlossaryCategoryTest.java b/sdk/src/test/java/com/atlan/model/assets/GlossaryCategoryTest.java index 48d74d35da..ca37d9d17c 100644 --- a/sdk/src/test/java/com/atlan/model/assets/GlossaryCategoryTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/GlossaryCategoryTest.java @@ -1155,6 +1155,8 @@ public class GlossaryCategoryTest { .childCategory(GlossaryCategory.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .childCategory(GlossaryCategory.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .parentCategory(GlossaryCategory.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedFile(KnowledgeFile.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedFile(KnowledgeFile.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/GlossaryTermTest.java b/sdk/src/test/java/com/atlan/model/assets/GlossaryTermTest.java index 82b327d4f8..dada87a020 100644 --- a/sdk/src/test/java/com/atlan/model/assets/GlossaryTermTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/GlossaryTermTest.java @@ -1184,6 +1184,8 @@ public class GlossaryTermTest { .validValueFor(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .validValue(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .validValue(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .knowledgeLinkedFile(KnowledgeFile.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedFile(KnowledgeFile.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/GlossaryTest.java b/sdk/src/test/java/com/atlan/model/assets/GlossaryTest.java index 0165f33d9a..c9f314c270 100644 --- a/sdk/src/test/java/com/atlan/model/assets/GlossaryTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/GlossaryTest.java @@ -1155,6 +1155,8 @@ public class GlossaryTest { .term(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .category(GlossaryCategory.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .category(GlossaryCategory.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .knowledgeLinkedFile(KnowledgeFile.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedFile(KnowledgeFile.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/IcebergNamespaceTest.java b/sdk/src/test/java/com/atlan/model/assets/IcebergNamespaceTest.java index 18047b9a2e..a495357dff 100644 --- a/sdk/src/test/java/com/atlan/model/assets/IcebergNamespaceTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/IcebergNamespaceTest.java @@ -1201,6 +1201,10 @@ public class IcebergNamespaceTest { .icebergSubNamespace(IcebergNamespace.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .icebergSubNamespace(IcebergNamespace.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .icebergParentNamespace(IcebergNamespace.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapDatasphereReplicationFlow( + SapDatasphereReplicationFlow.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapDatasphereReplicationFlow( + SapDatasphereReplicationFlow.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .calculationView(CalculationView.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .calculationView(CalculationView.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .function(Function.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/KafkaFieldTest.java b/sdk/src/test/java/com/atlan/model/assets/KafkaFieldTest.java index b76c8fd3c9..d94200f8cd 100644 --- a/sdk/src/test/java/com/atlan/model/assets/KafkaFieldTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/KafkaFieldTest.java @@ -1146,7 +1146,18 @@ public class KafkaFieldTest { .kafkaFieldOrder(123) .kafkaTopicQualifiedName("String0") .kafkaFieldSchemaType("String0") + .kafkaParentFieldQualifiedName("String0") + .kafkaParentFieldName("String0") + .kafkaFieldDepthLevel(123) + .kafkaNestedFieldCount(123) + .kafkaNestedFieldOrder("String0") + .kafkaFieldHierarchy(Map.of("key1", "value1")) + .kafkaFieldHierarchy(Map.of("key2", "value2")) + .kafkaFieldNestedOrder("String0") .kafkaTopic(KafkaTopic.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .kafkaNestedField(KafkaField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .kafkaNestedField(KafkaField.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .kafkaParentField(KafkaField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/KnowledgeFileTest.java b/sdk/src/test/java/com/atlan/model/assets/KnowledgeFileTest.java index b0961511eb..689f1a651f 100644 --- a/sdk/src/test/java/com/atlan/model/assets/KnowledgeFileTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/KnowledgeFileTest.java @@ -61,6 +61,7 @@ public class KnowledgeFileTest { .attribute("String1", "AnotherString") .build()) .agenticVersion(123456789L) + .agenticSource(AgenticSource.CONTEXT_STUDIO) .catalogDatasetGuid("String0") .name("String0") .displayName("String0") @@ -1154,6 +1155,8 @@ public class KnowledgeFileTest { .knowledgeContentVersionId("String0") .knowledgeFolder(KnowledgeFolder.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .knowledgeFolder(KnowledgeFolder.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .knowledgeLinkedAsset(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .knowledgeLinkedAsset(IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .fileAssets(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) diff --git a/sdk/src/test/java/com/atlan/model/assets/KnowledgeFolderTest.java b/sdk/src/test/java/com/atlan/model/assets/KnowledgeFolderTest.java index 35af577533..26d3f6ae00 100644 --- a/sdk/src/test/java/com/atlan/model/assets/KnowledgeFolderTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/KnowledgeFolderTest.java @@ -61,6 +61,7 @@ public class KnowledgeFolderTest { .attribute("String1", "AnotherString") .build()) .agenticVersion(123456789L) + .agenticSource(AgenticSource.CONTEXT_STUDIO) .catalogDatasetGuid("String0") .name("String0") .displayName("String0") diff --git a/sdk/src/test/java/com/atlan/model/assets/ProcedureTest.java b/sdk/src/test/java/com/atlan/model/assets/ProcedureTest.java index 8e3c692e2b..f836254601 100644 --- a/sdk/src/test/java/com/atlan/model/assets/ProcedureTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/ProcedureTest.java @@ -1199,6 +1199,7 @@ public class ProcedureTest { .sqlInstalledPackages("String0") .sqlSchemaId("String0") .sqlCatalogId("String0") + .cosmosMongoDBCollection(CosmosMongoDBCollection.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtModel(DbtModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .sqlDbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/SAPColumnProcessTest.java b/sdk/src/test/java/com/atlan/model/assets/SAPColumnProcessTest.java index c56bb9fc24..e4a113e787 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SAPColumnProcessTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SAPColumnProcessTest.java @@ -1154,6 +1154,7 @@ public class SAPColumnProcessTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .adfActivity(AdfActivity.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) diff --git a/sdk/src/test/java/com/atlan/model/assets/SAPProcessTest.java b/sdk/src/test/java/com/atlan/model/assets/SAPProcessTest.java index a13edc90ef..999f1c4236 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SAPProcessTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SAPProcessTest.java @@ -1154,6 +1154,7 @@ public class SAPProcessTest { .additionalEtlContext("String0") .aiDatasetType(AIDatasetType.TRAINING) .isPassThrough(true) + .processDerivation(ProcessLineageDerivation.STATIC) .adfActivity(AdfActivity.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .airflowTask(AirflowTask.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) diff --git a/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioProjectTest.java b/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioProjectTest.java index ea85e924d4..d18c2806a5 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioProjectTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioProjectTest.java @@ -1152,10 +1152,12 @@ public class SageMakerUnifiedStudioProjectTest { .smusProjectSsoUser(SageMakerUnifiedStudioSsoUser.builder() .smusSsoUserEmail("String0") .smusSsoUserRole("String0") + .smusSsoUserFullName("String0") .build()) .smusProjectSsoUser(SageMakerUnifiedStudioSsoUser.builder() .smusSsoUserEmail("String1") .smusSsoUserRole("String1") + .smusSsoUserFullName("String1") .build()) .smusPublishedAsset(SageMakerUnifiedStudioPublishedAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .smusPublishedAsset(SageMakerUnifiedStudioPublishedAsset.refByQualifiedName( diff --git a/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAssetTest.java b/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAssetTest.java index b500a10e0c..ab8acfda2b 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAssetTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SageMakerUnifiedStudioPublishedAssetTest.java @@ -1151,6 +1151,7 @@ public class SageMakerUnifiedStudioPublishedAssetTest { .smusAssetRevision("String0") .smusAssetSourceIdentifier("String0") .smusPublishedAssetSubscriptionsCount(123456789L) + .smusPublishedAssetFilters("String0") .smusProject(SageMakerUnifiedStudioProject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .smusAssetSchema(SageMakerUnifiedStudioAssetSchema.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .smusAssetSchema(SageMakerUnifiedStudioAssetSchema.refByQualifiedName( diff --git a/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudColumnTest.java b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudColumnTest.java new file mode 100644 index 0000000000..fe8e7d20a4 --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudColumnTest.java @@ -0,0 +1,1413 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class SapAnalyticsCloudColumnTest { + + private final SapAnalyticsCloudColumn full = SapAnalyticsCloudColumn._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .sapAnalyticsCloudResourceId("String0") + .sapAnalyticsCloudObjectId("String0") + .sapAnalyticsCloudRepositoryPartition("String0") + .sapAnalyticsCloudWorkspaceId("String0") + .sapAnalyticsCloudWorkspaceName("String0") + .sapAnalyticsCloudParentFolderQualifiedName("String0") + .sapAnalyticsCloudParentFolderName("String0") + .sapTechnicalName("String0") + .sapLogicalName("String0") + .sapPackageName("String0") + .sapComponentName("String0") + .sapDataType("String0") + .sapFieldCount(123456789L) + .sapFieldOrder(123) + .catalogDatasetGuid("String0") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .dataType("String0") + .subDataType("String0") + .columnCompression("String0") + .columnEncoding("String0") + .rawDataTypeDefinition("String0") + .order(123) + .nestedColumnOrder("String0") + .nestedColumnCount(123) + .putColumnHierarchy(Map.of("key1", "value1")) + .putColumnHierarchy(Map.of("key2", "value2")) + .isPartition(true) + .partitionOrder(123) + .isClustered(true) + .isPrimary(true) + .isForeign(true) + .isIndexed(true) + .isSort(true) + .isDist(true) + .isPinned(true) + .pinnedBy("String0") + .pinnedAt(123456789L) + .precision(123) + .defaultValue("String0") + .isNullable(true) + .numericScale(123.456) + .maxLength(123456789L) + .validation("String0", "String0") + .validation("String1", "String1") + .parentColumnQualifiedName("String0") + .parentColumnName("String0") + .columnDistinctValuesCount(123) + .columnDistinctValuesCountLong(123456789L) + .columnDistinctValuesPercentage(123.456) + .columnHistogram(Histogram.builder() + .boundaries(List.of(123.456, 654.321)) + .frequencies(List.of(123.456, 654.321)) + .build()) + .columnMax(123.456) + .columnMin(123.456) + .columnMean(123.456) + .columnSum(123.456) + .columnMedian(123.456) + .columnStandardDeviation(123.456) + .columnUniqueValuesCount(123) + .columnUniqueValuesCountLong(123456789L) + .columnAverage(123.456) + .columnAverageLength(123.456) + .columnDuplicateValuesCount(123) + .columnDuplicateValuesCountLong(123456789L) + .columnMaximumStringLength(123) + .addColumnMax("String0") + .addColumnMax("String1") + .columnMinimumStringLength(123) + .addColumnMin("String0") + .addColumnMin("String1") + .columnMissingValuesCount(123) + .columnMissingValuesCountLong(123456789L) + .columnMissingValuesPercentage(123.456) + .columnUniquenessPercentage(123.456) + .columnVariance(123.456) + .columnTopValue(ColumnValueFrequencyMap.builder() + .columnValue("String0") + .columnValueFrequency(123456789L) + .build()) + .columnTopValue(ColumnValueFrequencyMap.builder() + .columnValue("String1") + .columnValueFrequency(987654321L) + .build()) + .columnMaxValue(123.456) + .columnMinValue(123.456) + .columnMeanValue(123.456) + .columnSumValue(123.456) + .columnMedianValue(123.456) + .columnStandardDeviationValue(123.456) + .columnAverageValue(123.456) + .columnVarianceValue(123.456) + .columnAverageLengthValue(123.456) + .columnDistributionHistogram(AssetHistogram.builder() + .assetHistogramBoundaries(List.of(123.456, 654.321)) + .assetHistogramFrequencies(List.of(123.456, 654.321)) + .build()) + .columnDepthLevel(123) + .nosqlCollectionName("String0") + .nosqlCollectionQualifiedName("String0") + .columnIsMeasure(true) + .columnMeasureType("String0") + .columnAiInsightsIsMeasure(true) + .columnAiInsightsMeasureType("String0") + .columnAiInsightsIsDimension(true) + .columnAiInsightsDimensionType("String0") + .columnAiInsightsForeignKeyColumnQualifiedName("String0") + .queryCount(123456789L) + .queryUserCount(123456789L) + .putQueryUserMap("String0", 123456789L) + .putQueryUserMap("String1", 987654321L) + .queryCountUpdatedAt(123456789L) + .databaseName("String0") + .databaseQualifiedName("String0") + .schemaName("String0") + .schemaQualifiedName("String0") + .tableName("String0") + .tableQualifiedName("String0") + .viewName("String0") + .viewQualifiedName("String0") + .calculationViewName("String0") + .calculationViewQualifiedName("String0") + .isProfiled(true) + .lastProfiledAt(123456789L) + .sqlAIModelContextQualifiedName("String0") + .sqlIsSecure(true) + .sqlHasAiInsights(true) + .sqlAiInsightsLastAnalyzedAt(123456789L) + .sqlAiInsightsPopularBusinessQuestionCount(123) + .sqlAiInsightsPopularJoinCount(123) + .sqlAiInsightsPopularFilterCount(123) + .sqlAiInsightsRelationshipCount(123) + .sqlCoalesceLastRunStatus("String0") + .sqlCoalesceNodeStatus("String0") + .sqlCoalesceLastRunAt(123456789L) + .sqlCoalesceNodeType("String0") + .sqlCoalesceEnvironmentId("String0") + .sqlCoalesceEnvironmentName("String0") + .sqlCoalesceProjectId("String0") + .sqlCoalesceProjectName("String0") + .sqlShareQualifiedName("String0") + .sqlShareQualifiedName("String1") + .sapAnalyticsCloudModelQualifiedName("String0") + .sapAnalyticsCloudModelName("String0") + .cosmosMongoDBCollection(CosmosMongoDBCollection.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metricTimestamp(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metricTimestamp(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dataQualityMetricDimension(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataQualityMetricDimension(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqBaseColumnRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseColumnRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceColumnRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceColumnRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dbtModel(DbtModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sqlDbtModel(DbtModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sqlDbtModel(DbtModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dbtTest(DbtTest.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dbtTest(DbtTest.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dbtSource(DbtSource.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dbtSource(DbtSource.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sqlDBTSource(DbtSource.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sqlDBTSource(DbtSource.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dbtMetric(DbtMetric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dbtMetric(DbtMetric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dbtModelColumn(DbtModelColumn.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dbtModelColumn(DbtModelColumn.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .columnDbtModelColumn(DbtModelColumn.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .columnDbtModelColumn(DbtModelColumn.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dbtSeedAsset(DbtSeed.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dbtSeedAsset(DbtSeed.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mongoDBCollection(MongoDBCollection.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .table(Table.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .nestedColumn(Column.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .nestedColumn(Column.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .parentColumn(Column.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .tablePartition(TablePartition.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .view(View.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .calculationView(CalculationView.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .materializedView(MaterializedView.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .addForeignKeyTo(Column.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .addForeignKeyTo(Column.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .foreignKeyFrom(Column.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .query(AtlanQuery.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .query(AtlanQuery.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapAnalyticsCloudModel(SapAnalyticsCloudModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .snowflakeDynamicTable(SnowflakeDynamicTable.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .snowflakeSemanticLogicalTable( + SnowflakeSemanticLogicalTable.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .snowflakeSemanticLogicalTable( + SnowflakeSemanticLogicalTable.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sqlInsightOutgoingJoin(SqlInsightJoin.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sqlInsightOutgoingJoin( + SqlInsightJoin.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sqlInsightIncomingJoin(SqlInsightJoin.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sqlInsightIncomingJoin( + SqlInsightJoin.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sqlInsightFilter(SqlInsightFilter.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sqlInsightFilter(SqlInsightFilter.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sqlInsightBusinessQuestion(SqlInsightBusinessQuestion.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sqlInsightBusinessQuestion( + SqlInsightBusinessQuestion.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleSapAnalyticsCloudColumn() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapAnalyticsCloudColumn,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapAnalyticsCloudColumn via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapAnalyticsCloudColumn,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapAnalyticsCloudColumn frodo = + MockAtlanTenant.client.readValue(serialized, SapAnalyticsCloudColumn.class); + assertNotNull( + frodo, "Unable to reverse-read serialized value back into an instance of SapAnalyticsCloudColumn,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudFolderTest.java b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudFolderTest.java new file mode 100644 index 0000000000..9ec7bf9d3f --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudFolderTest.java @@ -0,0 +1,1236 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class SapAnalyticsCloudFolderTest { + + private final SapAnalyticsCloudFolder full = SapAnalyticsCloudFolder._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .sapAnalyticsCloudResourceId("String0") + .sapAnalyticsCloudObjectId("String0") + .sapAnalyticsCloudRepositoryPartition("String0") + .sapAnalyticsCloudWorkspaceId("String0") + .sapAnalyticsCloudWorkspaceName("String0") + .sapAnalyticsCloudParentFolderQualifiedName("String0") + .sapAnalyticsCloudParentFolderName("String0") + .sapTechnicalName("String0") + .sapLogicalName("String0") + .sapPackageName("String0") + .sapComponentName("String0") + .sapDataType("String0") + .sapFieldCount(123456789L) + .sapFieldOrder(123) + .catalogDatasetGuid("String0") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .sapAnalyticsCloudSubFolder(SapAnalyticsCloudFolder.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapAnalyticsCloudSubFolder( + SapAnalyticsCloudFolder.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapAnalyticsCloudParentFolder(SapAnalyticsCloudFolder.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapAnalyticsCloudModel(SapAnalyticsCloudModel.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapAnalyticsCloudModel( + SapAnalyticsCloudModel.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapAnalyticsCloudStory(SapAnalyticsCloudStory.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapAnalyticsCloudStory( + SapAnalyticsCloudStory.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleSapAnalyticsCloudFolder() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapAnalyticsCloudFolder,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapAnalyticsCloudFolder via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapAnalyticsCloudFolder,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapAnalyticsCloudFolder frodo = + MockAtlanTenant.client.readValue(serialized, SapAnalyticsCloudFolder.class); + assertNotNull( + frodo, "Unable to reverse-read serialized value back into an instance of SapAnalyticsCloudFolder,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudModelTest.java b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudModelTest.java new file mode 100644 index 0000000000..7b224ba965 --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudModelTest.java @@ -0,0 +1,1241 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class SapAnalyticsCloudModelTest { + + private final SapAnalyticsCloudModel full = SapAnalyticsCloudModel._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .sapAnalyticsCloudResourceId("String0") + .sapAnalyticsCloudObjectId("String0") + .sapAnalyticsCloudRepositoryPartition("String0") + .sapAnalyticsCloudWorkspaceId("String0") + .sapAnalyticsCloudWorkspaceName("String0") + .sapAnalyticsCloudParentFolderQualifiedName("String0") + .sapAnalyticsCloudParentFolderName("String0") + .sapTechnicalName("String0") + .sapLogicalName("String0") + .sapPackageName("String0") + .sapComponentName("String0") + .sapDataType("String0") + .sapFieldCount(123456789L) + .sapFieldOrder(123) + .catalogDatasetGuid("String0") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .sapAnalyticsCloudModelKind("String0") + .sapAnalyticsCloudDataAccessMode("String0") + .sapAnalyticsCloudProviderId("String0") + .sapAnalyticsCloudModelId("String0") + .sapAnalyticsCloudStoryCount(123456789L) + .sapAnalyticsCloudLiveConnectionId("String0") + .sapAnalyticsCloudLiveConnectionName("String0") + .sapAnalyticsCloudLiveConnectionType("String0") + .sapAnalyticsCloudLiveConnectionSystemType("String0") + .sapAnalyticsCloudLiveConnectionHost("String0") + .sapAnalyticsCloudLiveConnectionPort(123) + .sapAnalyticsCloudLiveConnectionProtocol("String0") + .sapAnalyticsCloudFolder(SapAnalyticsCloudFolder.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapAnalyticsCloudColumn(SapAnalyticsCloudColumn.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapAnalyticsCloudColumn( + SapAnalyticsCloudColumn.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleSapAnalyticsCloudModel() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapAnalyticsCloudModel,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapAnalyticsCloudModel via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapAnalyticsCloudModel,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapAnalyticsCloudModel frodo = MockAtlanTenant.client.readValue(serialized, SapAnalyticsCloudModel.class); + assertNotNull( + frodo, "Unable to reverse-read serialized value back into an instance of SapAnalyticsCloudModel,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudStoryTest.java b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudStoryTest.java new file mode 100644 index 0000000000..bcc251a98b --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapAnalyticsCloudStoryTest.java @@ -0,0 +1,1228 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class SapAnalyticsCloudStoryTest { + + private final SapAnalyticsCloudStory full = SapAnalyticsCloudStory._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .sapAnalyticsCloudResourceId("String0") + .sapAnalyticsCloudObjectId("String0") + .sapAnalyticsCloudRepositoryPartition("String0") + .sapAnalyticsCloudWorkspaceId("String0") + .sapAnalyticsCloudWorkspaceName("String0") + .sapAnalyticsCloudParentFolderQualifiedName("String0") + .sapAnalyticsCloudParentFolderName("String0") + .sapTechnicalName("String0") + .sapLogicalName("String0") + .sapPackageName("String0") + .sapComponentName("String0") + .sapDataType("String0") + .sapFieldCount(123456789L) + .sapFieldOrder(123) + .catalogDatasetGuid("String0") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .sapAnalyticsCloudStoryKind("String0") + .sapAnalyticsCloudIsSample(true) + .sapAnalyticsCloudFolder(SapAnalyticsCloudFolder.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleSapAnalyticsCloudStory() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapAnalyticsCloudStory,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapAnalyticsCloudStory via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapAnalyticsCloudStory,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapAnalyticsCloudStory frodo = MockAtlanTenant.client.readValue(serialized, SapAnalyticsCloudStory.class); + assertNotNull( + frodo, "Unable to reverse-read serialized value back into an instance of SapAnalyticsCloudStory,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/SapDatasphereReplicationFlowTest.java b/sdk/src/test/java/com/atlan/model/assets/SapDatasphereReplicationFlowTest.java new file mode 100644 index 0000000000..cfb5c12bab --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapDatasphereReplicationFlowTest.java @@ -0,0 +1,1244 @@ +/* SPDX-License-Identifier: Apache-2.0 + Copyright 2022 Atlan Pte. Ltd. */ +package com.atlan.model.assets; + +import static org.testng.Assert.*; + +import com.atlan.mock.MockAtlanTenant; +import com.atlan.model.core.AtlanTag; +import com.atlan.model.core.CustomMetadataAttributes; +import com.atlan.model.enums.*; +import com.atlan.model.structs.*; +import java.io.IOException; +import java.util.*; +import javax.annotation.processing.Generated; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@SuppressWarnings("deprecation") +public class SapDatasphereReplicationFlowTest { + + private final SapDatasphereReplicationFlow full = SapDatasphereReplicationFlow._internal() + .guid("guid") + .displayText("displayText") + .status(AtlanStatus.ACTIVE) + .createdBy("createdBy") + .updatedBy("updatedBy") + .createTime(123456789L) + .updateTime(123456789L) + .isIncomplete(false) + .deleteHandler("SOFT") + .meaningNames(Set.of("meaningName1", "meaningName2")) + .meanings(Set.of( + Meaning.builder() + .termGuid("termGuid1") + .relationGuid("relationGuid1") + .displayText("displayText1") + .confidence(100) + .build(), + Meaning.builder() + .termGuid("termGuid2") + .relationGuid("relationGuid2") + .displayText("displayText2") + .confidence(100) + .build())) + .qualifiedName("qualifiedName") + .atlanTag(AtlanTag.of("String0")) + .atlanTag(AtlanTag.builder().typeName("String1").propagate(false).build()) + .customMetadata( + "String0", + CustomMetadataAttributes.builder() + .attribute("String0", 123.456) + .attribute("String1", true) + .build()) + .customMetadata( + "String1", + CustomMetadataAttributes.builder() + // Note: for equivalency this MUST be a Long (not an Integer), as deserialization + // will always produce a Long + .attribute("String0", 789L) + .attribute("String1", "AnotherString") + .build()) + .flowStartedAt(123456789L) + .flowFinishedAt(123456789L) + .flowStatus("String0") + .flowSchedule("String0") + .flowProjectName("String0") + .flowProjectQualifiedName("String0") + .flowFolderName("String0") + .flowFolderQualifiedName("String0") + .flowReusableUnitName("String0") + .flowReusableUnitQualifiedName("String0") + .flowId("String0") + .flowRunId("String0") + .flowErrorMessage("String0") + .flowInputParameter("String0", "String0") + .flowInputParameter("String1", "String1") + .name("String0") + .displayName("String0") + .description("String0") + .assetSourceReadme("String0") + .userDescription("String0") + .assetAiGeneratedDescription("String0") + .assetAiGeneratedDescriptionConfidence(123.456) + .assetAiGeneratedDescriptionReasoning("String0") + .tenantId("String0") + .certificateStatus(CertificateStatus.DEPRECATED) + .certificateStatusMessage("String0") + .certificateUpdatedBy("String0") + .certificateUpdatedAt(123456789L) + .announcementTitle("String0") + .announcementMessage("String0") + .announcementType(AtlanAnnouncementType.INFORMATION) + .announcementUpdatedAt(123456789L) + .announcementUpdatedBy("String0") + .assetAnnouncementExpiredAt(123456789L) + .ownerUser("String0") + .ownerUser("String1") + .ownerGroup("String0") + .ownerGroup("String1") + .adminUser("String0") + .adminUser("String1") + .adminGroup("String0") + .adminGroup("String1") + .viewerUser("String0") + .viewerUser("String1") + .viewerGroup("String0") + .viewerGroup("String1") + .connectorName("String0") + .connectionName("String0") + .connectionQualifiedName("String0") + .hasLineage(true) + .isDiscoverable(true) + .isEditable(true) + .subType("String0") + .viewScore(123.456) + .popularityScore(123.456) + .sourceOwners("String0") + .assetSourceId("String0") + .sourceCreatedBy("String0") + .sourceCreatedAt(123456789L) + .sourceUpdatedAt(123456789L) + .sourceUpdatedBy("String0") + .sourceURL("String0") + .sourceEmbedURL("String0") + .lastSyncWorkflowName("String0") + .lastSyncRunAt(123456789L) + .lastSyncRun("String0") + .adminRole("String0") + .adminRole("String1") + .sourceReadCount(123456789L) + .sourceReadUserCount(123456789L) + .sourceLastReadAt(123456789L) + .lastRowChangedAt(123456789L) + .sourceTotalCost(123.456) + .sourceCostUnit(SourceCostUnitType.CREDITS) + .sourceReadQueryCost(123.456) + .sourceReadRecentUser("String0") + .sourceReadRecentUser("String1") + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadRecentUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadTopUser("String0") + .sourceReadTopUser("String1") + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadTopUserRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadPopularQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadExpensiveQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceReadSlowQueryRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .sourceQueryComputeCost("String0") + .sourceQueryComputeCost("String1") + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sourceQueryComputeCostRecord(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) + .dbtQualifiedName("String0") + .assetDbtWorkflowLastUpdated("String0") + .assetDbtAlias("String0") + .assetDbtMeta("String0") + .assetDbtUniqueId("String0") + .assetDbtAccountName("String0") + .assetDbtProjectName("String0") + .assetDbtPackageName("String0") + .assetDbtJobName("String0") + .assetDbtJobSchedule("String0") + .assetDbtJobStatus("String0") + .assetDbtTestStatus("String0") + .assetDbtJobScheduleCronHumanized("String0") + .assetDbtJobLastRun(123456789L) + .assetDbtJobLastRunUrl("String0") + .assetDbtJobLastRunCreatedAt(123456789L) + .assetDbtJobLastRunUpdatedAt(123456789L) + .assetDbtJobLastRunDequedAt(123456789L) + .assetDbtJobLastRunStartedAt(123456789L) + .assetDbtJobLastRunTotalDuration("String0") + .assetDbtJobLastRunTotalDurationHumanized("String0") + .assetDbtJobLastRunQueuedDuration("String0") + .assetDbtJobLastRunQueuedDurationHumanized("String0") + .assetDbtJobLastRunRunDuration("String0") + .assetDbtJobLastRunRunDurationHumanized("String0") + .assetDbtJobLastRunGitBranch("String0") + .assetDbtJobLastRunGitSha("String0") + .assetDbtJobLastRunStatusMessage("String0") + .assetDbtJobLastRunOwnerThreadId("String0") + .assetDbtJobLastRunExecutedByThreadId("String0") + .assetDbtJobLastRunArtifactsSaved(true) + .assetDbtJobLastRunArtifactS3Path("String0") + .assetDbtJobLastRunHasDocsGenerated(true) + .assetDbtJobLastRunHasSourcesGenerated(true) + .assetDbtJobLastRunNotificationsSent(true) + .assetDbtJobNextRun(123456789L) + .assetDbtJobNextRunHumanized("String0") + .assetDbtEnvironmentName("String0") + .assetDbtEnvironmentDbtVersion("String0") + .assetDbtTag("String0") + .assetDbtTag("String1") + .assetDbtSemanticLayerProxyUrl("String0") + .assetDbtSourceFreshnessCriteria("String0") + .sampleDataUrl("String0") + .assetTag("String0") + .assetTag("String1") + .assetMcIncidentName("String0") + .assetMcIncidentName("String1") + .assetMcIncidentQualifiedName("String0") + .assetMcIncidentQualifiedName("String1") + .assetMcAlertQualifiedName("String0") + .assetMcAlertQualifiedName("String1") + .assetMcMonitorName("String0") + .assetMcMonitorName("String1") + .assetMcMonitorQualifiedName("String0") + .assetMcMonitorQualifiedName("String1") + .assetMcMonitorStatus("String0") + .assetMcMonitorStatus("String1") + .assetMcMonitorType("String0") + .assetMcMonitorType("String1") + .assetMcMonitorScheduleType("String0") + .assetMcMonitorScheduleType("String1") + .assetMcIncidentType("String0") + .assetMcIncidentType("String1") + .assetMcIncidentSubType("String0") + .assetMcIncidentSubType("String1") + .assetMcIncidentSeverity("String0") + .assetMcIncidentSeverity("String1") + .assetMcIncidentPriority("String0") + .assetMcIncidentPriority("String1") + .assetMcIncidentState("String0") + .assetMcIncidentState("String1") + .assetMcIsMonitored(true) + .assetMcLastSyncRunAt(123456789L) + .addStarredBy("String0") + .addStarredBy("String1") + .starredDetail(StarredDetails.builder() + .assetStarredBy("String0") + .assetStarredAt(123456789L) + .build()) + .starredDetail(StarredDetails.builder() + .assetStarredBy("String1") + .assetStarredAt(987654321L) + .build()) + .starredCount(123) + .assetAnomaloDQStatus("String0") + .assetAnomaloCheckCount(123456789L) + .assetAnomaloFailedCheckCount(123456789L) + .assetAnomaloCheckStatuses("String0") + .assetAnomaloLastCheckRunAt(123456789L) + .assetAnomaloAppliedCheckType("String0") + .assetAnomaloAppliedCheckType("String1") + .assetAnomaloFailedCheckType("String0") + .assetAnomaloFailedCheckType("String1") + .assetAnomaloSourceUrl("String0") + .assetSodaDQStatus("String0") + .assetSodaCheckCount(123456789L) + .assetSodaLastSyncRunAt(123456789L) + .assetSodaLastScanAt(123456789L) + .assetSodaCheckStatuses("String0") + .assetSodaSourceURL("String0") + .assetIcon(AtlanIcon.ATLAN_TAG) + .assetSummaryProvider(AssetSummaryProvider.builder() + .assetSummaryProviderName("String0") + .assetSummaryProviderUrl("String0") + .build()) + .assetSummary("String0") + .assetSummaryFilterToken("String0") + .assetSummaryFilterToken("String1") + .assetExternalDQScoreValue(123.456) + .assetExternalDQTestEntity("String0") + .assetExternalDQTestEntity("String1") + .assetExternalDQTestLatestScore(123.456) + .assetExternalDQTestLatestScore(654.321) + .assetExternalDQTestAvgScore(123.456) + .assetExternalDQTestAvgScore(654.321) + .assetExternalDQTestMinScore(123.456) + .assetExternalDQTestMinScore(654.321) + .assetExternalDQMetadataDetail( + "String0", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String0") + .assetExternalDQSourceLogo("String0") + .assetExternalDQSourceURL("String0") + .assetExternalDQLastSyncRunAt(123456789L) + .assetExternalDQTestEntityTypeName("String0") + .assetExternalDQTestEntityName("String0") + .assetExternalDQTestTotalCount(123) + .assetExternalDQTestLastRunSuccessCount(123) + .assetExternalDQTestLastRunFailureCount(123) + .assetExternalDQTestLastRunTotalRulesCount(123456789L) + .assetExternalDQTestLastRunSuccessRulesCount(123456789L) + .assetExternalDQTestLastRunFailureRulesCount(123456789L) + .assetExternalDQOverallScoreValue("String0") + .assetExternalDQOverallScoreType("String0") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(123456789L) + .assetExternalDQTestStatsByCategory(Map.of( + "String0", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String0", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(123) + .build())) + .build())) + .build()) + .build()) + .assetExternalDQMetadataDetail( + "String1", + AssetExternalDQMetadata.builder() + .assetExternalDQSystemName("String1") + .assetExternalDQSourceLogo("String1") + .assetExternalDQSourceURL("String1") + .assetExternalDQLastSyncRunAt(987654321L) + .assetExternalDQTestEntityTypeName("String1") + .assetExternalDQTestEntityName("String1") + .assetExternalDQTestTotalCount(456) + .assetExternalDQTestLastRunSuccessCount(456) + .assetExternalDQTestLastRunFailureCount(456) + .assetExternalDQTestLastRunTotalRulesCount(987654321L) + .assetExternalDQTestLastRunSuccessRulesCount(987654321L) + .assetExternalDQTestLastRunFailureRulesCount(987654321L) + .assetExternalDQOverallScoreValue("String1") + .assetExternalDQOverallScoreType("String1") + .assetExternalDQScoreDimensions(List.of( + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String0") + .assetExternalDQScoreDimensionDescription("String0") + .assetExternalDQScoreDimensionScoreValue("String0") + .assetExternalDQScoreDimensionScoreType("String0") + .build(), + AssetExternalDQScoreBreakdownByDimension.builder() + .assetExternalDQScoreDimensionName("String1") + .assetExternalDQScoreDimensionDescription("String1") + .assetExternalDQScoreDimensionScoreValue("String1") + .assetExternalDQScoreDimensionScoreType("String1") + .build())) + .assetExternalDQTests(List.of( + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String0") + .assetExternalDQTestId("String0") + .assetExternalDQTestDescription("String0") + .assetExternalDQTestScheduleType("String0") + .assetExternalDQTestLastRunStatus("String0") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build(), + AssetExternalDQTestDetails.builder() + .assetExternalDQTestName("String1") + .assetExternalDQTestId("String1") + .assetExternalDQTestDescription("String1") + .assetExternalDQTestScheduleType("String1") + .assetExternalDQTestLastRunStatus("String1") + .assetExternalDQTestRuns(List.of( + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String0") + .assetExternalDQTestRunStartedAt(123456789L) + .assetExternalDQTestRunEndedAt(123456789L) + .assetExternalDQTestRunStatus("String0") + .assetExternalDQTestRunScoreValue("String0") + .assetExternalDQTestScoreType("String0") + .assetExternalDQTestTotalRulesCount(123456789L) + .assetExternalDQTestPassedRulesCount(123456789L) + .assetExternalDQTestFailedRulesCount(123456789L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String0") + .assetExternalDQTestMetricUpperBound( + "String0") + .assetExternalDQTestMetricLowerBound( + "String0") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build(), + AssetExternalDQTestRunHistory.builder() + .assetExternalDQTestRunId("String1") + .assetExternalDQTestRunStartedAt(987654321L) + .assetExternalDQTestRunEndedAt(987654321L) + .assetExternalDQTestRunStatus("String1") + .assetExternalDQTestRunScoreValue("String1") + .assetExternalDQTestScoreType("String1") + .assetExternalDQTestTotalRulesCount(987654321L) + .assetExternalDQTestPassedRulesCount(987654321L) + .assetExternalDQTestFailedRulesCount(987654321L) + .assetExternalDQTestMetricInfo( + AssetExternalDQTestMetric.builder() + .assetExternalDQTestMetricObservedValue( + "String1") + .assetExternalDQTestMetricUpperBound( + "String1") + .assetExternalDQTestMetricLowerBound( + "String1") + .build()) + .assetExternalDQTestScoreDimensions(List.of( + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String0") + .assetExternalDQTestScoreDimensionDescription( + "String0") + .assetExternalDQTestScoreDimensionScoreValue( + "String0") + .assetExternalDQTestScoreDimensionScoreType( + "String0") + .build(), + AssetExternalDQTestScoreDimension.builder() + .assetExternalDQTestScoreDimensionName( + "String1") + .assetExternalDQTestScoreDimensionDescription( + "String1") + .assetExternalDQTestScoreDimensionScoreValue( + "String1") + .assetExternalDQTestScoreDimensionScoreType( + "String1") + .build())) + .assetExternalDQTestRules(List.of( + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String0") + .assetExternalDQTestRuleEvaluationStatus( + "String0") + .assetExternalDQTestRuleEvaluatedAt( + 123456789L) + .assetExternalDQTestRuleImpact("String0") + .assetExternalDQTestRuleType("String0") + .assetExternalDQTestRuleColumnName( + "String0") + .assetExternalDQTestRuleDimension("String0") + .build(), + AssetExternalDQTestRule.builder() + .assetExternalDQTestRuleName("String1") + .assetExternalDQTestRuleEvaluationStatus( + "String1") + .assetExternalDQTestRuleEvaluatedAt( + 987654321L) + .assetExternalDQTestRuleImpact("String1") + .assetExternalDQTestRuleType("String1") + .assetExternalDQTestRuleColumnName( + "String1") + .assetExternalDQTestRuleDimension("String1") + .build())) + .build())) + .build())) + .assetExternalDQTestStats(AssetExternalDQTestStats.builder() + .assetExternalDQTestLastAssessedAt(987654321L) + .assetExternalDQTestStatsByCategory(Map.of( + "String1", + AssetExternalDQTestStatsByCategory.builder() + .assetExternalDQTestsByStatus(Map.of( + "String1", + AssetExternalDQTestsByStatus.builder() + .assetExternalDQTestCountForStatus(456) + .build())) + .build())) + .build()) + .build()) + .isPartial(true) + .isAIGenerated(true) + .assetCoverImage("String0") + .assetThemeHex("String0") + .lexicographicalSortOrder("String0") + .hasContract(true) + .assetRedirectGUID("String0") + .assetRedirectGUID("String1") + .assetPolicyGUID("String0") + .assetPolicyGUID("String1") + .assetPoliciesCount(123456789L) + .domainGUID("String0") + .domainGUID("String1") + .nonCompliantAssetPolicyGUID("String0") + .nonCompliantAssetPolicyGUID("String1") + .productGUID("String0") + .productGUID("String1") + .outputProductGUID("String0") + .outputProductGUID("String1") + .applicationQualifiedName("String0") + .applicationFieldQualifiedName("String0") + .assetUserDefinedType("String0") + .assetInternalPopularityScore(123.456) + .assetDQScheduleType(DataQualityScheduleType.ON_DATA_CHANGE) + .assetDQScheduleCrontab("String0") + .assetDQScheduleTimeZone("String0") + .assetDQScheduleSourceSyncStatus(DataQualitySourceSyncStatus.SUCCESSFUL) + .assetDQScheduleSourceSyncedAt(123456789L) + .assetDQScheduleSourceSyncErrorMessage("String0") + .assetDQScheduleSourceSyncErrorCode("String0") + .assetDQScheduleSourceSyncRawError("String0") + .assetDQRuleAttachedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleAttachedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleFailedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRuleFailedDimension(DataQualityDimension.TIMELINESS) + .assetDQRulePassedDimension(DataQualityDimension.COMPLETENESS) + .assetDQRulePassedDimension(DataQualityDimension.TIMELINESS) + .assetDQRuleAttachedRuleType("String0") + .assetDQRuleAttachedRuleType("String1") + .assetDQRuleFailedRuleType("String0") + .assetDQRuleFailedRuleType("String1") + .assetDQRulePassedRuleType("String0") + .assetDQRulePassedRuleType("String1") + .assetDQRuleResultTag("String0") + .assetDQRuleResultTag("String1") + .assetDQRuleLastRunAt(123456789L) + .assetDQManualRunStatus(AssetDQRunStatus.SUCCESSFUL) + .assetDQRuleTotalCount(123456789L) + .assetDQRuleFailedCount(123456789L) + .assetDQRulePassedCount(123456789L) + .assetDQResult(DataQualityResult.PASS) + .assetDQFreshnessValue(123456789L) + .assetDQFreshnessExpectation(123456789L) + .assetDQRowScopeFilterColumnQualifiedName("String0") + .assetSpaceQualifiedName("String0") + .assetSpaceName("String0") + .assetImmutaRequestUrl("String0") + .assetImmutaRequestType("String0") + .assetGCPDataplexMetadataDetails(AssetGCPDataplexMetadata.builder() + .assetGCPDataplexLastSyncRunAt(123456789L) + .assetGCPDataplexEntryName("String0") + .assetGCPDataplexAspectDetails(Map.of( + "String0", + AssetGCPDataplexAspectMetadata.builder() + .assetGCPDataplexAspectFullName("String0") + .assetGCPDataplexAspectDisplayName("String0") + .assetGCPDataplexAspectType("String0") + .assetGCPDataplexAspectTypeLabels(Map.of("String0", "String0")) + .assetGCPDataplexAspectCreatedAt(123456789L) + .assetGCPDataplexAspectUpdatedAt(123456789L) + .assetGCPDataplexAspectFields(Map.of("String0", "String0")) + .build())) + .build()) + .addAssetGCPDataplexAspect("String0") + .addAssetGCPDataplexAspect("String1") + .addAssetGCPDataplexAspectField("String0") + .addAssetGCPDataplexAspectField("String1") + .assetSmusMetadataFormName("String0") + .assetSmusMetadataFormName("String1") + .assetSmusMetadataFormKeyValueDetail("String0") + .assetSmusMetadataFormKeyValueDetail("String1") + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String0") + .assetMetadataFormDescription("String0") + .assetMetadataFormDomainId("String0") + .assetMetadataFormProjectId("String0") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.ENABLED) + .assetMetadataFormRevision("String0") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .assetSmusMetadataFormDetail(AssetSmusMetadataFormDetails.builder() + .assetMetadataFormName("String1") + .assetMetadataFormDescription("String1") + .assetMetadataFormDomainId("String1") + .assetMetadataFormProjectId("String1") + .assetMetadataFormStatus(AssetSmusMetadataFormStatus.DISABLED) + .assetMetadataFormRevision("String1") + .assetMetadataFormFields(List.of(Map.of("key1", "value1"), Map.of("key2", "value2"))) + .build()) + .addAssetAiAlias("String0") + .addAssetAiAlias("String1") + .assetHasAiReadme(true) + .sapDatasphereReplicationFlowSpaceName("String0") + .sapDatasphereReplicationFlowSpaceQualifiedName("String0") + .sapDatasphereReplicationFlowSourceConnection("String0") + .sapDatasphereReplicationFlowTargetConnection("String0") + .sapDatasphereReplicationFlowLoadType("String0") + .sapDatasphereReplicationFlowDatasetCount(123456789L) + .flowDataResult(LineageProcess.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .flowDataResult(LineageProcess.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .flowPredecessor(FlowControlOperation.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .flowPredecessor(FlowControlOperation.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .flowSuccessor(FlowControlOperation.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .flowSuccessor(FlowControlOperation.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .flowControlledOperation(FlowControlOperation.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .flowControlledOperation( + FlowControlOperation.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .flowControlledBy(FlowControlOperation.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapDatasphereSchema(Schema.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .anomaloCheck(AnomaloCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .application(Application.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .applicationField(ApplicationField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatest(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dataContractLatestCertified(DataContract.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqBaseDatasetRule(DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .dqReferenceDatasetRule(DataQualityRule.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .dqReferenceDatasetRule( + DataQualityRule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .file(File.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .file(File.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .inputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .inputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .link(Link.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .link(Link.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcIncident(MCIncident.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcIncident(MCIncident.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .mcMonitor(MCMonitor.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .mcMonitor(MCMonitor.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .metric(Metric.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .metric(Metric.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .outputPortDataProduct(DataProduct.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .outputPortDataProduct(DataProduct.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .readme(Readme.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject(SchemaRegistrySubject.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .schemaRegistrySubject( + SchemaRegistrySubject.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sodaCheck(SodaCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sodaCheck(SodaCheck.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipFrom(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipFrom( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .userDefRelationshipTo(IndistinctAsset.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .userDefRelationshipTo( + IndistinctAsset.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .build(); + + @BeforeClass + void init() throws InterruptedException { + MockAtlanTenant.initializeClient(); + } + + @Test + void serdeCycleSapDatasphereReplicationFlow() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapDatasphereReplicationFlow,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapDatasphereReplicationFlow via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapDatasphereReplicationFlow,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapDatasphereReplicationFlow frodo = + MockAtlanTenant.client.readValue(serialized, SapDatasphereReplicationFlow.class); + assertNotNull( + frodo, + "Unable to reverse-read serialized value back into an instance of SapDatasphereReplicationFlow,"); + // Serialized equivalency + String backAgain = frodo.toJson(MockAtlanTenant.client); + assertEquals(backAgain, serialized, "Serialization is not equivalent after serde loop,"); + // Deserialized equivalency + assertEquals(frodo, full, "Deserialization is not equivalent after serde loop,"); + } +} diff --git a/sdk/src/test/java/com/atlan/model/assets/SapErpTableTest.java b/sdk/src/test/java/com/atlan/model/assets/SapErpTableTest.java index 797a4f16e6..62db47413d 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SapErpTableTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SapErpTableTest.java @@ -1151,6 +1151,8 @@ public class SapErpTableTest { .sapErpColumn(SapErpColumn.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .sapErpColumn(SapErpColumn.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .sapErpComponent(SapErpComponent.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpRelatedTable(SapErpTable.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpRelatedTable(SapErpTable.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .anomaloCheck(AnomaloCheck.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/SchemaTest.java b/sdk/src/test/java/com/atlan/model/assets/SchemaTest.java index 58842f4d5d..ad0b20a7fc 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SchemaTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SchemaTest.java @@ -1195,6 +1195,10 @@ public class SchemaTest { .sqlDBTSource(DbtSource.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .dbtSeedAsset(DbtSeed.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .dbtSeedAsset(DbtSeed.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapDatasphereReplicationFlow( + SapDatasphereReplicationFlow.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapDatasphereReplicationFlow( + SapDatasphereReplicationFlow.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .calculationView(CalculationView.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .calculationView(CalculationView.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .function(Function.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) diff --git a/sdk/src/test/java/com/atlan/model/assets/SqlInsightBusinessQuestionTest.java b/sdk/src/test/java/com/atlan/model/assets/SqlInsightBusinessQuestionTest.java index 05b8a0f71d..73cbab73bc 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SqlInsightBusinessQuestionTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SqlInsightBusinessQuestionTest.java @@ -1139,11 +1139,36 @@ public class SqlInsightBusinessQuestionTest { .addAssetAiAlias("String0") .addAssetAiAlias("String1") .assetHasAiReadme(true) + .sqlInsightBusinessQuestionDatasetQualifiedName("String0") .sqlInsightBusinessQuestionText("String0") .sqlInsightBusinessQuestionCanonicalSQL("String0") .sqlInsightBusinessQuestionQueryCount(123) .sqlInsightBusinessQuestionUniqueUsers(123) .sqlInsightBusinessQuestionLastSeenAt(123456789L) + .sqlInsightBusinessQuestionExampleQuery(PopularityInsights.builder() + .recordUser("String0") + .recordQuery("String0") + .recordQueryDuration(123456789L) + .recordQueryCount(123456789L) + .recordTotalUserCount(123456789L) + .recordComputeCost(123.456) + .recordMaxComputeCost(123.456) + .recordComputeCostUnit(SourceCostUnitType.CREDITS) + .recordLastTimestamp(123456789L) + .recordWarehouse("String0") + .build()) + .sqlInsightBusinessQuestionExampleQuery(PopularityInsights.builder() + .recordUser("String1") + .recordQuery("String1") + .recordQueryDuration(987654321L) + .recordQueryCount(987654321L) + .recordTotalUserCount(987654321L) + .recordComputeCost(654.321) + .recordMaxComputeCost(654.321) + .recordComputeCostUnit(SourceCostUnitType.BYTES) + .recordLastTimestamp(987654321L) + .recordWarehouse("String1") + .build()) .sqlInsightDataset(Table.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .assignedTerm(GlossaryTerm.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName"))