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 65e0f432db..de306f8cce 100644 --- a/sdk/src/main/java/com/atlan/model/assets/BIProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/BIProcess.java @@ -91,7 +91,7 @@ public class BIProcess extends Asset implements IBIProcess, ILineageProcess, IAs @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 8e739414fa..2f6ef8c673 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ColumnProcess.java @@ -91,7 +91,7 @@ public class ColumnProcess extends Asset implements IColumnProcess, ILineageProc @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 c7844eb319..fd6a92e02f 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ConnectionProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/ConnectionProcess.java @@ -96,7 +96,7 @@ public class ConnectionProcess extends Asset implements IConnectionProcess, ILin @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 e40527ed28..2d8f67fd26 100644 --- a/sdk/src/main/java/com/atlan/model/assets/DbtColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/DbtColumnProcess.java @@ -181,7 +181,7 @@ public class DbtColumnProcess extends Asset @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 cbda09a1ad..7314280466 100644 --- a/sdk/src/main/java/com/atlan/model/assets/DbtProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/DbtProcess.java @@ -186,7 +186,7 @@ public class DbtProcess extends Asset implements IDbtProcess, ILineageProcess, I @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; diff --git a/sdk/src/main/java/com/atlan/model/assets/FivetranConnector.java b/sdk/src/main/java/com/atlan/model/assets/FivetranConnector.java index 176259977b..d0cc11fd20 100644 --- a/sdk/src/main/java/com/atlan/model/assets/FivetranConnector.java +++ b/sdk/src/main/java/com/atlan/model/assets/FivetranConnector.java @@ -54,11 +54,11 @@ public class FivetranConnector extends Asset @Attribute String catalogDatasetGuid; - /** Total credits used by this destination */ + /** Total credits used by this destination. */ @Attribute Double fivetranConnectorCreditsUsed; - /** Destination name added by the user on Fivetran */ + /** Destination name added by the user on Fivetran. */ @Attribute String fivetranConnectorDestinationName; @@ -66,40 +66,40 @@ public class FivetranConnector extends Asset @Attribute String fivetranConnectorDestinationType; - /** URL to open the destination details on Fivetran */ + /** URL to open the destination details on Fivetran. */ @Attribute String fivetranConnectorDestinationURL; - /** Extract time in seconds in the latest sync on fivetran */ + /** Extract time in seconds in the latest sync on fivetran. */ @Attribute Double fivetranConnectorLastSyncExtractTimeSeconds; - /** Extracted data volume in metabytes in the latest sync on Fivetran */ + /** Extracted data volume in metabytes in the latest sync on Fivetran. */ @Attribute Double fivetranConnectorLastSyncExtractVolumeMegabytes; - /** Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds */ + /** Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds. */ @Attribute @Date Long fivetranConnectorLastSyncFinishedAt; - /** ID of the latest sync */ + /** ID of the latest sync. */ @Attribute String fivetranConnectorLastSyncId; - /** Load time in seconds in the latest sync on Fivetran */ + /** Load time in seconds in the latest sync on Fivetran. */ @Attribute Double fivetranConnectorLastSyncLoadTimeSeconds; - /** Loaded data volume in metabytes in the latest sync on Fivetran */ + /** Loaded data volume in metabytes in the latest sync on Fivetran. */ @Attribute Double fivetranConnectorLastSyncLoadVolumeMegabytes; - /** Process time in seconds in the latest sync on Fivetran */ + /** Process time in seconds in the latest sync on Fivetran. */ @Attribute Double fivetranConnectorLastSyncProcessTimeSeconds; - /** Process volume in metabytes in the latest sync on Fivetran */ + /** Process volume in metabytes in the latest sync on Fivetran. */ @Attribute Double fivetranConnectorLastSyncProcessVolumeMegabytes; @@ -107,17 +107,17 @@ public class FivetranConnector extends Asset @Attribute String fivetranConnectorLastSyncReason; - /** Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran */ + /** Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran. */ @Attribute @Date Long fivetranConnectorLastSyncRescheduledAt; - /** Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds */ + /** Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds. */ @Attribute @Date Long fivetranConnectorLastSyncStartedAt; - /** Number of tables synced in the latest sync on Fivetran */ + /** Number of tables synced in the latest sync on Fivetran. */ @Attribute Long fivetranConnectorLastSyncTablesSynced; @@ -125,76 +125,92 @@ public class FivetranConnector extends Asset @Attribute String fivetranConnectorLastSyncTaskType; - /** Total sync time in seconds in the latest sync on Fivetran */ + /** Total sync time in seconds in the latest sync on Fivetran. */ @Attribute Double fivetranConnectorLastSyncTotalTimeSeconds; - /** Increase in the percentage of free MAR compared to the previous month */ + /** Increase in the percentage of free MAR compared to the previous month. */ @Attribute Double fivetranConnectorMonthlyActiveRowsChangePercentageFree; - /** Increase in the percentage of paid MAR compared to the previous month */ + /** Increase in the percentage of paid MAR compared to the previous month. */ @Attribute Double fivetranConnectorMonthlyActiveRowsChangePercentagePaid; - /** Increase in the percentage of total MAR compared to the previous month */ + /** Increase in the percentage of total MAR compared to the previous month. */ @Attribute Double fivetranConnectorMonthlyActiveRowsChangePercentageTotal; - /** Free Monthly Active Rows used by the connector in the past month */ + /** Free Monthly Active Rows used by the connector in the past month. */ @Attribute Long fivetranConnectorMonthlyActiveRowsFree; - /** Percentage of the account's total free MAR used by this connector */ + /** Percentage of the account's total free MAR used by this connector. */ @Attribute Double fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount; - /** Paid Monthly Active Rows used by the connector in the past month */ + /** Paid Monthly Active Rows used by the connector in the past month. */ @Attribute Long fivetranConnectorMonthlyActiveRowsPaid; - /** Percentage of the account's total paid MAR used by this connector */ + /** Percentage of the account's total paid MAR used by this connector. */ @Attribute Double fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount; - /** Total Monthly Active Rows used by the connector in the past month */ + /** Total Monthly Active Rows used by the connector in the past month. */ @Attribute Long fivetranConnectorMonthlyActiveRowsTotal; - /** Percentage of the account's total MAR used by this connector */ + /** Percentage of the account's total MAR used by this connector. */ @Attribute Double fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount; - /** Connector name added by the user on Fivetran */ + /** Connector name added by the user on Fivetran. */ @Attribute String fivetranConnectorName; - /** Sync frequency for the connector in number of hours. Eg: Every 6 hours */ + /** Database of the source system this connector reads from. */ + @Attribute + String fivetranConnectorSourceDatabase; + + /** Host of the source system (database or SFTP/FTP server) this connector reads from. */ + @Attribute + String fivetranConnectorSourceHost; + + /** Location of the source data: folder URL, bucket, storage account/container, or instance URL. */ + @Attribute + String fivetranConnectorSourceLocation; + + /** Folder prefix inside the source location. */ + @Attribute + String fivetranConnectorSourcePath; + + /** Sync frequency for the connector in number of hours. Eg: Every 6 hours. */ @Attribute String fivetranConnectorSyncFrequency; - /** Boolean to indicate whether the sync for this connector is paused or not */ + /** Boolean to indicate whether the sync for this connector is paused or not. */ @Attribute Boolean fivetranConnectorSyncPaused; - /** Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds */ + /** Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds. */ @Attribute @Date Long fivetranConnectorSyncSetupOn; - /** Email ID of the user who setpu the connector on Fivetran */ + /** Email ID of the user who setpu the connector on Fivetran. */ @Attribute String fivetranConnectorSyncSetupUserEmail; - /** Full name of the user who setup the connector on Fivetran */ + /** Full name of the user who setup the connector on Fivetran. */ @Attribute String fivetranConnectorSyncSetupUserFullName; - /** Total five tables sorted by MAR synced by this connector */ + /** Total five tables sorted by MAR synced by this connector. */ @Attribute String fivetranConnectorTopTablesByMAR; - /** Total number of tables synced by this connector */ + /** Total number of tables synced by this connector. */ @Attribute Long fivetranConnectorTotalTablesSynced; @@ -202,15 +218,15 @@ public class FivetranConnector extends Asset @Attribute String fivetranConnectorType; - /** URL to open the connector details on Fivetran */ + /** URL to open the connector details on Fivetran. */ @Attribute String fivetranConnectorURL; - /** Total usage cost by this destination */ + /** Total usage cost by this destination. */ @Attribute Double fivetranConnectorUsageCost; - /** Number of records updated in the latest sync on Fivetran */ + /** Number of records updated in the latest sync on Fivetran. */ @Attribute Long fivetranLastSyncRecordsUpdated; @@ -218,7 +234,7 @@ public class FivetranConnector extends Asset @Attribute FivetranConnectorStatus fivetranLastSyncStatus; - /** Name of the atlan fivetran workflow that updated this asset */ + /** Name of the atlan fivetran workflow that updated this asset. */ @Attribute String fivetranWorkflowName; @@ -272,7 +288,7 @@ public class FivetranConnector extends Asset @Singular SortedSet partialChildObjects; - /** Processes related to this Fivetran connector */ + /** Processes related to this Fivetran connector. */ @Attribute @Singular SortedSet processes; 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 b7d4660d6b..c794df5002 100644 --- a/sdk/src/main/java/com/atlan/model/assets/FlowDatasetOperation.java +++ b/sdk/src/main/java/com/atlan/model/assets/FlowDatasetOperation.java @@ -92,7 +92,7 @@ public class FlowDatasetOperation extends Asset @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 58c3d4d6df..38b9dac21a 100644 --- a/sdk/src/main/java/com/atlan/model/assets/FlowFieldOperation.java +++ b/sdk/src/main/java/com/atlan/model/assets/FlowFieldOperation.java @@ -92,7 +92,7 @@ public class FlowFieldOperation extends Asset @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 11f089e96d..aa51a75332 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ICatalog.java +++ b/sdk/src/main/java/com/atlan/model/assets/ICatalog.java @@ -931,6 +931,12 @@ public static ICatalog getLineageReference(String typeName, String qualifiedName case SapErpComponent.TYPE_NAME: ref = SapErpComponent.refByQualifiedName(qualifiedName); break; + case SapErpDataSource.TYPE_NAME: + ref = SapErpDataSource.refByQualifiedName(qualifiedName); + break; + case SapErpDataSourceField.TYPE_NAME: + ref = SapErpDataSourceField.refByQualifiedName(qualifiedName); + break; case SapErpFioriApp.TYPE_NAME: ref = SapErpFioriApp.refByQualifiedName(qualifiedName); break; diff --git a/sdk/src/main/java/com/atlan/model/assets/IFivetran.java b/sdk/src/main/java/com/atlan/model/assets/IFivetran.java index 4a6cb5e54e..afc9f1b21c 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IFivetran.java +++ b/sdk/src/main/java/com/atlan/model/assets/IFivetran.java @@ -43,14 +43,14 @@ public interface IFivetran { public static final String TYPE_NAME = "Fivetran"; - /** Number of records updated in the latest sync on Fivetran */ + /** Number of records updated in the latest sync on Fivetran. */ NumericField FIVETRAN_LAST_SYNC_RECORDS_UPDATED = new NumericField("fivetranLastSyncRecordsUpdated", "fivetranLastSyncRecordsUpdated"); /** Status of the latest sync on Fivetran. */ KeywordField FIVETRAN_LAST_SYNC_STATUS = new KeywordField("fivetranLastSyncStatus", "fivetranLastSyncStatus"); - /** Name of the atlan fivetran workflow that updated this asset */ + /** Name of the atlan fivetran workflow that updated this asset. */ KeywordField FIVETRAN_WORKFLOW_NAME = new KeywordField("fivetranWorkflowName", "fivetranWorkflowName"); /** List of groups who administer this asset. (This is only used for certain asset types.) */ @@ -557,13 +557,13 @@ default SortedSet getFiles() { return null; } - /** Number of records updated in the latest sync on Fivetran */ + /** Number of records updated in the latest sync on Fivetran. */ Long getFivetranLastSyncRecordsUpdated(); /** Status of the latest sync on Fivetran. */ FivetranConnectorStatus getFivetranLastSyncStatus(); - /** Name of the atlan fivetran workflow that updated this asset */ + /** Name of the atlan fivetran workflow that updated this asset. */ String getFivetranWorkflowName(); /** Whether this asset has contract (true) or not (false). */ diff --git a/sdk/src/main/java/com/atlan/model/assets/IFivetranConnector.java b/sdk/src/main/java/com/atlan/model/assets/IFivetranConnector.java index 4e79337282..f138e09fdf 100644 --- a/sdk/src/main/java/com/atlan/model/assets/IFivetranConnector.java +++ b/sdk/src/main/java/com/atlan/model/assets/IFivetranConnector.java @@ -47,11 +47,11 @@ public interface IFivetranConnector { public static final String TYPE_NAME = "FivetranConnector"; - /** Total credits used by this destination */ + /** Total credits used by this destination. */ NumericField FIVETRAN_CONNECTOR_CREDITS_USED = new NumericField("fivetranConnectorCreditsUsed", "fivetranConnectorCreditsUsed"); - /** Destination name added by the user on Fivetran */ + /** Destination name added by the user on Fivetran. */ KeywordField FIVETRAN_CONNECTOR_DESTINATION_NAME = new KeywordField("fivetranConnectorDestinationName", "fivetranConnectorDestinationName"); @@ -59,39 +59,39 @@ public interface IFivetranConnector { KeywordField FIVETRAN_CONNECTOR_DESTINATION_TYPE = new KeywordField("fivetranConnectorDestinationType", "fivetranConnectorDestinationType"); - /** URL to open the destination details on Fivetran */ + /** URL to open the destination details on Fivetran. */ KeywordField FIVETRAN_CONNECTOR_DESTINATION_URL = new KeywordField("fivetranConnectorDestinationURL", "fivetranConnectorDestinationURL"); - /** Extract time in seconds in the latest sync on fivetran */ + /** Extract time in seconds in the latest sync on fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_TIME_SECONDS = new NumericField( "fivetranConnectorLastSyncExtractTimeSeconds", "fivetranConnectorLastSyncExtractTimeSeconds"); - /** Extracted data volume in metabytes in the latest sync on Fivetran */ + /** Extracted data volume in metabytes in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_EXTRACT_VOLUME_MEGABYTES = new NumericField( "fivetranConnectorLastSyncExtractVolumeMegabytes", "fivetranConnectorLastSyncExtractVolumeMegabytes"); - /** Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds */ + /** Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_FINISHED_AT = new NumericField("fivetranConnectorLastSyncFinishedAt", "fivetranConnectorLastSyncFinishedAt"); - /** ID of the latest sync */ + /** ID of the latest sync. */ KeywordField FIVETRAN_CONNECTOR_LAST_SYNC_ID = new KeywordField("fivetranConnectorLastSyncId", "fivetranConnectorLastSyncId"); - /** Load time in seconds in the latest sync on Fivetran */ + /** Load time in seconds in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_TIME_SECONDS = new NumericField("fivetranConnectorLastSyncLoadTimeSeconds", "fivetranConnectorLastSyncLoadTimeSeconds"); - /** Loaded data volume in metabytes in the latest sync on Fivetran */ + /** Loaded data volume in metabytes in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_LOAD_VOLUME_MEGABYTES = new NumericField( "fivetranConnectorLastSyncLoadVolumeMegabytes", "fivetranConnectorLastSyncLoadVolumeMegabytes"); - /** Process time in seconds in the latest sync on Fivetran */ + /** Process time in seconds in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_TIME_SECONDS = new NumericField( "fivetranConnectorLastSyncProcessTimeSeconds", "fivetranConnectorLastSyncProcessTimeSeconds"); - /** Process volume in metabytes in the latest sync on Fivetran */ + /** Process volume in metabytes in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_PROCESS_VOLUME_MEGABYTES = new NumericField( "fivetranConnectorLastSyncProcessVolumeMegabytes", "fivetranConnectorLastSyncProcessVolumeMegabytes"); @@ -101,15 +101,15 @@ public interface IFivetranConnector { "fivetranConnectorLastSyncReason.keyword", "fivetranConnectorLastSyncReason"); - /** Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran */ + /** Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_RESCHEDULED_AT = new NumericField("fivetranConnectorLastSyncRescheduledAt", "fivetranConnectorLastSyncRescheduledAt"); - /** Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds */ + /** Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_STARTED_AT = new NumericField("fivetranConnectorLastSyncStartedAt", "fivetranConnectorLastSyncStartedAt"); - /** Number of tables synced in the latest sync on Fivetran */ + /** Number of tables synced in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_TABLES_SYNCED = new NumericField("fivetranConnectorLastSyncTablesSynced", "fivetranConnectorLastSyncTablesSynced"); @@ -117,94 +117,110 @@ public interface IFivetranConnector { KeywordField FIVETRAN_CONNECTOR_LAST_SYNC_TASK_TYPE = new KeywordField("fivetranConnectorLastSyncTaskType", "fivetranConnectorLastSyncTaskType"); - /** Total sync time in seconds in the latest sync on Fivetran */ + /** Total sync time in seconds in the latest sync on Fivetran. */ NumericField FIVETRAN_CONNECTOR_LAST_SYNC_TOTAL_TIME_SECONDS = new NumericField("fivetranConnectorLastSyncTotalTimeSeconds", "fivetranConnectorLastSyncTotalTimeSeconds"); - /** Increase in the percentage of free MAR compared to the previous month */ + /** Increase in the percentage of free MAR compared to the previous month. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_FREE = new NumericField( "fivetranConnectorMonthlyActiveRowsChangePercentageFree", "fivetranConnectorMonthlyActiveRowsChangePercentageFree"); - /** Increase in the percentage of paid MAR compared to the previous month */ + /** Increase in the percentage of paid MAR compared to the previous month. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_PAID = new NumericField( "fivetranConnectorMonthlyActiveRowsChangePercentagePaid", "fivetranConnectorMonthlyActiveRowsChangePercentagePaid"); - /** Increase in the percentage of total MAR compared to the previous month */ + /** Increase in the percentage of total MAR compared to the previous month. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_CHANGE_PERCENTAGE_TOTAL = new NumericField( "fivetranConnectorMonthlyActiveRowsChangePercentageTotal", "fivetranConnectorMonthlyActiveRowsChangePercentageTotal"); - /** Free Monthly Active Rows used by the connector in the past month */ + /** Free Monthly Active Rows used by the connector in the past month. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE = new NumericField("fivetranConnectorMonthlyActiveRowsFree", "fivetranConnectorMonthlyActiveRowsFree"); - /** Percentage of the account's total free MAR used by this connector */ + /** Percentage of the account's total free MAR used by this connector. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_FREE_PERCENTAGE_OF_ACCOUNT = new NumericField( "fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount", "fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount"); - /** Paid Monthly Active Rows used by the connector in the past month */ + /** Paid Monthly Active Rows used by the connector in the past month. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID = new NumericField("fivetranConnectorMonthlyActiveRowsPaid", "fivetranConnectorMonthlyActiveRowsPaid"); - /** Percentage of the account's total paid MAR used by this connector */ + /** Percentage of the account's total paid MAR used by this connector. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_PAID_PERCENTAGE_OF_ACCOUNT = new NumericField( "fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount", "fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount"); - /** Total Monthly Active Rows used by the connector in the past month */ + /** Total Monthly Active Rows used by the connector in the past month. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL = new NumericField("fivetranConnectorMonthlyActiveRowsTotal", "fivetranConnectorMonthlyActiveRowsTotal"); - /** Percentage of the account's total MAR used by this connector */ + /** Percentage of the account's total MAR used by this connector. */ NumericField FIVETRAN_CONNECTOR_MONTHLY_ACTIVE_ROWS_TOTAL_PERCENTAGE_OF_ACCOUNT = new NumericField( "fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount", "fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount"); - /** Connector name added by the user on Fivetran */ + /** Connector name added by the user on Fivetran. */ KeywordField FIVETRAN_CONNECTOR_NAME = new KeywordField("fivetranConnectorName", "fivetranConnectorName"); - /** Sync frequency for the connector in number of hours. Eg: Every 6 hours */ + /** Database of the source system this connector reads from. */ + KeywordField FIVETRAN_CONNECTOR_SOURCE_DATABASE = + new KeywordField("fivetranConnectorSourceDatabase", "fivetranConnectorSourceDatabase"); + + /** Host of the source system (database or SFTP/FTP server) this connector reads from. */ + KeywordField FIVETRAN_CONNECTOR_SOURCE_HOST = + new KeywordField("fivetranConnectorSourceHost", "fivetranConnectorSourceHost"); + + /** Location of the source data: folder URL, bucket, storage account/container, or instance URL. */ + KeywordField FIVETRAN_CONNECTOR_SOURCE_LOCATION = + new KeywordField("fivetranConnectorSourceLocation", "fivetranConnectorSourceLocation"); + + /** Folder prefix inside the source location. */ + KeywordField FIVETRAN_CONNECTOR_SOURCE_PATH = + new KeywordField("fivetranConnectorSourcePath", "fivetranConnectorSourcePath"); + + /** Sync frequency for the connector in number of hours. Eg: Every 6 hours. */ KeywordField FIVETRAN_CONNECTOR_SYNC_FREQUENCY = new KeywordField("fivetranConnectorSyncFrequency", "fivetranConnectorSyncFrequency"); - /** Boolean to indicate whether the sync for this connector is paused or not */ + /** Boolean to indicate whether the sync for this connector is paused or not. */ BooleanField FIVETRAN_CONNECTOR_SYNC_PAUSED = new BooleanField("fivetranConnectorSyncPaused", "fivetranConnectorSyncPaused"); - /** Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds */ + /** Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds. */ NumericField FIVETRAN_CONNECTOR_SYNC_SETUP_ON = new NumericField("fivetranConnectorSyncSetupOn", "fivetranConnectorSyncSetupOn"); - /** Email ID of the user who setpu the connector on Fivetran */ + /** Email ID of the user who setpu the connector on Fivetran. */ KeywordField FIVETRAN_CONNECTOR_SYNC_SETUP_USER_EMAIL = new KeywordField("fivetranConnectorSyncSetupUserEmail", "fivetranConnectorSyncSetupUserEmail"); - /** Full name of the user who setup the connector on Fivetran */ + /** Full name of the user who setup the connector on Fivetran. */ KeywordField FIVETRAN_CONNECTOR_SYNC_SETUP_USER_FULL_NAME = new KeywordField("fivetranConnectorSyncSetupUserFullName", "fivetranConnectorSyncSetupUserFullName"); - /** Total five tables sorted by MAR synced by this connector */ + /** Total five tables sorted by MAR synced by this connector. */ TextField FIVETRAN_CONNECTOR_TOP_TABLES_BY_MAR = new TextField("fivetranConnectorTopTablesByMAR", "fivetranConnectorTopTablesByMAR"); - /** Total number of tables synced by this connector */ + /** Total number of tables synced by this connector. */ NumericField FIVETRAN_CONNECTOR_TOTAL_TABLES_SYNCED = new NumericField("fivetranConnectorTotalTablesSynced", "fivetranConnectorTotalTablesSynced"); /** Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc. */ KeywordField FIVETRAN_CONNECTOR_TYPE = new KeywordField("fivetranConnectorType", "fivetranConnectorType"); - /** URL to open the connector details on Fivetran */ + /** URL to open the connector details on Fivetran. */ KeywordField FIVETRAN_CONNECTOR_URL = new KeywordField("fivetranConnectorURL", "fivetranConnectorURL"); - /** Total usage cost by this destination */ + /** Total usage cost by this destination. */ NumericField FIVETRAN_CONNECTOR_USAGE_COST = new NumericField("fivetranConnectorUsageCost", "fivetranConnectorUsageCost"); - /** Processes related to this Fivetran connector */ + /** Processes related to this Fivetran connector. */ RelationField PROCESSES = new RelationField("processes"); /** List of groups who administer this asset. (This is only used for certain asset types.) */ @@ -711,127 +727,139 @@ default SortedSet getFiles() { return null; } - /** Total credits used by this destination */ + /** Total credits used by this destination. */ Double getFivetranConnectorCreditsUsed(); - /** Destination name added by the user on Fivetran */ + /** Destination name added by the user on Fivetran. */ String getFivetranConnectorDestinationName(); /** Type of destination on Fivetran. Eg: redshift, bigquery etc. */ String getFivetranConnectorDestinationType(); - /** URL to open the destination details on Fivetran */ + /** URL to open the destination details on Fivetran. */ String getFivetranConnectorDestinationURL(); - /** Extract time in seconds in the latest sync on fivetran */ + /** Extract time in seconds in the latest sync on fivetran. */ Double getFivetranConnectorLastSyncExtractTimeSeconds(); - /** Extracted data volume in metabytes in the latest sync on Fivetran */ + /** Extracted data volume in metabytes in the latest sync on Fivetran. */ Double getFivetranConnectorLastSyncExtractVolumeMegabytes(); - /** Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds */ + /** Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds. */ Long getFivetranConnectorLastSyncFinishedAt(); - /** ID of the latest sync */ + /** ID of the latest sync. */ String getFivetranConnectorLastSyncId(); - /** Load time in seconds in the latest sync on Fivetran */ + /** Load time in seconds in the latest sync on Fivetran. */ Double getFivetranConnectorLastSyncLoadTimeSeconds(); - /** Loaded data volume in metabytes in the latest sync on Fivetran */ + /** Loaded data volume in metabytes in the latest sync on Fivetran. */ Double getFivetranConnectorLastSyncLoadVolumeMegabytes(); - /** Process time in seconds in the latest sync on Fivetran */ + /** Process time in seconds in the latest sync on Fivetran. */ Double getFivetranConnectorLastSyncProcessTimeSeconds(); - /** Process volume in metabytes in the latest sync on Fivetran */ + /** Process volume in metabytes in the latest sync on Fivetran. */ Double getFivetranConnectorLastSyncProcessVolumeMegabytes(); /** Failure reason for the latest sync on Fivetran. If status is FAILURE, this is the description of the reason why the sync failed. If status is FAILURE_WITH_TASK, this is the description of the Error. If status is RESCHEDULED, this is the description of the reason why the sync is rescheduled. */ String getFivetranConnectorLastSyncReason(); - /** Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran */ + /** Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran. */ Long getFivetranConnectorLastSyncRescheduledAt(); - /** Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds */ + /** Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds. */ Long getFivetranConnectorLastSyncStartedAt(); - /** Number of tables synced in the latest sync on Fivetran */ + /** Number of tables synced in the latest sync on Fivetran. */ Long getFivetranConnectorLastSyncTablesSynced(); /** Failure task type for the latest sync on Fivetran. If status is FAILURE_WITH_TASK or RESCHEDULED, this field displays the type of the Error that caused the failure or rescheduling, respectively, e.g., reconnect, update_service_account, etc. */ String getFivetranConnectorLastSyncTaskType(); - /** Total sync time in seconds in the latest sync on Fivetran */ + /** Total sync time in seconds in the latest sync on Fivetran. */ Double getFivetranConnectorLastSyncTotalTimeSeconds(); - /** Increase in the percentage of free MAR compared to the previous month */ + /** Increase in the percentage of free MAR compared to the previous month. */ Double getFivetranConnectorMonthlyActiveRowsChangePercentageFree(); - /** Increase in the percentage of paid MAR compared to the previous month */ + /** Increase in the percentage of paid MAR compared to the previous month. */ Double getFivetranConnectorMonthlyActiveRowsChangePercentagePaid(); - /** Increase in the percentage of total MAR compared to the previous month */ + /** Increase in the percentage of total MAR compared to the previous month. */ Double getFivetranConnectorMonthlyActiveRowsChangePercentageTotal(); - /** Free Monthly Active Rows used by the connector in the past month */ + /** Free Monthly Active Rows used by the connector in the past month. */ Long getFivetranConnectorMonthlyActiveRowsFree(); - /** Percentage of the account's total free MAR used by this connector */ + /** Percentage of the account's total free MAR used by this connector. */ Double getFivetranConnectorMonthlyActiveRowsFreePercentageOfAccount(); - /** Paid Monthly Active Rows used by the connector in the past month */ + /** Paid Monthly Active Rows used by the connector in the past month. */ Long getFivetranConnectorMonthlyActiveRowsPaid(); - /** Percentage of the account's total paid MAR used by this connector */ + /** Percentage of the account's total paid MAR used by this connector. */ Double getFivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount(); - /** Total Monthly Active Rows used by the connector in the past month */ + /** Total Monthly Active Rows used by the connector in the past month. */ Long getFivetranConnectorMonthlyActiveRowsTotal(); - /** Percentage of the account's total MAR used by this connector */ + /** Percentage of the account's total MAR used by this connector. */ Double getFivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount(); - /** Connector name added by the user on Fivetran */ + /** Connector name added by the user on Fivetran. */ String getFivetranConnectorName(); - /** Sync frequency for the connector in number of hours. Eg: Every 6 hours */ + /** Database of the source system this connector reads from. */ + String getFivetranConnectorSourceDatabase(); + + /** Host of the source system (database or SFTP/FTP server) this connector reads from. */ + String getFivetranConnectorSourceHost(); + + /** Location of the source data: folder URL, bucket, storage account/container, or instance URL. */ + String getFivetranConnectorSourceLocation(); + + /** Folder prefix inside the source location. */ + String getFivetranConnectorSourcePath(); + + /** Sync frequency for the connector in number of hours. Eg: Every 6 hours. */ String getFivetranConnectorSyncFrequency(); - /** Boolean to indicate whether the sync for this connector is paused or not */ + /** Boolean to indicate whether the sync for this connector is paused or not. */ Boolean getFivetranConnectorSyncPaused(); - /** Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds */ + /** Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds. */ Long getFivetranConnectorSyncSetupOn(); - /** Email ID of the user who setpu the connector on Fivetran */ + /** Email ID of the user who setpu the connector on Fivetran. */ String getFivetranConnectorSyncSetupUserEmail(); - /** Full name of the user who setup the connector on Fivetran */ + /** Full name of the user who setup the connector on Fivetran. */ String getFivetranConnectorSyncSetupUserFullName(); - /** Total five tables sorted by MAR synced by this connector */ + /** Total five tables sorted by MAR synced by this connector. */ String getFivetranConnectorTopTablesByMAR(); - /** Total number of tables synced by this connector */ + /** Total number of tables synced by this connector. */ Long getFivetranConnectorTotalTablesSynced(); /** Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc. */ String getFivetranConnectorType(); - /** URL to open the connector details on Fivetran */ + /** URL to open the connector details on Fivetran. */ String getFivetranConnectorURL(); - /** Total usage cost by this destination */ + /** Total usage cost by this destination. */ Double getFivetranConnectorUsageCost(); - /** Number of records updated in the latest sync on Fivetran */ + /** Number of records updated in the latest sync on Fivetran. */ Long getFivetranLastSyncRecordsUpdated(); /** Status of the latest sync on Fivetran. */ FivetranConnectorStatus getFivetranLastSyncStatus(); - /** Name of the atlan fivetran workflow that updated this asset */ + /** Name of the atlan fivetran workflow that updated this asset. */ String getFivetranWorkflowName(); /** Whether this asset has contract (true) or not (false). */ @@ -965,7 +993,7 @@ default SortedSet getPartialChildObjects() { /** Popularity score for this asset. */ Double getPopularityScore(); - /** Processes related to this Fivetran connector */ + /** Processes related to this Fivetran connector. */ default SortedSet getProcesses() { return null; } diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapErpAbapProgram.java b/sdk/src/main/java/com/atlan/model/assets/ISapErpAbapProgram.java index 1c8893e983..664322c6f7 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISapErpAbapProgram.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISapErpAbapProgram.java @@ -48,6 +48,9 @@ public interface ISapErpAbapProgram { /** SAP ERP ABAP Program that are associated with this SAP ERP Component. */ RelationField SAP_ERP_COMPONENT = new RelationField("sapErpComponent"); + /** SAP ERP DataSources that use this ABAP program (class pool) as their extractor. */ + RelationField SAP_ERP_EXTRACTOR_DATA_SOURCES = new RelationField("sapErpExtractorDataSources"); + /** SAP ERP ABAP Program associated with this SAP ERP Function Modules. */ RelationField SAP_ERP_FUNCTION_MODULES = new RelationField("sapErpFunctionModules"); @@ -717,6 +720,11 @@ default ISapErpComponent getSapErpComponent() { return null; } + /** SAP ERP DataSources that use this ABAP program (class pool) as their extractor. */ + default SortedSet getSapErpExtractorDataSources() { + return null; + } + /** SAP ERP ABAP Program associated with this SAP ERP Function Modules. */ default SortedSet getSapErpFunctionModules() { return null; diff --git a/sdk/src/main/java/com/atlan/model/assets/ISapErpDataSource.java b/sdk/src/main/java/com/atlan/model/assets/ISapErpDataSource.java new file mode 100644 index 0000000000..0873ed25cc --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapErpDataSource.java @@ -0,0 +1,1015 @@ +/* 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.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 an SAP ERP DataSource (extractor) in Atlan. A DataSource defines how an SAP ECC or S/4HANA system extracts data for delivery to a receiving system through ODP or classic BW staging. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapErpDataSource { + + public static final String TYPE_NAME = "SapErpDataSource"; + + /** Path by which the DataSource delivers data: ODP, CLASSIC or BOTH. */ + KeywordField SAP_ERP_DATA_SOURCE_DELIVERY_PATH = + new KeywordField("sapErpDataSourceDeliveryPath", "sapErpDataSourceDeliveryPath"); + + /** Name of the extract structure that defines the fields delivered by the DataSource. */ + KeywordField SAP_ERP_DATA_SOURCE_EXTRACT_STRUCTURE = + new KeywordField("sapErpDataSourceExtractStructure", "sapErpDataSourceExtractStructure"); + + /** Raw extraction method code of the DataSource, such as V, F1, F2, D or CO. */ + KeywordField SAP_ERP_DATA_SOURCE_EXTRACTION_METHOD = + new KeywordField("sapErpDataSourceExtractionMethod", "sapErpDataSourceExtractionMethod"); + + /** Readable label of the extraction method of the DataSource. */ + KeywordField SAP_ERP_DATA_SOURCE_EXTRACTION_METHOD_TEXT = + new KeywordField("sapErpDataSourceExtractionMethodText", "sapErpDataSourceExtractionMethodText"); + + /** Name of the extractor object (function module, view, table, class or InfoSet) that reads data for the DataSource. */ + KeywordField SAP_ERP_DATA_SOURCE_EXTRACTOR = + new KeywordField("sapErpDataSourceExtractor", "sapErpDataSourceExtractor"); + + /** SAP ERP ABAP Programs (class pools) that act as the extractor for this DataSource. */ + RelationField SAP_ERP_DATA_SOURCE_EXTRACTOR_ABAP_PROGRAMS = + new RelationField("sapErpDataSourceExtractorAbapPrograms"); + + /** Kind of the extractor object: FM, VIEW, TABLE, CLASS or INFOSET. */ + KeywordField SAP_ERP_DATA_SOURCE_EXTRACTOR_TYPE = + new KeywordField("sapErpDataSourceExtractorType", "sapErpDataSourceExtractorType"); + + /** Fields of this SAP ERP DataSource. */ + RelationField SAP_ERP_DATA_SOURCE_FIELDS = new RelationField("sapErpDataSourceFields"); + + /** When true, the DataSource is customer-built rather than delivered by SAP. */ + BooleanField SAP_ERP_DATA_SOURCE_IS_CUSTOM = + new BooleanField("sapErpDataSourceIsCustom", "sapErpDataSourceIsCustom"); + + /** When true, the DataSource is released for the Operational Data Provisioning (ODP) framework. */ + BooleanField SAP_ERP_DATA_SOURCE_IS_ODP_ENABLED = + new BooleanField("sapErpDataSourceIsOdpEnabled", "sapErpDataSourceIsOdpEnabled"); + + /** Day on which the source system last confirmed delivery activity for the DataSource. */ + NumericField SAP_ERP_DATA_SOURCE_LAST_CONFIRMED_AT = + new NumericField("sapErpDataSourceLastConfirmedAt", "sapErpDataSourceLastConfirmedAt"); + + /** Logical system name of the source client that owns the DataSource. */ + KeywordField SAP_ERP_DATA_SOURCE_LOGICAL_SYSTEM = + new KeywordField("sapErpDataSourceLogicalSystem", "sapErpDataSourceLogicalSystem"); + + /** Other logical system names recorded for the DataSource in the source system. */ + KeywordField SAP_ERP_DATA_SOURCE_LOGICAL_SYSTEM_ALIASES = + new KeywordField("sapErpDataSourceLogicalSystemAliases", "sapErpDataSourceLogicalSystemAliases"); + + /** Provider context through which the DataSource is exposed, such as SAPI. */ + KeywordField SAP_ERP_DATA_SOURCE_PROVIDER_CONTEXT = + new KeywordField("sapErpDataSourceProviderContext", "sapErpDataSourceProviderContext"); + + /** Reasons for which the DataSource was included in the crawl, such as an active delta initialisation or ODP subscription. */ + KeywordField SAP_ERP_DATA_SOURCE_SCOPE_REASONS = + new KeywordField("sapErpDataSourceScopeReasons", "sapErpDataSourceScopeReasons"); + + /** SAP ERP Tables that act as setup tables for this DataSource. */ + RelationField SAP_ERP_DATA_SOURCE_SETUP_TABLES = new RelationField("sapErpDataSourceSetupTables"); + + /** Type of the DataSource: transaction data, master data attributes, texts or hierarchies. */ + KeywordField SAP_ERP_DATA_SOURCE_TYPE = new KeywordField("sapErpDataSourceType", "sapErpDataSourceType"); + + /** Confidence tier of the upstream lineage of the DataSource: A, B, C or UNRESOLVED. */ + KeywordField SAP_ERP_DATA_SOURCE_UPSTREAM_TIER = + new KeywordField("sapErpDataSourceUpstreamTier", "sapErpDataSourceUpstreamTier"); + + /** 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(); + + /** Identity of the agent that creates and maintains this asset — a connection qualified name, an application name, or any other opaque token that agent chooses. Written by that agent on create, never supplied by a source, and stable for the life of the asset. Compared only for equality; never parsed or resolved. */ + String getAssetManagedBy(); + + /** 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(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** Path by which the DataSource delivers data: ODP, CLASSIC or BOTH. */ + String getSapErpDataSourceDeliveryPath(); + + /** Name of the extract structure that defines the fields delivered by the DataSource. */ + String getSapErpDataSourceExtractStructure(); + + /** Raw extraction method code of the DataSource, such as V, F1, F2, D or CO. */ + String getSapErpDataSourceExtractionMethod(); + + /** Readable label of the extraction method of the DataSource. */ + String getSapErpDataSourceExtractionMethodText(); + + /** Name of the extractor object (function module, view, table, class or InfoSet) that reads data for the DataSource. */ + String getSapErpDataSourceExtractor(); + + /** SAP ERP ABAP Programs (class pools) that act as the extractor for this DataSource. */ + default SortedSet getSapErpDataSourceExtractorAbapPrograms() { + return null; + } + + /** Kind of the extractor object: FM, VIEW, TABLE, CLASS or INFOSET. */ + String getSapErpDataSourceExtractorType(); + + /** Fields of this SAP ERP DataSource. */ + default SortedSet getSapErpDataSourceFields() { + return null; + } + + /** When true, the DataSource is customer-built rather than delivered by SAP. */ + Boolean getSapErpDataSourceIsCustom(); + + /** When true, the DataSource is released for the Operational Data Provisioning (ODP) framework. */ + Boolean getSapErpDataSourceIsOdpEnabled(); + + /** Day on which the source system last confirmed delivery activity for the DataSource. */ + Long getSapErpDataSourceLastConfirmedAt(); + + /** Logical system name of the source client that owns the DataSource. */ + String getSapErpDataSourceLogicalSystem(); + + /** Other logical system names recorded for the DataSource in the source system. */ + SortedSet getSapErpDataSourceLogicalSystemAliases(); + + /** Provider context through which the DataSource is exposed, such as SAPI. */ + String getSapErpDataSourceProviderContext(); + + /** Reasons for which the DataSource was included in the crawl, such as an active delta initialisation or ODP subscription. */ + SortedSet getSapErpDataSourceScopeReasons(); + + /** SAP ERP Tables that act as setup tables for this DataSource. */ + default SortedSet getSapErpDataSourceSetupTables() { + return null; + } + + /** Type of the DataSource: transaction data, master data attributes, texts or hierarchies. */ + String getSapErpDataSourceType(); + + /** Confidence tier of the upstream lineage of the DataSource: A, B, C or UNRESOLVED. */ + String getSapErpDataSourceUpstreamTier(); + + /** 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/ISapErpDataSourceField.java b/sdk/src/main/java/com/atlan/model/assets/ISapErpDataSourceField.java new file mode 100644 index 0000000000..b7289c2405 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/ISapErpDataSourceField.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.BooleanField; +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; + +/** + * Instance of a field of an SAP ERP DataSource in Atlan. A field is one column of the extract structure that the DataSource delivers. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@JsonSerialize(using = AssetSerializer.class) +@JsonDeserialize(using = AssetDeserializer.class) +public interface ISapErpDataSourceField { + + public static final String TYPE_NAME = "SapErpDataSourceField"; + + /** SAP ERP DataSource to which this field belongs. */ + RelationField SAP_ERP_DATA_SOURCE = new RelationField("sapErpDataSource"); + + /** Data element of the field, which gives it its semantic meaning in the SAP ABAP Dictionary. */ + KeywordField SAP_ERP_DATA_SOURCE_FIELD_DATA_ELEMENT = + new KeywordField("sapErpDataSourceFieldDataElement", "sapErpDataSourceFieldDataElement"); + + /** Unique name of the SAP ERP DataSource to which this field belongs. */ + KeywordField SAP_ERP_DATA_SOURCE_FIELD_DATA_SOURCE_QUALIFIED_NAME = new KeywordField( + "sapErpDataSourceFieldDataSourceQualifiedName", "sapErpDataSourceFieldDataSourceQualifiedName"); + + /** Domain of the data element of the field, which defines its technical type and value range. */ + KeywordField SAP_ERP_DATA_SOURCE_FIELD_DOMAIN = + new KeywordField("sapErpDataSourceFieldDomain", "sapErpDataSourceFieldDomain"); + + /** When true, the field is part of the key of the DataSource. Empty when the source system does not say. */ + BooleanField SAP_ERP_DATA_SOURCE_FIELD_IS_PRIMARY = + new BooleanField("sapErpDataSourceFieldIsPrimary", "sapErpDataSourceFieldIsPrimary"); + + /** Length of the field in characters or digits. */ + NumericField SAP_ERP_DATA_SOURCE_FIELD_LENGTH = + new NumericField("sapErpDataSourceFieldLength", "sapErpDataSourceFieldLength"); + + /** 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(); + + /** Identity of the agent that creates and maintains this asset — a connection qualified name, an application name, or any other opaque token that agent chooses. Written by that agent on create, never supplied by a source, and stable for the life of the asset. Compared only for equality; never parsed or resolved. */ + String getAssetManagedBy(); + + /** 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(); + + /** Name of the SAP component, representing a specific functional area in SAP. */ + String getSapComponentName(); + + /** SAP-specific data types. */ + String getSapDataType(); + + /** SAP ERP DataSource to which this field belongs. */ + default ISapErpDataSource getSapErpDataSource() { + return null; + } + + /** Data element of the field, which gives it its semantic meaning in the SAP ABAP Dictionary. */ + String getSapErpDataSourceFieldDataElement(); + + /** Unique name of the SAP ERP DataSource to which this field belongs. */ + String getSapErpDataSourceFieldDataSourceQualifiedName(); + + /** Domain of the data element of the field, which defines its technical type and value range. */ + String getSapErpDataSourceFieldDomain(); + + /** When true, the field is part of the key of the DataSource. Empty when the source system does not say. */ + Boolean getSapErpDataSourceFieldIsPrimary(); + + /** Length of the field in characters or digits. */ + Long getSapErpDataSourceFieldLength(); + + /** 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/ISapErpTable.java b/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java index b60651a873..4194fe5ec1 100644 --- a/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java +++ b/sdk/src/main/java/com/atlan/model/assets/ISapErpTable.java @@ -51,6 +51,9 @@ public interface ISapErpTable { /** SAP ERP Tables that are related to this SAP ERP Table. */ RelationField SAP_ERP_RELATED_TABLES = new RelationField("sapErpRelatedTables"); + /** SAP ERP DataSources that fill this table as their setup table. */ + RelationField SAP_ERP_SETUP_TABLE_DATA_SOURCES = new RelationField("sapErpSetupTableDataSources"); + /** 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"); @@ -728,6 +731,11 @@ default SortedSet getSapErpRelatedTables() { return null; } + /** SAP ERP DataSources that fill this table as their setup table. */ + default SortedSet getSapErpSetupTableDataSources() { + 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/LineageProcess.java b/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java index 988a52e3e4..8e253c6018 100644 --- a/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/LineageProcess.java @@ -95,7 +95,7 @@ public class LineageProcess extends Asset implements ILineageProcess, IAsset, IR @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 8d13658786..669ba82c55 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SAPColumnProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/SAPColumnProcess.java @@ -96,7 +96,7 @@ public class SAPColumnProcess extends Asset @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; 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 91f71ff838..17429c6518 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SAPProcess.java +++ b/sdk/src/main/java/com/atlan/model/assets/SAPProcess.java @@ -95,7 +95,7 @@ public class SAPProcess extends Asset implements ISAPProcess, ILineageProcess, I @Singular SortedSet fabricActivities; - /** fivetranConnector in which this process exists. */ + /** Fivetran connector in which this process exists. */ @Attribute IFivetranConnector fivetranConnector; diff --git a/sdk/src/main/java/com/atlan/model/assets/SapErpAbapProgram.java b/sdk/src/main/java/com/atlan/model/assets/SapErpAbapProgram.java index 0d28a05b3f..02264adc33 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SapErpAbapProgram.java +++ b/sdk/src/main/java/com/atlan/model/assets/SapErpAbapProgram.java @@ -118,6 +118,11 @@ public class SapErpAbapProgram extends Asset implements ISapErpAbapProgram, ISAP @Attribute ISapErpComponent sapErpComponent; + /** SAP ERP DataSources that use this ABAP program (class pool) as their extractor. */ + @Attribute + @Singular + SortedSet sapErpExtractorDataSources; + /** SAP ERP ABAP Program associated with this SAP ERP Function Modules. */ @Attribute @Singular diff --git a/sdk/src/main/java/com/atlan/model/assets/SapErpDataSource.java b/sdk/src/main/java/com/atlan/model/assets/SapErpDataSource.java new file mode 100644 index 0000000000..9b4568433a --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapErpDataSource.java @@ -0,0 +1,702 @@ +/* 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 an SAP ERP DataSource (extractor) in Atlan. A DataSource defines how an SAP ECC or S/4HANA system extracts data for delivery to a receiving system through ODP or classic BW staging. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapErpDataSource extends Asset implements ISapErpDataSource, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapErpDataSource"; + + /** Fixed typeName for SapErpDataSources. */ + @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; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** Path by which the DataSource delivers data: ODP, CLASSIC or BOTH. */ + @Attribute + String sapErpDataSourceDeliveryPath; + + /** Name of the extract structure that defines the fields delivered by the DataSource. */ + @Attribute + String sapErpDataSourceExtractStructure; + + /** Raw extraction method code of the DataSource, such as V, F1, F2, D or CO. */ + @Attribute + String sapErpDataSourceExtractionMethod; + + /** Readable label of the extraction method of the DataSource. */ + @Attribute + String sapErpDataSourceExtractionMethodText; + + /** Name of the extractor object (function module, view, table, class or InfoSet) that reads data for the DataSource. */ + @Attribute + String sapErpDataSourceExtractor; + + /** SAP ERP ABAP Programs (class pools) that act as the extractor for this DataSource. */ + @Attribute + @Singular + SortedSet sapErpDataSourceExtractorAbapPrograms; + + /** Kind of the extractor object: FM, VIEW, TABLE, CLASS or INFOSET. */ + @Attribute + String sapErpDataSourceExtractorType; + + /** Fields of this SAP ERP DataSource. */ + @Attribute + @Singular + SortedSet sapErpDataSourceFields; + + /** When true, the DataSource is customer-built rather than delivered by SAP. */ + @Attribute + Boolean sapErpDataSourceIsCustom; + + /** When true, the DataSource is released for the Operational Data Provisioning (ODP) framework. */ + @Attribute + Boolean sapErpDataSourceIsOdpEnabled; + + /** Day on which the source system last confirmed delivery activity for the DataSource. */ + @Attribute + @Date + Long sapErpDataSourceLastConfirmedAt; + + /** Logical system name of the source client that owns the DataSource. */ + @Attribute + String sapErpDataSourceLogicalSystem; + + /** Other logical system names recorded for the DataSource in the source system. */ + @Attribute + @Singular + SortedSet sapErpDataSourceLogicalSystemAliases; + + /** Provider context through which the DataSource is exposed, such as SAPI. */ + @Attribute + String sapErpDataSourceProviderContext; + + /** Reasons for which the DataSource was included in the crawl, such as an active delta initialisation or ODP subscription. */ + @Attribute + @Singular + SortedSet sapErpDataSourceScopeReasons; + + /** SAP ERP Tables that act as setup tables for this DataSource. */ + @Attribute + @Singular + SortedSet sapErpDataSourceSetupTables; + + /** Type of the DataSource: transaction data, master data attributes, texts or hierarchies. */ + @Attribute + String sapErpDataSourceType; + + /** Confidence tier of the upstream lineage of the DataSource: A, B, C or UNRESOLVED. */ + @Attribute + String sapErpDataSourceUpstreamTier; + + /** 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 SapErpDataSource, from a potentially + * more-complete SapErpDataSource object. + * + * @return the minimal object necessary to relate to the SapErpDataSource + * @throws InvalidRequestException if any of the minimal set of required properties for a SapErpDataSource relationship are not found in the initial object + */ + @Override + public SapErpDataSource 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 SapErpDataSource 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) SapErpDataSource assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapErpDataSource assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapErpDataSource 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) SapErpDataSources will be included + * @return a fluent search that includes all SapErpDataSource 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 SapErpDataSource by GUID. Use this to create a relationship to this SapErpDataSource, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapErpDataSource to reference + * @return reference to a SapErpDataSource that can be used for defining a relationship to a SapErpDataSource + */ + public static SapErpDataSource refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapErpDataSource by GUID. Use this to create a relationship to this SapErpDataSource, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapErpDataSource to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapErpDataSource that can be used for defining a relationship to a SapErpDataSource + */ + public static SapErpDataSource refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapErpDataSource._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapErpDataSource by qualifiedName. Use this to create a relationship to this SapErpDataSource, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapErpDataSource to reference + * @return reference to a SapErpDataSource that can be used for defining a relationship to a SapErpDataSource + */ + public static SapErpDataSource refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapErpDataSource by qualifiedName. Use this to create a relationship to this SapErpDataSource, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapErpDataSource to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapErpDataSource that can be used for defining a relationship to a SapErpDataSource + */ + public static SapErpDataSource refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapErpDataSource._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapErpDataSource 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 SapErpDataSource to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapErpDataSource, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapErpDataSource does not exist or the provided GUID is not a SapErpDataSource + */ + @JsonIgnore + public static SapErpDataSource get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapErpDataSource 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 SapErpDataSource 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 SapErpDataSource, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapErpDataSource does not exist or the provided GUID is not a SapErpDataSource + */ + @JsonIgnore + public static SapErpDataSource 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 SapErpDataSource) { + return (SapErpDataSource) 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 SapErpDataSource) { + return (SapErpDataSource) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapErpDataSource 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 SapErpDataSource to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapErpDataSource, including any relationships + * @return the requested SapErpDataSource, 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 SapErpDataSource does not exist or the provided GUID is not a SapErpDataSource + */ + @JsonIgnore + public static SapErpDataSource get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapErpDataSource 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 SapErpDataSource to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapErpDataSource, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapErpDataSource + * @return the requested SapErpDataSource, 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 SapErpDataSource does not exist or the provided GUID is not a SapErpDataSource + */ + @JsonIgnore + public static SapErpDataSource 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 = SapErpDataSource.select(client) + .where(SapErpDataSource.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 SapErpDataSource) { + return (SapErpDataSource) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapErpDataSource.select(client) + .where(SapErpDataSource.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 SapErpDataSource) { + return (SapErpDataSource) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapErpDataSource to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapErpDataSource + * @return true if the SapErpDataSource 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 SapErpDataSource. + * + * @param qualifiedName of the SapErpDataSource + * @param name of the SapErpDataSource + * @return the minimal request necessary to update the SapErpDataSource, as a builder + */ + public static SapErpDataSourceBuilder updater(String qualifiedName, String name) { + return SapErpDataSource._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 SapErpDataSource, + * from a potentially more-complete SapErpDataSource object. + * + * @return the minimal object necessary to update the SapErpDataSource, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapErpDataSource are not present in the initial object + */ + @Override + public SapErpDataSourceBuilder 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 SapErpDataSourceBuilder< + C extends SapErpDataSource, B extends SapErpDataSourceBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapErpDataSource + * @param name of the SapErpDataSource + * @return the updated SapErpDataSource, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSource removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSource) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapErpDataSource + * @param name of the SapErpDataSource + * @return the updated SapErpDataSource, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSource removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSource) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant from which to remove the SapErpDataSource's owners + * @param qualifiedName of the SapErpDataSource + * @param name of the SapErpDataSource + * @return the updated SapErpDataSource, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSource removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSource) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant on which to update the SapErpDataSource's certificate + * @param qualifiedName of the SapErpDataSource + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapErpDataSource, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSource updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapErpDataSource) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant from which to remove the SapErpDataSource's certificate + * @param qualifiedName of the SapErpDataSource + * @param name of the SapErpDataSource + * @return the updated SapErpDataSource, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSource removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSource) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant on which to update the SapErpDataSource's announcement + * @param qualifiedName of the SapErpDataSource + * @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 SapErpDataSource updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapErpDataSource) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapErpDataSource. + * + * @param client connectivity to the Atlan client from which to remove the SapErpDataSource's announcement + * @param qualifiedName of the SapErpDataSource + * @param name of the SapErpDataSource + * @return the updated SapErpDataSource, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSource removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSource) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapErpDataSource. + * + * @param client connectivity to the Atlan tenant on which to replace the SapErpDataSource's assigned terms + * @param qualifiedName for the SapErpDataSource + * @param name human-readable name of the SapErpDataSource + * @param terms the list of terms to replace on the SapErpDataSource, or null to remove all terms from the SapErpDataSource + * @return the SapErpDataSource that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapErpDataSource replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapErpDataSource) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapErpDataSource, without replacing existing terms linked to the SapErpDataSource. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSource'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 SapErpDataSource + * @param qualifiedName for the SapErpDataSource + * @param terms the list of terms to append to the SapErpDataSource + * @return the SapErpDataSource 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 SapErpDataSource appendTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (SapErpDataSource) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapErpDataSource, without replacing all existing terms linked to the SapErpDataSource. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSource'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 SapErpDataSource + * @param qualifiedName for the SapErpDataSource + * @param terms the list of terms to remove from the SapErpDataSource, which must be referenced by GUID + * @return the SapErpDataSource 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 SapErpDataSource removeTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (SapErpDataSource) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapErpDataSource, without replacing existing Atlan tags linked to the SapErpDataSource. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSource'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 SapErpDataSource + * @param qualifiedName of the SapErpDataSource + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapErpDataSource + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapErpDataSource appendAtlanTags(AtlanClient client, String qualifiedName, List atlanTagNames) + throws AtlanException { + return (SapErpDataSource) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapErpDataSource, without replacing existing Atlan tags linked to the SapErpDataSource. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSource'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 SapErpDataSource + * @param qualifiedName of the SapErpDataSource + * @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 SapErpDataSource + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapErpDataSource appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapErpDataSource) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapErpDataSource. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapErpDataSource + * @param qualifiedName of the SapErpDataSource + * @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 SapErpDataSource + * @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/SapErpDataSourceField.java b/sdk/src/main/java/com/atlan/model/assets/SapErpDataSourceField.java new file mode 100644 index 0000000000..2d99346455 --- /dev/null +++ b/sdk/src/main/java/com/atlan/model/assets/SapErpDataSourceField.java @@ -0,0 +1,649 @@ +/* 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 field of an SAP ERP DataSource in Atlan. A field is one column of the extract structure that the DataSource delivers. + */ +@Generated(value = "com.atlan.generators.ModelGeneratorV2") +@Getter +@SuperBuilder(toBuilder = true, builderMethodName = "_internal") +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Slf4j +@SuppressWarnings({"cast", "serial"}) +public class SapErpDataSourceField extends Asset + implements ISapErpDataSourceField, ISAP, ICatalog, IAsset, IReferenceable { + private static final long serialVersionUID = 2L; + + public static final String TYPE_NAME = "SapErpDataSourceField"; + + /** Fixed typeName for SapErpDataSourceFields. */ + @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; + + /** Name of the SAP component, representing a specific functional area in SAP. */ + @Attribute + String sapComponentName; + + /** SAP-specific data types. */ + @Attribute + String sapDataType; + + /** SAP ERP DataSource to which this field belongs. */ + @Attribute + ISapErpDataSource sapErpDataSource; + + /** Data element of the field, which gives it its semantic meaning in the SAP ABAP Dictionary. */ + @Attribute + String sapErpDataSourceFieldDataElement; + + /** Unique name of the SAP ERP DataSource to which this field belongs. */ + @Attribute + String sapErpDataSourceFieldDataSourceQualifiedName; + + /** Domain of the data element of the field, which defines its technical type and value range. */ + @Attribute + String sapErpDataSourceFieldDomain; + + /** When true, the field is part of the key of the DataSource. Empty when the source system does not say. */ + @Attribute + Boolean sapErpDataSourceFieldIsPrimary; + + /** Length of the field in characters or digits. */ + @Attribute + Long sapErpDataSourceFieldLength; + + /** 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 SapErpDataSourceField, from a potentially + * more-complete SapErpDataSourceField object. + * + * @return the minimal object necessary to relate to the SapErpDataSourceField + * @throws InvalidRequestException if any of the minimal set of required properties for a SapErpDataSourceField relationship are not found in the initial object + */ + @Override + public SapErpDataSourceField 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 SapErpDataSourceField 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) SapErpDataSourceField assets will be included. + * + * @param client connectivity to the Atlan tenant from which to retrieve the assets + * @return a fluent search that includes all SapErpDataSourceField assets + */ + public static FluentSearch.FluentSearchBuilder select(AtlanClient client) { + return select(client, false); + } + + /** + * Start a fluent search that will return all SapErpDataSourceField 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) SapErpDataSourceFields will be included + * @return a fluent search that includes all SapErpDataSourceField 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 SapErpDataSourceField by GUID. Use this to create a relationship to this SapErpDataSourceField, + * where the relationship should be replaced. + * + * @param guid the GUID of the SapErpDataSourceField to reference + * @return reference to a SapErpDataSourceField that can be used for defining a relationship to a SapErpDataSourceField + */ + public static SapErpDataSourceField refByGuid(String guid) { + return refByGuid(guid, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapErpDataSourceField by GUID. Use this to create a relationship to this SapErpDataSourceField, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param guid the GUID of the SapErpDataSourceField to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapErpDataSourceField that can be used for defining a relationship to a SapErpDataSourceField + */ + public static SapErpDataSourceField refByGuid(String guid, Reference.SaveSemantic semantic) { + return SapErpDataSourceField._internal().guid(guid).semantic(semantic).build(); + } + + /** + * Reference to a SapErpDataSourceField by qualifiedName. Use this to create a relationship to this SapErpDataSourceField, + * where the relationship should be replaced. + * + * @param qualifiedName the qualifiedName of the SapErpDataSourceField to reference + * @return reference to a SapErpDataSourceField that can be used for defining a relationship to a SapErpDataSourceField + */ + public static SapErpDataSourceField refByQualifiedName(String qualifiedName) { + return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE); + } + + /** + * Reference to a SapErpDataSourceField by qualifiedName. Use this to create a relationship to this SapErpDataSourceField, + * where you want to further control how that relationship should be updated (i.e. replaced, + * appended, or removed). + * + * @param qualifiedName the qualifiedName of the SapErpDataSourceField to reference + * @param semantic how to save this relationship (replace all with this, append it, or remove it) + * @return reference to a SapErpDataSourceField that can be used for defining a relationship to a SapErpDataSourceField + */ + public static SapErpDataSourceField refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) { + return SapErpDataSourceField._internal() + .uniqueAttributes( + UniqueAttributes.builder().qualifiedName(qualifiedName).build()) + .semantic(semantic) + .build(); + } + + /** + * Retrieves a SapErpDataSourceField 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 SapErpDataSourceField to retrieve, either its GUID or its full qualifiedName + * @return the requested full SapErpDataSourceField, complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapErpDataSourceField does not exist or the provided GUID is not a SapErpDataSourceField + */ + @JsonIgnore + public static SapErpDataSourceField get(AtlanClient client, String id) throws AtlanException { + return get(client, id, false); + } + + /** + * Retrieves a SapErpDataSourceField 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 SapErpDataSourceField 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 SapErpDataSourceField, optionally complete with all of its relationships + * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the SapErpDataSourceField does not exist or the provided GUID is not a SapErpDataSourceField + */ + @JsonIgnore + public static SapErpDataSourceField 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 SapErpDataSourceField) { + return (SapErpDataSourceField) 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 SapErpDataSourceField) { + return (SapErpDataSourceField) asset; + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME); + } + } + } + + /** + * Retrieves a SapErpDataSourceField 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 SapErpDataSourceField to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapErpDataSourceField, including any relationships + * @return the requested SapErpDataSourceField, 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 SapErpDataSourceField does not exist or the provided GUID is not a SapErpDataSourceField + */ + @JsonIgnore + public static SapErpDataSourceField get(AtlanClient client, String id, Collection attributes) + throws AtlanException { + return get(client, id, attributes, Collections.emptyList()); + } + + /** + * Retrieves a SapErpDataSourceField 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 SapErpDataSourceField to retrieve, either its GUID or its full qualifiedName + * @param attributes to retrieve for the SapErpDataSourceField, including any relationships + * @param attributesOnRelated to retrieve on each relationship retrieved for the SapErpDataSourceField + * @return the requested SapErpDataSourceField, 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 SapErpDataSourceField does not exist or the provided GUID is not a SapErpDataSourceField + */ + @JsonIgnore + public static SapErpDataSourceField 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 = SapErpDataSourceField.select(client) + .where(SapErpDataSourceField.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 SapErpDataSourceField) { + return (SapErpDataSourceField) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } else { + Optional asset = SapErpDataSourceField.select(client) + .where(SapErpDataSourceField.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 SapErpDataSourceField) { + return (SapErpDataSourceField) asset.get(); + } else { + throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME); + } + } + } + + /** + * Restore the archived (soft-deleted) SapErpDataSourceField to active. + * + * @param client connectivity to the Atlan tenant on which to restore the asset + * @param qualifiedName for the SapErpDataSourceField + * @return true if the SapErpDataSourceField 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 SapErpDataSourceField. + * + * @param qualifiedName of the SapErpDataSourceField + * @param name of the SapErpDataSourceField + * @return the minimal request necessary to update the SapErpDataSourceField, as a builder + */ + public static SapErpDataSourceFieldBuilder updater(String qualifiedName, String name) { + return SapErpDataSourceField._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 SapErpDataSourceField, + * from a potentially more-complete SapErpDataSourceField object. + * + * @return the minimal object necessary to update the SapErpDataSourceField, as a builder + * @throws InvalidRequestException if any of the minimal set of required fields for a SapErpDataSourceField are not present in the initial object + */ + @Override + public SapErpDataSourceFieldBuilder 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 SapErpDataSourceFieldBuilder< + C extends SapErpDataSourceField, B extends SapErpDataSourceFieldBuilder> + extends Asset.AssetBuilder {} + + /** + * Remove the system description from a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapErpDataSourceField + * @param name of the SapErpDataSourceField + * @return the updated SapErpDataSourceField, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField removeDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSourceField) Asset.removeDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the user's description from a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant on which to remove the asset's description + * @param qualifiedName of the SapErpDataSourceField + * @param name of the SapErpDataSourceField + * @return the updated SapErpDataSourceField, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField removeUserDescription(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSourceField) Asset.removeUserDescription(client, updater(qualifiedName, name)); + } + + /** + * Remove the owners from a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant from which to remove the SapErpDataSourceField's owners + * @param qualifiedName of the SapErpDataSourceField + * @param name of the SapErpDataSourceField + * @return the updated SapErpDataSourceField, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField removeOwners(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSourceField) Asset.removeOwners(client, updater(qualifiedName, name)); + } + + /** + * Update the certificate on a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant on which to update the SapErpDataSourceField's certificate + * @param qualifiedName of the SapErpDataSourceField + * @param certificate to use + * @param message (optional) message, or null if no message + * @return the updated SapErpDataSourceField, or null if the update failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField updateCertificate( + AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) + throws AtlanException { + return (SapErpDataSourceField) + Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message); + } + + /** + * Remove the certificate from a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant from which to remove the SapErpDataSourceField's certificate + * @param qualifiedName of the SapErpDataSourceField + * @param name of the SapErpDataSourceField + * @return the updated SapErpDataSourceField, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField removeCertificate(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSourceField) Asset.removeCertificate(client, updater(qualifiedName, name)); + } + + /** + * Update the announcement on a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant on which to update the SapErpDataSourceField's announcement + * @param qualifiedName of the SapErpDataSourceField + * @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 SapErpDataSourceField updateAnnouncement( + AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) + throws AtlanException { + return (SapErpDataSourceField) + Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message); + } + + /** + * Remove the announcement from a SapErpDataSourceField. + * + * @param client connectivity to the Atlan client from which to remove the SapErpDataSourceField's announcement + * @param qualifiedName of the SapErpDataSourceField + * @param name of the SapErpDataSourceField + * @return the updated SapErpDataSourceField, or null if the removal failed + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField removeAnnouncement(AtlanClient client, String qualifiedName, String name) + throws AtlanException { + return (SapErpDataSourceField) Asset.removeAnnouncement(client, updater(qualifiedName, name)); + } + + /** + * Replace the terms linked to the SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant on which to replace the SapErpDataSourceField's assigned terms + * @param qualifiedName for the SapErpDataSourceField + * @param name human-readable name of the SapErpDataSourceField + * @param terms the list of terms to replace on the SapErpDataSourceField, or null to remove all terms from the SapErpDataSourceField + * @return the SapErpDataSourceField that was updated (note that it will NOT contain details of the replaced terms) + * @throws AtlanException on any API problems + */ + public static SapErpDataSourceField replaceTerms( + AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException { + return (SapErpDataSourceField) Asset.replaceTerms(client, updater(qualifiedName, name), terms); + } + + /** + * Link additional terms to the SapErpDataSourceField, without replacing existing terms linked to the SapErpDataSourceField. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSourceField'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 SapErpDataSourceField + * @param qualifiedName for the SapErpDataSourceField + * @param terms the list of terms to append to the SapErpDataSourceField + * @return the SapErpDataSourceField 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 SapErpDataSourceField appendTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (SapErpDataSourceField) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Remove terms from a SapErpDataSourceField, without replacing all existing terms linked to the SapErpDataSourceField. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSourceField'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 SapErpDataSourceField + * @param qualifiedName for the SapErpDataSourceField + * @param terms the list of terms to remove from the SapErpDataSourceField, which must be referenced by GUID + * @return the SapErpDataSourceField 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 SapErpDataSourceField removeTerms(AtlanClient client, String qualifiedName, List terms) + throws AtlanException { + return (SapErpDataSourceField) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms); + } + + /** + * Add Atlan tags to a SapErpDataSourceField, without replacing existing Atlan tags linked to the SapErpDataSourceField. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSourceField'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 SapErpDataSourceField + * @param qualifiedName of the SapErpDataSourceField + * @param atlanTagNames human-readable names of the Atlan tags to add + * @throws AtlanException on any API problems + * @return the updated SapErpDataSourceField + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List)} + */ + @Deprecated + public static SapErpDataSourceField appendAtlanTags( + AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException { + return (SapErpDataSourceField) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames); + } + + /** + * Add Atlan tags to a SapErpDataSourceField, without replacing existing Atlan tags linked to the SapErpDataSourceField. + * Note: this operation must make two API calls — one to retrieve the SapErpDataSourceField'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 SapErpDataSourceField + * @param qualifiedName of the SapErpDataSourceField + * @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 SapErpDataSourceField + * @deprecated see {@link com.atlan.model.assets.Asset.AssetBuilder#appendAtlanTags(List, boolean, boolean, boolean, boolean)} + */ + @Deprecated + public static SapErpDataSourceField appendAtlanTags( + AtlanClient client, + String qualifiedName, + List atlanTagNames, + boolean propagate, + boolean removePropagationsOnDelete, + boolean restrictLineagePropagation) + throws AtlanException { + return (SapErpDataSourceField) Asset.appendAtlanTags( + client, + TYPE_NAME, + qualifiedName, + atlanTagNames, + propagate, + removePropagationsOnDelete, + restrictLineagePropagation); + } + + /** + * Remove an Atlan tag from a SapErpDataSourceField. + * + * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a SapErpDataSourceField + * @param qualifiedName of the SapErpDataSourceField + * @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 SapErpDataSourceField + * @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 f31c7974ac..686e67c82b 100644 --- a/sdk/src/main/java/com/atlan/model/assets/SapErpTable.java +++ b/sdk/src/main/java/com/atlan/model/assets/SapErpTable.java @@ -124,6 +124,11 @@ public class SapErpTable extends Asset implements ISapErpTable, ISAP, ICatalog, @Singular SortedSet sapErpRelatedTables; + /** SAP ERP DataSources that fill this table as their setup table. */ + @Attribute + @Singular + SortedSet sapErpSetupTableDataSources; + /** 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/test/java/com/atlan/model/assets/FivetranConnectorTest.java b/sdk/src/test/java/com/atlan/model/assets/FivetranConnectorTest.java index 6128950496..ff772475cb 100644 --- a/sdk/src/test/java/com/atlan/model/assets/FivetranConnectorTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/FivetranConnectorTest.java @@ -1163,6 +1163,10 @@ public class FivetranConnectorTest { .fivetranConnectorDestinationName("String0") .fivetranConnectorDestinationType("String0") .fivetranConnectorDestinationURL("String0") + .fivetranConnectorSourceHost("String0") + .fivetranConnectorSourceDatabase("String0") + .fivetranConnectorSourceLocation("String0") + .fivetranConnectorSourcePath("String0") .fivetranConnectorSyncSetupOn(123456789L) .fivetranConnectorSyncFrequency("String0") .fivetranConnectorSyncPaused(true) diff --git a/sdk/src/test/java/com/atlan/model/assets/SapErpAbapProgramTest.java b/sdk/src/test/java/com/atlan/model/assets/SapErpAbapProgramTest.java index 78a77260c6..b69261baa8 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SapErpAbapProgramTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SapErpAbapProgramTest.java @@ -1155,6 +1155,9 @@ public class SapErpAbapProgramTest { .sapErpFunctionModule( SapErpFunctionModule.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) .sapErpComponent(SapErpComponent.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpExtractorDataSource(SapErpDataSource.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpExtractorDataSource( + SapErpDataSource.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/SapErpDataSourceFieldTest.java b/sdk/src/test/java/com/atlan/model/assets/SapErpDataSourceFieldTest.java new file mode 100644 index 0000000000..a45c92d072 --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapErpDataSourceFieldTest.java @@ -0,0 +1,1224 @@ +/* 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 SapErpDataSourceFieldTest { + + private final SapErpDataSourceField full = SapErpDataSourceField._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()) + .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") + .assetManagedBy("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) + .sapErpDataSourceFieldDataSourceQualifiedName("String0") + .sapErpDataSourceFieldDataElement("String0") + .sapErpDataSourceFieldDomain("String0") + .sapErpDataSourceFieldLength(123456789L) + .sapErpDataSourceFieldIsPrimary(true) + .sapErpDataSource(SapErpDataSource.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 serdeCycleSapErpDataSourceField() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapErpDataSourceField,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapErpDataSourceField via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapErpDataSourceField,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapErpDataSourceField frodo = MockAtlanTenant.client.readValue(serialized, SapErpDataSourceField.class); + assertNotNull(frodo, "Unable to reverse-read serialized value back into an instance of SapErpDataSourceField,"); + // 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/SapErpDataSourceTest.java b/sdk/src/test/java/com/atlan/model/assets/SapErpDataSourceTest.java new file mode 100644 index 0000000000..bcc9f7dab8 --- /dev/null +++ b/sdk/src/test/java/com/atlan/model/assets/SapErpDataSourceTest.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 SapErpDataSourceTest { + + private final SapErpDataSource full = SapErpDataSource._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()) + .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") + .assetManagedBy("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) + .sapErpDataSourceType("String0") + .sapErpDataSourceExtractionMethod("String0") + .sapErpDataSourceExtractionMethodText("String0") + .sapErpDataSourceExtractStructure("String0") + .sapErpDataSourceExtractor("String0") + .sapErpDataSourceExtractorType("String0") + .sapErpDataSourceProviderContext("String0") + .sapErpDataSourceLogicalSystem("String0") + .sapErpDataSourceLogicalSystemAliase("String0") + .sapErpDataSourceLogicalSystemAliase("String1") + .sapErpDataSourceIsCustom(true) + .sapErpDataSourceUpstreamTier("String0") + .sapErpDataSourceScopeReason("String0") + .sapErpDataSourceScopeReason("String1") + .sapErpDataSourceDeliveryPath("String0") + .sapErpDataSourceIsOdpEnabled(true) + .sapErpDataSourceLastConfirmedAt(123456789L) + .sapErpDataSourceField(SapErpDataSourceField.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpDataSourceField( + SapErpDataSourceField.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapErpDataSourceSetupTable(SapErpTable.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpDataSourceSetupTable( + SapErpTable.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapErpDataSourceExtractorAbapProgram(SapErpAbapProgram.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpDataSourceExtractorAbapProgram( + SapErpAbapProgram.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 serdeCycleSapErpDataSource() throws IOException { + assertNotNull(full, "Unable to build sample instance of SapErpDataSource,"); + final int hash = full.hashCode(); + // Builder equivalency + assertEquals( + full.toBuilder().build(), + full, + "Unable to converting SapErpDataSource via builder back to its original state,"); + // Serialization + final String serialized = full.toJson(MockAtlanTenant.client); + assertNotNull(serialized, "Unable to serialize sample instance of SapErpDataSource,"); + assertEquals(full.hashCode(), hash, "Serialization mutated the original value,"); + // Deserialization + final SapErpDataSource frodo = MockAtlanTenant.client.readValue(serialized, SapErpDataSource.class); + assertNotNull(frodo, "Unable to reverse-read serialized value back into an instance of SapErpDataSource,"); + // 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 bf6b3440a8..4d3492f5b4 100644 --- a/sdk/src/test/java/com/atlan/model/assets/SapErpTableTest.java +++ b/sdk/src/test/java/com/atlan/model/assets/SapErpTableTest.java @@ -1154,6 +1154,9 @@ public class SapErpTableTest { .sapErpComponent(SapErpComponent.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .sapErpRelatedTable(SapErpTable.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) .sapErpRelatedTable(SapErpTable.refByQualifiedName("default/snowflake/1234567890/test/qualifiedName")) + .sapErpSetupTableDataSource(SapErpDataSource.refByGuid("705d96f4-bdb6-4792-8dfe-8dc4ca3d2c23")) + .sapErpSetupTableDataSource( + SapErpDataSource.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"))