All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.atlan.model.assets.FivetranConnector Maven / Gradle / Ivy

There is a newer version: 4.2.1
Show newest version
// Generated by delombok at Tue Nov 26 17:04:58 UTC 2024
/* SPDX-License-Identifier: Apache-2.0
   Copyright 2022 Atlan Pte. Ltd. */
package com.atlan.model.assets;

import com.atlan.Atlan;
import com.atlan.AtlanClient;
import com.atlan.exception.AtlanException;
import com.atlan.exception.ErrorCode;
import com.atlan.exception.InvalidRequestException;
import com.atlan.exception.NotFoundException;
import com.atlan.model.enums.AtlanAnnouncementType;
import com.atlan.model.enums.CertificateStatus;
import com.atlan.model.enums.FivetranConnectorStatus;
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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
import java.util.concurrent.ThreadLocalRandom;
import javax.annotation.processing.Generated;
import lombok.*;

/**
 * Instance of a Fivetran connector asset in Atlan.
 */
@Generated("com.atlan.generators.ModelGeneratorV2")
public class FivetranConnector extends Asset implements IFivetranConnector, IFivetran, ICatalog, IAsset, IReferenceable {
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(FivetranConnector.class);
    private static final long serialVersionUID = 2L;
    public static final String TYPE_NAME = "FivetranConnector";
    /**
     * Fixed typeName for FivetranConnectors.
     */
    String typeName;
    /**
     * Total credits used by this destination
     */
    @Attribute
    Double fivetranConnectorCreditsUsed;
    /**
     * Destination name added by the user on Fivetran
     */
    @Attribute
    String fivetranConnectorDestinationName;
    /**
     * Type of destination on Fivetran. Eg: redshift, bigquery etc.
     */
    @Attribute
    String fivetranConnectorDestinationType;
    /**
     * URL to open the destination details on Fivetran
     */
    @Attribute
    String fivetranConnectorDestinationURL;
    /**
     * Extract time in seconds in the latest sync on fivetran
     */
    @Attribute
    Double fivetranConnectorLastSyncExtractTimeSeconds;
    /**
     * 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
     */
    @Attribute
    @Date
    Long fivetranConnectorLastSyncFinishedAt;
    /**
     * ID of the latest sync
     */
    @Attribute
    String fivetranConnectorLastSyncId;
    /**
     * Load time in seconds in the latest sync on Fivetran
     */
    @Attribute
    Double fivetranConnectorLastSyncLoadTimeSeconds;
    /**
     * Loaded data volume in metabytes in the latest sync on Fivetran
     */
    @Attribute
    Double fivetranConnectorLastSyncLoadVolumeMegabytes;
    /**
     * Process time in seconds in the latest sync on Fivetran
     */
    @Attribute
    Double fivetranConnectorLastSyncProcessTimeSeconds;
    /**
     * Process volume in metabytes in the latest sync on Fivetran
     */
    @Attribute
    Double fivetranConnectorLastSyncProcessVolumeMegabytes;
    /**
     * 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.
     */
    @Attribute
    String fivetranConnectorLastSyncReason;
    /**
     * 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
     */
    @Attribute
    @Date
    Long fivetranConnectorLastSyncStartedAt;
    /**
     * Number of tables synced in the latest sync on Fivetran
     */
    @Attribute
    Long fivetranConnectorLastSyncTablesSynced;
    /**
     * 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.
     */
    @Attribute
    String fivetranConnectorLastSyncTaskType;
    /**
     * 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
     */
    @Attribute
    Double fivetranConnectorMonthlyActiveRowsChangePercentageFree;
    /**
     * 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
     */
    @Attribute
    Double fivetranConnectorMonthlyActiveRowsChangePercentageTotal;
    /**
     * 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
     */
    @Attribute
    Double fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount;
    /**
     * 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
     */
    @Attribute
    Double fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount;
    /**
     * 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
     */
    @Attribute
    Double fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount;
    /**
     * Connector name added by the user on Fivetran
     */
    @Attribute
    String fivetranConnectorName;
    /**
     * 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
     */
    @Attribute
    Boolean fivetranConnectorSyncPaused;
    /**
     * 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
     */
    @Attribute
    String fivetranConnectorSyncSetupUserEmail;
    /**
     * Full name of the user who setup the connector on Fivetran
     */
    @Attribute
    String fivetranConnectorSyncSetupUserFullName;
    /**
     * Total five tables sorted by MAR synced by this connector
     */
    @Attribute
    String fivetranConnectorTopTablesByMAR;
    /**
     * Total number of tables synced by this connector
     */
    @Attribute
    Long fivetranConnectorTotalTablesSynced;
    /**
     * Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc.
     */
    @Attribute
    String fivetranConnectorType;
    /**
     * URL to open the connector details on Fivetran
     */
    @Attribute
    String fivetranConnectorURL;
    /**
     * Total usage cost by this destination
     */
    @Attribute
    Double fivetranConnectorUsageCost;
    /**
     * Number of records updated in the latest sync on Fivetran
     */
    @Attribute
    Long fivetranLastSyncRecordsUpdated;
    /**
     * Status of the latest sync on Fivetran.
     */
    @Attribute
    FivetranConnectorStatus fivetranLastSyncStatus;
    /**
     * Name of the atlan fivetran workflow that updated this asset
     */
    @Attribute
    String fivetranWorkflowName;
    /**
     * Tasks to which this asset provides input.
     */
    @Attribute
    SortedSet inputToAirflowTasks;
    /**
     * Processes to which this asset provides input.
     */
    @Attribute
    SortedSet inputToProcesses;
    /**
     * TBC
     */
    @Attribute
    SortedSet inputToSparkJobs;
    /**
     * Attributes implemented by this asset.
     */
    @Attribute
    SortedSet modelImplementedAttributes;
    /**
     * Entities implemented by this asset.
     */
    @Attribute
    SortedSet modelImplementedEntities;
    /**
     * Tasks from which this asset is output.
     */
    @Attribute
    SortedSet outputFromAirflowTasks;
    /**
     * Processes from which this asset is produced as output.
     */
    @Attribute
    SortedSet outputFromProcesses;
    /**
     * TBC
     */
    @Attribute
    SortedSet outputFromSparkJobs;
    /**
     * Processes related to this Fivetran connector
     */
    @Attribute
    SortedSet processes;

    /**
     * Builds the minimal object necessary to create a relationship to a FivetranConnector, from a potentially
     * more-complete FivetranConnector object.
     *
     * @return the minimal object necessary to relate to the FivetranConnector
     * @throws InvalidRequestException if any of the minimal set of required properties for a FivetranConnector relationship are not found in the initial object
     */
    @Override
    public FivetranConnector 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 FivetranConnector 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) FivetranConnector assets will be included.
     *
     * @return a fluent search that includes all FivetranConnector assets
     */
    public static FluentSearch.FluentSearchBuilder select() {
        return select(Atlan.getDefaultClient());
    }

    /**
     * Start a fluent search that will return all FivetranConnector 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) FivetranConnector assets will be included.
     *
     * @param client connectivity to the Atlan tenant from which to retrieve the assets
     * @return a fluent search that includes all FivetranConnector assets
     */
    public static FluentSearch.FluentSearchBuilder select(AtlanClient client) {
        return select(client, false);
    }

    /**
     * Start a fluent search that will return all FivetranConnector 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 includeArchived when true, archived (soft-deleted) FivetranConnectors will be included
     * @return a fluent search that includes all FivetranConnector assets
     */
    public static FluentSearch.FluentSearchBuilder select(boolean includeArchived) {
        return select(Atlan.getDefaultClient(), includeArchived);
    }

    /**
     * Start a fluent search that will return all FivetranConnector 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) FivetranConnectors will be included
     * @return a fluent search that includes all FivetranConnector 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 FivetranConnector by GUID. Use this to create a relationship to this FivetranConnector,
     * where the relationship should be replaced.
     *
     * @param guid the GUID of the FivetranConnector to reference
     * @return reference to a FivetranConnector that can be used for defining a relationship to a FivetranConnector
     */
    public static FivetranConnector refByGuid(String guid) {
        return refByGuid(guid, Reference.SaveSemantic.REPLACE);
    }

    /**
     * Reference to a FivetranConnector by GUID. Use this to create a relationship to this FivetranConnector,
     * where you want to further control how that relationship should be updated (i.e. replaced,
     * appended, or removed).
     *
     * @param guid the GUID of the FivetranConnector to reference
     * @param semantic how to save this relationship (replace all with this, append it, or remove it)
     * @return reference to a FivetranConnector that can be used for defining a relationship to a FivetranConnector
     */
    public static FivetranConnector refByGuid(String guid, Reference.SaveSemantic semantic) {
        return FivetranConnector._internal().guid(guid).semantic(semantic).build();
    }

    /**
     * Reference to a FivetranConnector by qualifiedName. Use this to create a relationship to this FivetranConnector,
     * where the relationship should be replaced.
     *
     * @param qualifiedName the qualifiedName of the FivetranConnector to reference
     * @return reference to a FivetranConnector that can be used for defining a relationship to a FivetranConnector
     */
    public static FivetranConnector refByQualifiedName(String qualifiedName) {
        return refByQualifiedName(qualifiedName, Reference.SaveSemantic.REPLACE);
    }

    /**
     * Reference to a FivetranConnector by qualifiedName. Use this to create a relationship to this FivetranConnector,
     * where you want to further control how that relationship should be updated (i.e. replaced,
     * appended, or removed).
     *
     * @param qualifiedName the qualifiedName of the FivetranConnector to reference
     * @param semantic how to save this relationship (replace all with this, append it, or remove it)
     * @return reference to a FivetranConnector that can be used for defining a relationship to a FivetranConnector
     */
    public static FivetranConnector refByQualifiedName(String qualifiedName, Reference.SaveSemantic semantic) {
        return FivetranConnector._internal().uniqueAttributes(UniqueAttributes.builder().qualifiedName(qualifiedName).build()).semantic(semantic).build();
    }

    /**
     * Retrieves a FivetranConnector by one of its identifiers, complete with all of its relationships.
     *
     * @param id of the FivetranConnector to retrieve, either its GUID or its full qualifiedName
     * @return the requested full FivetranConnector, complete with all of its relationships
     * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the FivetranConnector does not exist or the provided GUID is not a FivetranConnector
     */
    @JsonIgnore
    public static FivetranConnector get(String id) throws AtlanException {
        return get(Atlan.getDefaultClient(), id);
    }

    /**
     * Retrieves a FivetranConnector 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 FivetranConnector to retrieve, either its GUID or its full qualifiedName
     * @return the requested full FivetranConnector, complete with all of its relationships
     * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the FivetranConnector does not exist or the provided GUID is not a FivetranConnector
     */
    @JsonIgnore
    public static FivetranConnector get(AtlanClient client, String id) throws AtlanException {
        return get(client, id, true);
    }

    /**
     * Retrieves a FivetranConnector 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 FivetranConnector to retrieve, either its GUID or its full qualifiedName
     * @param includeRelationships if true, all of the asset's relationships will also be retrieved; if false, no relationships will be retrieved
     * @return the requested full FivetranConnector, optionally complete with all of its relationships
     * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the FivetranConnector does not exist or the provided GUID is not a FivetranConnector
     */
    @JsonIgnore
    public static FivetranConnector get(AtlanClient client, String id, boolean includeRelationships) 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, includeRelationships);
            if (asset == null) {
                throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_GUID, id);
            } else if (asset instanceof FivetranConnector) {
                return (FivetranConnector) asset;
            } else {
                throw new NotFoundException(ErrorCode.ASSET_NOT_TYPE_REQUESTED, id, TYPE_NAME);
            }
        } else {
            Asset asset = Asset.get(client, TYPE_NAME, id, includeRelationships);
            if (asset instanceof FivetranConnector) {
                return (FivetranConnector) asset;
            } else {
                throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME);
            }
        }
    }

    /**
     * Restore the archived (soft-deleted) FivetranConnector to active.
     *
     * @param qualifiedName for the FivetranConnector
     * @return true if the FivetranConnector is now active, and false otherwise
     * @throws AtlanException on any API problems
     */
    public static boolean restore(String qualifiedName) throws AtlanException {
        return restore(Atlan.getDefaultClient(), qualifiedName);
    }

    /**
     * Restore the archived (soft-deleted) FivetranConnector to active.
     *
     * @param client connectivity to the Atlan tenant on which to restore the asset
     * @param qualifiedName for the FivetranConnector
     * @return true if the FivetranConnector 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 FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the minimal request necessary to update the FivetranConnector, as a builder
     */
    public static FivetranConnectorBuilder updater(String qualifiedName, String name) {
        return FivetranConnector._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 FivetranConnector, from a potentially
     * more-complete FivetranConnector object.
     *
     * @return the minimal object necessary to update the FivetranConnector, as a builder
     * @throws InvalidRequestException if any of the minimal set of required properties for FivetranConnector are not found in the initial object
     */
    @Override
    public FivetranConnectorBuilder 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());
    }

    /**
     * Remove the system description from a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeDescription(String qualifiedName, String name) throws AtlanException {
        return removeDescription(Atlan.getDefaultClient(), qualifiedName, name);
    }

    /**
     * Remove the system description from a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant on which to remove the asset's description
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeDescription(AtlanClient client, String qualifiedName, String name) throws AtlanException {
        return (FivetranConnector) Asset.removeDescription(client, updater(qualifiedName, name));
    }

    /**
     * Remove the user's description from a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeUserDescription(String qualifiedName, String name) throws AtlanException {
        return removeUserDescription(Atlan.getDefaultClient(), qualifiedName, name);
    }

    /**
     * Remove the user's description from a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant on which to remove the asset's description
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeUserDescription(AtlanClient client, String qualifiedName, String name) throws AtlanException {
        return (FivetranConnector) Asset.removeUserDescription(client, updater(qualifiedName, name));
    }

    /**
     * Remove the owners from a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeOwners(String qualifiedName, String name) throws AtlanException {
        return removeOwners(Atlan.getDefaultClient(), qualifiedName, name);
    }

    /**
     * Remove the owners from a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant from which to remove the FivetranConnector's owners
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeOwners(AtlanClient client, String qualifiedName, String name) throws AtlanException {
        return (FivetranConnector) Asset.removeOwners(client, updater(qualifiedName, name));
    }

    /**
     * Update the certificate on a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param certificate to use
     * @param message (optional) message, or null if no message
     * @return the updated FivetranConnector, or null if the update failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector updateCertificate(String qualifiedName, CertificateStatus certificate, String message) throws AtlanException {
        return updateCertificate(Atlan.getDefaultClient(), qualifiedName, certificate, message);
    }

    /**
     * Update the certificate on a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant on which to update the FivetranConnector's certificate
     * @param qualifiedName of the FivetranConnector
     * @param certificate to use
     * @param message (optional) message, or null if no message
     * @return the updated FivetranConnector, or null if the update failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector updateCertificate(AtlanClient client, String qualifiedName, CertificateStatus certificate, String message) throws AtlanException {
        return (FivetranConnector) Asset.updateCertificate(client, _internal(), TYPE_NAME, qualifiedName, certificate, message);
    }

    /**
     * Remove the certificate from a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeCertificate(String qualifiedName, String name) throws AtlanException {
        return removeCertificate(Atlan.getDefaultClient(), qualifiedName, name);
    }

    /**
     * Remove the certificate from a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant from which to remove the FivetranConnector's certificate
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeCertificate(AtlanClient client, String qualifiedName, String name) throws AtlanException {
        return (FivetranConnector) Asset.removeCertificate(client, updater(qualifiedName, name));
    }

    /**
     * Update the announcement on a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @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 FivetranConnector updateAnnouncement(String qualifiedName, AtlanAnnouncementType type, String title, String message) throws AtlanException {
        return updateAnnouncement(Atlan.getDefaultClient(), qualifiedName, type, title, message);
    }

    /**
     * Update the announcement on a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant on which to update the FivetranConnector's announcement
     * @param qualifiedName of the FivetranConnector
     * @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 FivetranConnector updateAnnouncement(AtlanClient client, String qualifiedName, AtlanAnnouncementType type, String title, String message) throws AtlanException {
        return (FivetranConnector) Asset.updateAnnouncement(client, _internal(), TYPE_NAME, qualifiedName, type, title, message);
    }

    /**
     * Remove the announcement from a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeAnnouncement(String qualifiedName, String name) throws AtlanException {
        return removeAnnouncement(Atlan.getDefaultClient(), qualifiedName, name);
    }

    /**
     * Remove the announcement from a FivetranConnector.
     *
     * @param client connectivity to the Atlan client from which to remove the FivetranConnector's announcement
     * @param qualifiedName of the FivetranConnector
     * @param name of the FivetranConnector
     * @return the updated FivetranConnector, or null if the removal failed
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeAnnouncement(AtlanClient client, String qualifiedName, String name) throws AtlanException {
        return (FivetranConnector) Asset.removeAnnouncement(client, updater(qualifiedName, name));
    }

    /**
     * Replace the terms linked to the FivetranConnector.
     *
     * @param qualifiedName for the FivetranConnector
     * @param name human-readable name of the FivetranConnector
     * @param terms the list of terms to replace on the FivetranConnector, or null to remove all terms from the FivetranConnector
     * @return the FivetranConnector that was updated (note that it will NOT contain details of the replaced terms)
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector replaceTerms(String qualifiedName, String name, List terms) throws AtlanException {
        return replaceTerms(Atlan.getDefaultClient(), qualifiedName, name, terms);
    }

    /**
     * Replace the terms linked to the FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant on which to replace the FivetranConnector's assigned terms
     * @param qualifiedName for the FivetranConnector
     * @param name human-readable name of the FivetranConnector
     * @param terms the list of terms to replace on the FivetranConnector, or null to remove all terms from the FivetranConnector
     * @return the FivetranConnector that was updated (note that it will NOT contain details of the replaced terms)
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector replaceTerms(AtlanClient client, String qualifiedName, String name, List terms) throws AtlanException {
        return (FivetranConnector) Asset.replaceTerms(client, updater(qualifiedName, name), terms);
    }

    /**
     * Link additional terms to the FivetranConnector, without replacing existing terms linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector's existing terms,
     * and a second to append the new terms.
     *
     * @param qualifiedName for the FivetranConnector
     * @param terms the list of terms to append to the FivetranConnector
     * @return the FivetranConnector that was updated  (note that it will NOT contain details of the appended terms)
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector appendTerms(String qualifiedName, List terms) throws AtlanException {
        return appendTerms(Atlan.getDefaultClient(), qualifiedName, terms);
    }

    /**
     * Link additional terms to the FivetranConnector, without replacing existing terms linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector'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 FivetranConnector
     * @param qualifiedName for the FivetranConnector
     * @param terms the list of terms to append to the FivetranConnector
     * @return the FivetranConnector that was updated  (note that it will NOT contain details of the appended terms)
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector appendTerms(AtlanClient client, String qualifiedName, List terms) throws AtlanException {
        return (FivetranConnector) Asset.appendTerms(client, TYPE_NAME, qualifiedName, terms);
    }

    /**
     * Remove terms from a FivetranConnector, without replacing all existing terms linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector's existing terms,
     * and a second to remove the provided terms.
     *
     * @param qualifiedName for the FivetranConnector
     * @param terms the list of terms to remove from the FivetranConnector, which must be referenced by GUID
     * @return the FivetranConnector that was updated (note that it will NOT contain details of the resulting terms)
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeTerms(String qualifiedName, List terms) throws AtlanException {
        return removeTerms(Atlan.getDefaultClient(), qualifiedName, terms);
    }

    /**
     * Remove terms from a FivetranConnector, without replacing all existing terms linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector'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 FivetranConnector
     * @param qualifiedName for the FivetranConnector
     * @param terms the list of terms to remove from the FivetranConnector, which must be referenced by GUID
     * @return the FivetranConnector that was updated (note that it will NOT contain details of the resulting terms)
     * @throws AtlanException on any API problems
     */
    public static FivetranConnector removeTerms(AtlanClient client, String qualifiedName, List terms) throws AtlanException {
        return (FivetranConnector) Asset.removeTerms(client, TYPE_NAME, qualifiedName, terms);
    }

    /**
     * Add Atlan tags to a FivetranConnector, without replacing existing Atlan tags linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector's existing Atlan tags,
     * and a second to append the new Atlan tags.
     *
     * @param qualifiedName of the FivetranConnector
     * @param atlanTagNames human-readable names of the Atlan tags to add
     * @throws AtlanException on any API problems
     * @return the updated FivetranConnector
     */
    public static FivetranConnector appendAtlanTags(String qualifiedName, List atlanTagNames) throws AtlanException {
        return appendAtlanTags(Atlan.getDefaultClient(), qualifiedName, atlanTagNames);
    }

    /**
     * Add Atlan tags to a FivetranConnector, without replacing existing Atlan tags linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector'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 FivetranConnector
     * @param qualifiedName of the FivetranConnector
     * @param atlanTagNames human-readable names of the Atlan tags to add
     * @throws AtlanException on any API problems
     * @return the updated FivetranConnector
     */
    public static FivetranConnector appendAtlanTags(AtlanClient client, String qualifiedName, List atlanTagNames) throws AtlanException {
        return (FivetranConnector) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames);
    }

    /**
     * Add Atlan tags to a FivetranConnector, without replacing existing Atlan tags linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector's existing Atlan tags,
     * and a second to append the new Atlan tags.
     *
     * @param qualifiedName of the FivetranConnector
     * @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 FivetranConnector
     */
    public static FivetranConnector appendAtlanTags(String qualifiedName, List atlanTagNames, boolean propagate, boolean removePropagationsOnDelete, boolean restrictLineagePropagation) throws AtlanException {
        return appendAtlanTags(Atlan.getDefaultClient(), qualifiedName, atlanTagNames, propagate, removePropagationsOnDelete, restrictLineagePropagation);
    }

    /**
     * Add Atlan tags to a FivetranConnector, without replacing existing Atlan tags linked to the FivetranConnector.
     * Note: this operation must make two API calls — one to retrieve the FivetranConnector'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 FivetranConnector
     * @param qualifiedName of the FivetranConnector
     * @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 FivetranConnector
     */
    public static FivetranConnector appendAtlanTags(AtlanClient client, String qualifiedName, List atlanTagNames, boolean propagate, boolean removePropagationsOnDelete, boolean restrictLineagePropagation) throws AtlanException {
        return (FivetranConnector) Asset.appendAtlanTags(client, TYPE_NAME, qualifiedName, atlanTagNames, propagate, removePropagationsOnDelete, restrictLineagePropagation);
    }

    /**
     * Remove an Atlan tag from a FivetranConnector.
     *
     * @param qualifiedName of the FivetranConnector
     * @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 FivetranConnector
     */
    public static void removeAtlanTag(String qualifiedName, String atlanTagName) throws AtlanException {
        removeAtlanTag(Atlan.getDefaultClient(), qualifiedName, atlanTagName);
    }

    /**
     * Remove an Atlan tag from a FivetranConnector.
     *
     * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a FivetranConnector
     * @param qualifiedName of the FivetranConnector
     * @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 FivetranConnector
     */
    public static void removeAtlanTag(AtlanClient client, String qualifiedName, String atlanTagName) throws AtlanException {
        Asset.removeAtlanTag(client, TYPE_NAME, qualifiedName, atlanTagName);
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    private static String $default$typeName() {
        return TYPE_NAME;
    }


    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public static abstract class FivetranConnectorBuilder> extends Asset.AssetBuilder {
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private boolean typeName$set;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String typeName$value;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorCreditsUsed;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorDestinationName;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorDestinationType;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorDestinationURL;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncExtractTimeSeconds;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncExtractVolumeMegabytes;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorLastSyncFinishedAt;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorLastSyncId;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncLoadTimeSeconds;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncLoadVolumeMegabytes;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncProcessTimeSeconds;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncProcessVolumeMegabytes;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorLastSyncReason;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorLastSyncRescheduledAt;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorLastSyncStartedAt;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorLastSyncTablesSynced;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorLastSyncTaskType;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorLastSyncTotalTimeSeconds;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorMonthlyActiveRowsChangePercentageFree;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorMonthlyActiveRowsChangePercentagePaid;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorMonthlyActiveRowsChangePercentageTotal;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorMonthlyActiveRowsFree;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorMonthlyActiveRowsPaid;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorMonthlyActiveRowsTotal;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorName;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorSyncFrequency;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Boolean fivetranConnectorSyncPaused;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorSyncSetupOn;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorSyncSetupUserEmail;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorSyncSetupUserFullName;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorTopTablesByMAR;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranConnectorTotalTablesSynced;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorType;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranConnectorURL;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Double fivetranConnectorUsageCost;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Long fivetranLastSyncRecordsUpdated;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private FivetranConnectorStatus fivetranLastSyncStatus;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String fivetranWorkflowName;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList inputToAirflowTasks;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList inputToProcesses;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList inputToSparkJobs;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList modelImplementedAttributes;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList modelImplementedEntities;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList outputFromAirflowTasks;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList outputFromProcesses;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList outputFromSparkJobs;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList processes;

        @java.lang.Override
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        protected B $fillValuesFrom(final C instance) {
            super.$fillValuesFrom(instance);
            FivetranConnector.FivetranConnectorBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private static void $fillValuesFromInstanceIntoBuilder(final FivetranConnector instance, final FivetranConnector.FivetranConnectorBuilder b) {
            b.typeName(instance.typeName);
            b.fivetranConnectorCreditsUsed(instance.fivetranConnectorCreditsUsed);
            b.fivetranConnectorDestinationName(instance.fivetranConnectorDestinationName);
            b.fivetranConnectorDestinationType(instance.fivetranConnectorDestinationType);
            b.fivetranConnectorDestinationURL(instance.fivetranConnectorDestinationURL);
            b.fivetranConnectorLastSyncExtractTimeSeconds(instance.fivetranConnectorLastSyncExtractTimeSeconds);
            b.fivetranConnectorLastSyncExtractVolumeMegabytes(instance.fivetranConnectorLastSyncExtractVolumeMegabytes);
            b.fivetranConnectorLastSyncFinishedAt(instance.fivetranConnectorLastSyncFinishedAt);
            b.fivetranConnectorLastSyncId(instance.fivetranConnectorLastSyncId);
            b.fivetranConnectorLastSyncLoadTimeSeconds(instance.fivetranConnectorLastSyncLoadTimeSeconds);
            b.fivetranConnectorLastSyncLoadVolumeMegabytes(instance.fivetranConnectorLastSyncLoadVolumeMegabytes);
            b.fivetranConnectorLastSyncProcessTimeSeconds(instance.fivetranConnectorLastSyncProcessTimeSeconds);
            b.fivetranConnectorLastSyncProcessVolumeMegabytes(instance.fivetranConnectorLastSyncProcessVolumeMegabytes);
            b.fivetranConnectorLastSyncReason(instance.fivetranConnectorLastSyncReason);
            b.fivetranConnectorLastSyncRescheduledAt(instance.fivetranConnectorLastSyncRescheduledAt);
            b.fivetranConnectorLastSyncStartedAt(instance.fivetranConnectorLastSyncStartedAt);
            b.fivetranConnectorLastSyncTablesSynced(instance.fivetranConnectorLastSyncTablesSynced);
            b.fivetranConnectorLastSyncTaskType(instance.fivetranConnectorLastSyncTaskType);
            b.fivetranConnectorLastSyncTotalTimeSeconds(instance.fivetranConnectorLastSyncTotalTimeSeconds);
            b.fivetranConnectorMonthlyActiveRowsChangePercentageFree(instance.fivetranConnectorMonthlyActiveRowsChangePercentageFree);
            b.fivetranConnectorMonthlyActiveRowsChangePercentagePaid(instance.fivetranConnectorMonthlyActiveRowsChangePercentagePaid);
            b.fivetranConnectorMonthlyActiveRowsChangePercentageTotal(instance.fivetranConnectorMonthlyActiveRowsChangePercentageTotal);
            b.fivetranConnectorMonthlyActiveRowsFree(instance.fivetranConnectorMonthlyActiveRowsFree);
            b.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount(instance.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount);
            b.fivetranConnectorMonthlyActiveRowsPaid(instance.fivetranConnectorMonthlyActiveRowsPaid);
            b.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount(instance.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount);
            b.fivetranConnectorMonthlyActiveRowsTotal(instance.fivetranConnectorMonthlyActiveRowsTotal);
            b.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount(instance.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount);
            b.fivetranConnectorName(instance.fivetranConnectorName);
            b.fivetranConnectorSyncFrequency(instance.fivetranConnectorSyncFrequency);
            b.fivetranConnectorSyncPaused(instance.fivetranConnectorSyncPaused);
            b.fivetranConnectorSyncSetupOn(instance.fivetranConnectorSyncSetupOn);
            b.fivetranConnectorSyncSetupUserEmail(instance.fivetranConnectorSyncSetupUserEmail);
            b.fivetranConnectorSyncSetupUserFullName(instance.fivetranConnectorSyncSetupUserFullName);
            b.fivetranConnectorTopTablesByMAR(instance.fivetranConnectorTopTablesByMAR);
            b.fivetranConnectorTotalTablesSynced(instance.fivetranConnectorTotalTablesSynced);
            b.fivetranConnectorType(instance.fivetranConnectorType);
            b.fivetranConnectorURL(instance.fivetranConnectorURL);
            b.fivetranConnectorUsageCost(instance.fivetranConnectorUsageCost);
            b.fivetranLastSyncRecordsUpdated(instance.fivetranLastSyncRecordsUpdated);
            b.fivetranLastSyncStatus(instance.fivetranLastSyncStatus);
            b.fivetranWorkflowName(instance.fivetranWorkflowName);
            b.inputToAirflowTasks(instance.inputToAirflowTasks == null ? java.util.Collections.emptySortedSet() : instance.inputToAirflowTasks);
            b.inputToProcesses(instance.inputToProcesses == null ? java.util.Collections.emptySortedSet() : instance.inputToProcesses);
            b.inputToSparkJobs(instance.inputToSparkJobs == null ? java.util.Collections.emptySortedSet() : instance.inputToSparkJobs);
            b.modelImplementedAttributes(instance.modelImplementedAttributes == null ? java.util.Collections.emptySortedSet() : instance.modelImplementedAttributes);
            b.modelImplementedEntities(instance.modelImplementedEntities == null ? java.util.Collections.emptySortedSet() : instance.modelImplementedEntities);
            b.outputFromAirflowTasks(instance.outputFromAirflowTasks == null ? java.util.Collections.emptySortedSet() : instance.outputFromAirflowTasks);
            b.outputFromProcesses(instance.outputFromProcesses == null ? java.util.Collections.emptySortedSet() : instance.outputFromProcesses);
            b.outputFromSparkJobs(instance.outputFromSparkJobs == null ? java.util.Collections.emptySortedSet() : instance.outputFromSparkJobs);
            b.processes(instance.processes == null ? java.util.Collections.emptySortedSet() : instance.processes);
        }

        /**
         * Fixed typeName for FivetranConnectors.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B typeName(final String typeName) {
            this.typeName$value = typeName;
            typeName$set = true;
            return self();
        }

        /**
         * Total credits used by this destination
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorCreditsUsed(final Double fivetranConnectorCreditsUsed) {
            this.fivetranConnectorCreditsUsed = fivetranConnectorCreditsUsed;
            return self();
        }

        /**
         * Destination name added by the user on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorDestinationName(final String fivetranConnectorDestinationName) {
            this.fivetranConnectorDestinationName = fivetranConnectorDestinationName;
            return self();
        }

        /**
         * Type of destination on Fivetran. Eg: redshift, bigquery etc.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorDestinationType(final String fivetranConnectorDestinationType) {
            this.fivetranConnectorDestinationType = fivetranConnectorDestinationType;
            return self();
        }

        /**
         * URL to open the destination details on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorDestinationURL(final String fivetranConnectorDestinationURL) {
            this.fivetranConnectorDestinationURL = fivetranConnectorDestinationURL;
            return self();
        }

        /**
         * Extract time in seconds in the latest sync on fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncExtractTimeSeconds(final Double fivetranConnectorLastSyncExtractTimeSeconds) {
            this.fivetranConnectorLastSyncExtractTimeSeconds = fivetranConnectorLastSyncExtractTimeSeconds;
            return self();
        }

        /**
         * Extracted data volume in metabytes in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncExtractVolumeMegabytes(final Double fivetranConnectorLastSyncExtractVolumeMegabytes) {
            this.fivetranConnectorLastSyncExtractVolumeMegabytes = fivetranConnectorLastSyncExtractVolumeMegabytes;
            return self();
        }

        /**
         * Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncFinishedAt(final Long fivetranConnectorLastSyncFinishedAt) {
            this.fivetranConnectorLastSyncFinishedAt = fivetranConnectorLastSyncFinishedAt;
            return self();
        }

        /**
         * ID of the latest sync
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncId(final String fivetranConnectorLastSyncId) {
            this.fivetranConnectorLastSyncId = fivetranConnectorLastSyncId;
            return self();
        }

        /**
         * Load time in seconds in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncLoadTimeSeconds(final Double fivetranConnectorLastSyncLoadTimeSeconds) {
            this.fivetranConnectorLastSyncLoadTimeSeconds = fivetranConnectorLastSyncLoadTimeSeconds;
            return self();
        }

        /**
         * Loaded data volume in metabytes in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncLoadVolumeMegabytes(final Double fivetranConnectorLastSyncLoadVolumeMegabytes) {
            this.fivetranConnectorLastSyncLoadVolumeMegabytes = fivetranConnectorLastSyncLoadVolumeMegabytes;
            return self();
        }

        /**
         * Process time in seconds in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncProcessTimeSeconds(final Double fivetranConnectorLastSyncProcessTimeSeconds) {
            this.fivetranConnectorLastSyncProcessTimeSeconds = fivetranConnectorLastSyncProcessTimeSeconds;
            return self();
        }

        /**
         * Process volume in metabytes in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncProcessVolumeMegabytes(final Double fivetranConnectorLastSyncProcessVolumeMegabytes) {
            this.fivetranConnectorLastSyncProcessVolumeMegabytes = fivetranConnectorLastSyncProcessVolumeMegabytes;
            return self();
        }

        /**
         * 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.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncReason(final String fivetranConnectorLastSyncReason) {
            this.fivetranConnectorLastSyncReason = fivetranConnectorLastSyncReason;
            return self();
        }

        /**
         * Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncRescheduledAt(final Long fivetranConnectorLastSyncRescheduledAt) {
            this.fivetranConnectorLastSyncRescheduledAt = fivetranConnectorLastSyncRescheduledAt;
            return self();
        }

        /**
         * Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncStartedAt(final Long fivetranConnectorLastSyncStartedAt) {
            this.fivetranConnectorLastSyncStartedAt = fivetranConnectorLastSyncStartedAt;
            return self();
        }

        /**
         * Number of tables synced in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncTablesSynced(final Long fivetranConnectorLastSyncTablesSynced) {
            this.fivetranConnectorLastSyncTablesSynced = fivetranConnectorLastSyncTablesSynced;
            return self();
        }

        /**
         * 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.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncTaskType(final String fivetranConnectorLastSyncTaskType) {
            this.fivetranConnectorLastSyncTaskType = fivetranConnectorLastSyncTaskType;
            return self();
        }

        /**
         * Total sync time in seconds in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorLastSyncTotalTimeSeconds(final Double fivetranConnectorLastSyncTotalTimeSeconds) {
            this.fivetranConnectorLastSyncTotalTimeSeconds = fivetranConnectorLastSyncTotalTimeSeconds;
            return self();
        }

        /**
         * Increase in the percentage of free MAR compared to the previous month
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsChangePercentageFree(final Double fivetranConnectorMonthlyActiveRowsChangePercentageFree) {
            this.fivetranConnectorMonthlyActiveRowsChangePercentageFree = fivetranConnectorMonthlyActiveRowsChangePercentageFree;
            return self();
        }

        /**
         * Increase in the percentage of paid MAR compared to the previous month
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsChangePercentagePaid(final Double fivetranConnectorMonthlyActiveRowsChangePercentagePaid) {
            this.fivetranConnectorMonthlyActiveRowsChangePercentagePaid = fivetranConnectorMonthlyActiveRowsChangePercentagePaid;
            return self();
        }

        /**
         * Increase in the percentage of total MAR compared to the previous month
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsChangePercentageTotal(final Double fivetranConnectorMonthlyActiveRowsChangePercentageTotal) {
            this.fivetranConnectorMonthlyActiveRowsChangePercentageTotal = fivetranConnectorMonthlyActiveRowsChangePercentageTotal;
            return self();
        }

        /**
         * Free Monthly Active Rows used by the connector in the past month
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsFree(final Long fivetranConnectorMonthlyActiveRowsFree) {
            this.fivetranConnectorMonthlyActiveRowsFree = fivetranConnectorMonthlyActiveRowsFree;
            return self();
        }

        /**
         * Percentage of the account's total free MAR used by this connector
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount(final Double fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount) {
            this.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount = fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount;
            return self();
        }

        /**
         * Paid Monthly Active Rows used by the connector in the past month
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsPaid(final Long fivetranConnectorMonthlyActiveRowsPaid) {
            this.fivetranConnectorMonthlyActiveRowsPaid = fivetranConnectorMonthlyActiveRowsPaid;
            return self();
        }

        /**
         * Percentage of the account's total paid MAR used by this connector
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount(final Double fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount) {
            this.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount = fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount;
            return self();
        }

        /**
         * Total Monthly Active Rows used by the connector in the past month
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsTotal(final Long fivetranConnectorMonthlyActiveRowsTotal) {
            this.fivetranConnectorMonthlyActiveRowsTotal = fivetranConnectorMonthlyActiveRowsTotal;
            return self();
        }

        /**
         * Percentage of the account's total MAR used by this connector
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount(final Double fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount) {
            this.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount = fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount;
            return self();
        }

        /**
         * Connector name added by the user on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorName(final String fivetranConnectorName) {
            this.fivetranConnectorName = fivetranConnectorName;
            return self();
        }

        /**
         * Sync frequency for the connector in number of hours. Eg: Every 6 hours
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorSyncFrequency(final String fivetranConnectorSyncFrequency) {
            this.fivetranConnectorSyncFrequency = fivetranConnectorSyncFrequency;
            return self();
        }

        /**
         * Boolean to indicate whether the sync for this connector is paused or not
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorSyncPaused(final Boolean fivetranConnectorSyncPaused) {
            this.fivetranConnectorSyncPaused = fivetranConnectorSyncPaused;
            return self();
        }

        /**
         * Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorSyncSetupOn(final Long fivetranConnectorSyncSetupOn) {
            this.fivetranConnectorSyncSetupOn = fivetranConnectorSyncSetupOn;
            return self();
        }

        /**
         * Email ID of the user who setpu the connector on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorSyncSetupUserEmail(final String fivetranConnectorSyncSetupUserEmail) {
            this.fivetranConnectorSyncSetupUserEmail = fivetranConnectorSyncSetupUserEmail;
            return self();
        }

        /**
         * Full name of the user who setup the connector on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorSyncSetupUserFullName(final String fivetranConnectorSyncSetupUserFullName) {
            this.fivetranConnectorSyncSetupUserFullName = fivetranConnectorSyncSetupUserFullName;
            return self();
        }

        /**
         * Total five tables sorted by MAR synced by this connector
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorTopTablesByMAR(final String fivetranConnectorTopTablesByMAR) {
            this.fivetranConnectorTopTablesByMAR = fivetranConnectorTopTablesByMAR;
            return self();
        }

        /**
         * Total number of tables synced by this connector
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorTotalTablesSynced(final Long fivetranConnectorTotalTablesSynced) {
            this.fivetranConnectorTotalTablesSynced = fivetranConnectorTotalTablesSynced;
            return self();
        }

        /**
         * Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorType(final String fivetranConnectorType) {
            this.fivetranConnectorType = fivetranConnectorType;
            return self();
        }

        /**
         * URL to open the connector details on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorURL(final String fivetranConnectorURL) {
            this.fivetranConnectorURL = fivetranConnectorURL;
            return self();
        }

        /**
         * Total usage cost by this destination
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranConnectorUsageCost(final Double fivetranConnectorUsageCost) {
            this.fivetranConnectorUsageCost = fivetranConnectorUsageCost;
            return self();
        }

        /**
         * Number of records updated in the latest sync on Fivetran
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranLastSyncRecordsUpdated(final Long fivetranLastSyncRecordsUpdated) {
            this.fivetranLastSyncRecordsUpdated = fivetranLastSyncRecordsUpdated;
            return self();
        }

        /**
         * Status of the latest sync on Fivetran.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranLastSyncStatus(final FivetranConnectorStatus fivetranLastSyncStatus) {
            this.fivetranLastSyncStatus = fivetranLastSyncStatus;
            return self();
        }

        /**
         * Name of the atlan fivetran workflow that updated this asset
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B fivetranWorkflowName(final String fivetranWorkflowName) {
            this.fivetranWorkflowName = fivetranWorkflowName;
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B inputToAirflowTask(final IAirflowTask inputToAirflowTask) {
            if (this.inputToAirflowTasks == null) this.inputToAirflowTasks = new java.util.ArrayList();
            this.inputToAirflowTasks.add(inputToAirflowTask);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B inputToAirflowTasks(final java.util.Collection inputToAirflowTasks) {
            if (inputToAirflowTasks == null) {
                throw new java.lang.NullPointerException("inputToAirflowTasks cannot be null");
            }
            if (this.inputToAirflowTasks == null) this.inputToAirflowTasks = new java.util.ArrayList();
            this.inputToAirflowTasks.addAll(inputToAirflowTasks);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearInputToAirflowTasks() {
            if (this.inputToAirflowTasks != null) this.inputToAirflowTasks.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B inputToProcess(final ILineageProcess inputToProcess) {
            if (this.inputToProcesses == null) this.inputToProcesses = new java.util.ArrayList();
            this.inputToProcesses.add(inputToProcess);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B inputToProcesses(final java.util.Collection inputToProcesses) {
            if (inputToProcesses == null) {
                throw new java.lang.NullPointerException("inputToProcesses cannot be null");
            }
            if (this.inputToProcesses == null) this.inputToProcesses = new java.util.ArrayList();
            this.inputToProcesses.addAll(inputToProcesses);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearInputToProcesses() {
            if (this.inputToProcesses != null) this.inputToProcesses.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B inputToSparkJob(final ISparkJob inputToSparkJob) {
            if (this.inputToSparkJobs == null) this.inputToSparkJobs = new java.util.ArrayList();
            this.inputToSparkJobs.add(inputToSparkJob);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B inputToSparkJobs(final java.util.Collection inputToSparkJobs) {
            if (inputToSparkJobs == null) {
                throw new java.lang.NullPointerException("inputToSparkJobs cannot be null");
            }
            if (this.inputToSparkJobs == null) this.inputToSparkJobs = new java.util.ArrayList();
            this.inputToSparkJobs.addAll(inputToSparkJobs);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearInputToSparkJobs() {
            if (this.inputToSparkJobs != null) this.inputToSparkJobs.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B modelImplementedAttribute(final IModelAttribute modelImplementedAttribute) {
            if (this.modelImplementedAttributes == null) this.modelImplementedAttributes = new java.util.ArrayList();
            this.modelImplementedAttributes.add(modelImplementedAttribute);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B modelImplementedAttributes(final java.util.Collection modelImplementedAttributes) {
            if (modelImplementedAttributes == null) {
                throw new java.lang.NullPointerException("modelImplementedAttributes cannot be null");
            }
            if (this.modelImplementedAttributes == null) this.modelImplementedAttributes = new java.util.ArrayList();
            this.modelImplementedAttributes.addAll(modelImplementedAttributes);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearModelImplementedAttributes() {
            if (this.modelImplementedAttributes != null) this.modelImplementedAttributes.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B modelImplementedEntity(final IModelEntity modelImplementedEntity) {
            if (this.modelImplementedEntities == null) this.modelImplementedEntities = new java.util.ArrayList();
            this.modelImplementedEntities.add(modelImplementedEntity);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B modelImplementedEntities(final java.util.Collection modelImplementedEntities) {
            if (modelImplementedEntities == null) {
                throw new java.lang.NullPointerException("modelImplementedEntities cannot be null");
            }
            if (this.modelImplementedEntities == null) this.modelImplementedEntities = new java.util.ArrayList();
            this.modelImplementedEntities.addAll(modelImplementedEntities);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearModelImplementedEntities() {
            if (this.modelImplementedEntities != null) this.modelImplementedEntities.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B outputFromAirflowTask(final IAirflowTask outputFromAirflowTask) {
            if (this.outputFromAirflowTasks == null) this.outputFromAirflowTasks = new java.util.ArrayList();
            this.outputFromAirflowTasks.add(outputFromAirflowTask);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B outputFromAirflowTasks(final java.util.Collection outputFromAirflowTasks) {
            if (outputFromAirflowTasks == null) {
                throw new java.lang.NullPointerException("outputFromAirflowTasks cannot be null");
            }
            if (this.outputFromAirflowTasks == null) this.outputFromAirflowTasks = new java.util.ArrayList();
            this.outputFromAirflowTasks.addAll(outputFromAirflowTasks);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearOutputFromAirflowTasks() {
            if (this.outputFromAirflowTasks != null) this.outputFromAirflowTasks.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B outputFromProcess(final ILineageProcess outputFromProcess) {
            if (this.outputFromProcesses == null) this.outputFromProcesses = new java.util.ArrayList();
            this.outputFromProcesses.add(outputFromProcess);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B outputFromProcesses(final java.util.Collection outputFromProcesses) {
            if (outputFromProcesses == null) {
                throw new java.lang.NullPointerException("outputFromProcesses cannot be null");
            }
            if (this.outputFromProcesses == null) this.outputFromProcesses = new java.util.ArrayList();
            this.outputFromProcesses.addAll(outputFromProcesses);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearOutputFromProcesses() {
            if (this.outputFromProcesses != null) this.outputFromProcesses.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B outputFromSparkJob(final ISparkJob outputFromSparkJob) {
            if (this.outputFromSparkJobs == null) this.outputFromSparkJobs = new java.util.ArrayList();
            this.outputFromSparkJobs.add(outputFromSparkJob);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B outputFromSparkJobs(final java.util.Collection outputFromSparkJobs) {
            if (outputFromSparkJobs == null) {
                throw new java.lang.NullPointerException("outputFromSparkJobs cannot be null");
            }
            if (this.outputFromSparkJobs == null) this.outputFromSparkJobs = new java.util.ArrayList();
            this.outputFromSparkJobs.addAll(outputFromSparkJobs);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearOutputFromSparkJobs() {
            if (this.outputFromSparkJobs != null) this.outputFromSparkJobs.clear();
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B process(final ILineageProcess process) {
            if (this.processes == null) this.processes = new java.util.ArrayList();
            this.processes.add(process);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B processes(final java.util.Collection processes) {
            if (processes == null) {
                throw new java.lang.NullPointerException("processes cannot be null");
            }
            if (this.processes == null) this.processes = new java.util.ArrayList();
            this.processes.addAll(processes);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B clearProcesses() {
            if (this.processes != null) this.processes.clear();
            return self();
        }

        @java.lang.Override
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        protected abstract B self();

        @java.lang.Override
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public abstract C build();

        @java.lang.Override
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public java.lang.String toString() {
            return "FivetranConnector.FivetranConnectorBuilder(super=" + super.toString() + ", typeName$value=" + this.typeName$value + ", fivetranConnectorCreditsUsed=" + this.fivetranConnectorCreditsUsed + ", fivetranConnectorDestinationName=" + this.fivetranConnectorDestinationName + ", fivetranConnectorDestinationType=" + this.fivetranConnectorDestinationType + ", fivetranConnectorDestinationURL=" + this.fivetranConnectorDestinationURL + ", fivetranConnectorLastSyncExtractTimeSeconds=" + this.fivetranConnectorLastSyncExtractTimeSeconds + ", fivetranConnectorLastSyncExtractVolumeMegabytes=" + this.fivetranConnectorLastSyncExtractVolumeMegabytes + ", fivetranConnectorLastSyncFinishedAt=" + this.fivetranConnectorLastSyncFinishedAt + ", fivetranConnectorLastSyncId=" + this.fivetranConnectorLastSyncId + ", fivetranConnectorLastSyncLoadTimeSeconds=" + this.fivetranConnectorLastSyncLoadTimeSeconds + ", fivetranConnectorLastSyncLoadVolumeMegabytes=" + this.fivetranConnectorLastSyncLoadVolumeMegabytes + ", fivetranConnectorLastSyncProcessTimeSeconds=" + this.fivetranConnectorLastSyncProcessTimeSeconds + ", fivetranConnectorLastSyncProcessVolumeMegabytes=" + this.fivetranConnectorLastSyncProcessVolumeMegabytes + ", fivetranConnectorLastSyncReason=" + this.fivetranConnectorLastSyncReason + ", fivetranConnectorLastSyncRescheduledAt=" + this.fivetranConnectorLastSyncRescheduledAt + ", fivetranConnectorLastSyncStartedAt=" + this.fivetranConnectorLastSyncStartedAt + ", fivetranConnectorLastSyncTablesSynced=" + this.fivetranConnectorLastSyncTablesSynced + ", fivetranConnectorLastSyncTaskType=" + this.fivetranConnectorLastSyncTaskType + ", fivetranConnectorLastSyncTotalTimeSeconds=" + this.fivetranConnectorLastSyncTotalTimeSeconds + ", fivetranConnectorMonthlyActiveRowsChangePercentageFree=" + this.fivetranConnectorMonthlyActiveRowsChangePercentageFree + ", fivetranConnectorMonthlyActiveRowsChangePercentagePaid=" + this.fivetranConnectorMonthlyActiveRowsChangePercentagePaid + ", fivetranConnectorMonthlyActiveRowsChangePercentageTotal=" + this.fivetranConnectorMonthlyActiveRowsChangePercentageTotal + ", fivetranConnectorMonthlyActiveRowsFree=" + this.fivetranConnectorMonthlyActiveRowsFree + ", fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount=" + this.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount + ", fivetranConnectorMonthlyActiveRowsPaid=" + this.fivetranConnectorMonthlyActiveRowsPaid + ", fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount=" + this.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount + ", fivetranConnectorMonthlyActiveRowsTotal=" + this.fivetranConnectorMonthlyActiveRowsTotal + ", fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount=" + this.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount + ", fivetranConnectorName=" + this.fivetranConnectorName + ", fivetranConnectorSyncFrequency=" + this.fivetranConnectorSyncFrequency + ", fivetranConnectorSyncPaused=" + this.fivetranConnectorSyncPaused + ", fivetranConnectorSyncSetupOn=" + this.fivetranConnectorSyncSetupOn + ", fivetranConnectorSyncSetupUserEmail=" + this.fivetranConnectorSyncSetupUserEmail + ", fivetranConnectorSyncSetupUserFullName=" + this.fivetranConnectorSyncSetupUserFullName + ", fivetranConnectorTopTablesByMAR=" + this.fivetranConnectorTopTablesByMAR + ", fivetranConnectorTotalTablesSynced=" + this.fivetranConnectorTotalTablesSynced + ", fivetranConnectorType=" + this.fivetranConnectorType + ", fivetranConnectorURL=" + this.fivetranConnectorURL + ", fivetranConnectorUsageCost=" + this.fivetranConnectorUsageCost + ", fivetranLastSyncRecordsUpdated=" + this.fivetranLastSyncRecordsUpdated + ", fivetranLastSyncStatus=" + this.fivetranLastSyncStatus + ", fivetranWorkflowName=" + this.fivetranWorkflowName + ", inputToAirflowTasks=" + this.inputToAirflowTasks + ", inputToProcesses=" + this.inputToProcesses + ", inputToSparkJobs=" + this.inputToSparkJobs + ", modelImplementedAttributes=" + this.modelImplementedAttributes + ", modelImplementedEntities=" + this.modelImplementedEntities + ", outputFromAirflowTasks=" + this.outputFromAirflowTasks + ", outputFromProcesses=" + this.outputFromProcesses + ", outputFromSparkJobs=" + this.outputFromSparkJobs + ", processes=" + this.processes + ")";
        }
    }


    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    private static final class FivetranConnectorBuilderImpl extends FivetranConnector.FivetranConnectorBuilder {
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private FivetranConnectorBuilderImpl() {
        }

        @java.lang.Override
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        protected FivetranConnector.FivetranConnectorBuilderImpl self() {
            return this;
        }

        @java.lang.Override
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public FivetranConnector build() {
            return new FivetranConnector(this);
        }
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    protected FivetranConnector(final FivetranConnector.FivetranConnectorBuilder b) {
        super(b);
        if (b.typeName$set) this.typeName = b.typeName$value;
         else this.typeName = FivetranConnector.$default$typeName();
        this.fivetranConnectorCreditsUsed = b.fivetranConnectorCreditsUsed;
        this.fivetranConnectorDestinationName = b.fivetranConnectorDestinationName;
        this.fivetranConnectorDestinationType = b.fivetranConnectorDestinationType;
        this.fivetranConnectorDestinationURL = b.fivetranConnectorDestinationURL;
        this.fivetranConnectorLastSyncExtractTimeSeconds = b.fivetranConnectorLastSyncExtractTimeSeconds;
        this.fivetranConnectorLastSyncExtractVolumeMegabytes = b.fivetranConnectorLastSyncExtractVolumeMegabytes;
        this.fivetranConnectorLastSyncFinishedAt = b.fivetranConnectorLastSyncFinishedAt;
        this.fivetranConnectorLastSyncId = b.fivetranConnectorLastSyncId;
        this.fivetranConnectorLastSyncLoadTimeSeconds = b.fivetranConnectorLastSyncLoadTimeSeconds;
        this.fivetranConnectorLastSyncLoadVolumeMegabytes = b.fivetranConnectorLastSyncLoadVolumeMegabytes;
        this.fivetranConnectorLastSyncProcessTimeSeconds = b.fivetranConnectorLastSyncProcessTimeSeconds;
        this.fivetranConnectorLastSyncProcessVolumeMegabytes = b.fivetranConnectorLastSyncProcessVolumeMegabytes;
        this.fivetranConnectorLastSyncReason = b.fivetranConnectorLastSyncReason;
        this.fivetranConnectorLastSyncRescheduledAt = b.fivetranConnectorLastSyncRescheduledAt;
        this.fivetranConnectorLastSyncStartedAt = b.fivetranConnectorLastSyncStartedAt;
        this.fivetranConnectorLastSyncTablesSynced = b.fivetranConnectorLastSyncTablesSynced;
        this.fivetranConnectorLastSyncTaskType = b.fivetranConnectorLastSyncTaskType;
        this.fivetranConnectorLastSyncTotalTimeSeconds = b.fivetranConnectorLastSyncTotalTimeSeconds;
        this.fivetranConnectorMonthlyActiveRowsChangePercentageFree = b.fivetranConnectorMonthlyActiveRowsChangePercentageFree;
        this.fivetranConnectorMonthlyActiveRowsChangePercentagePaid = b.fivetranConnectorMonthlyActiveRowsChangePercentagePaid;
        this.fivetranConnectorMonthlyActiveRowsChangePercentageTotal = b.fivetranConnectorMonthlyActiveRowsChangePercentageTotal;
        this.fivetranConnectorMonthlyActiveRowsFree = b.fivetranConnectorMonthlyActiveRowsFree;
        this.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount = b.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount;
        this.fivetranConnectorMonthlyActiveRowsPaid = b.fivetranConnectorMonthlyActiveRowsPaid;
        this.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount = b.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount;
        this.fivetranConnectorMonthlyActiveRowsTotal = b.fivetranConnectorMonthlyActiveRowsTotal;
        this.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount = b.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount;
        this.fivetranConnectorName = b.fivetranConnectorName;
        this.fivetranConnectorSyncFrequency = b.fivetranConnectorSyncFrequency;
        this.fivetranConnectorSyncPaused = b.fivetranConnectorSyncPaused;
        this.fivetranConnectorSyncSetupOn = b.fivetranConnectorSyncSetupOn;
        this.fivetranConnectorSyncSetupUserEmail = b.fivetranConnectorSyncSetupUserEmail;
        this.fivetranConnectorSyncSetupUserFullName = b.fivetranConnectorSyncSetupUserFullName;
        this.fivetranConnectorTopTablesByMAR = b.fivetranConnectorTopTablesByMAR;
        this.fivetranConnectorTotalTablesSynced = b.fivetranConnectorTotalTablesSynced;
        this.fivetranConnectorType = b.fivetranConnectorType;
        this.fivetranConnectorURL = b.fivetranConnectorURL;
        this.fivetranConnectorUsageCost = b.fivetranConnectorUsageCost;
        this.fivetranLastSyncRecordsUpdated = b.fivetranLastSyncRecordsUpdated;
        this.fivetranLastSyncStatus = b.fivetranLastSyncStatus;
        this.fivetranWorkflowName = b.fivetranWorkflowName;
        java.util.SortedSet inputToAirflowTasks = new java.util.TreeSet();
        if (b.inputToAirflowTasks != null) inputToAirflowTasks.addAll(b.inputToAirflowTasks);
        inputToAirflowTasks = java.util.Collections.unmodifiableSortedSet(inputToAirflowTasks);
        this.inputToAirflowTasks = inputToAirflowTasks;
        java.util.SortedSet inputToProcesses = new java.util.TreeSet();
        if (b.inputToProcesses != null) inputToProcesses.addAll(b.inputToProcesses);
        inputToProcesses = java.util.Collections.unmodifiableSortedSet(inputToProcesses);
        this.inputToProcesses = inputToProcesses;
        java.util.SortedSet inputToSparkJobs = new java.util.TreeSet();
        if (b.inputToSparkJobs != null) inputToSparkJobs.addAll(b.inputToSparkJobs);
        inputToSparkJobs = java.util.Collections.unmodifiableSortedSet(inputToSparkJobs);
        this.inputToSparkJobs = inputToSparkJobs;
        java.util.SortedSet modelImplementedAttributes = new java.util.TreeSet();
        if (b.modelImplementedAttributes != null) modelImplementedAttributes.addAll(b.modelImplementedAttributes);
        modelImplementedAttributes = java.util.Collections.unmodifiableSortedSet(modelImplementedAttributes);
        this.modelImplementedAttributes = modelImplementedAttributes;
        java.util.SortedSet modelImplementedEntities = new java.util.TreeSet();
        if (b.modelImplementedEntities != null) modelImplementedEntities.addAll(b.modelImplementedEntities);
        modelImplementedEntities = java.util.Collections.unmodifiableSortedSet(modelImplementedEntities);
        this.modelImplementedEntities = modelImplementedEntities;
        java.util.SortedSet outputFromAirflowTasks = new java.util.TreeSet();
        if (b.outputFromAirflowTasks != null) outputFromAirflowTasks.addAll(b.outputFromAirflowTasks);
        outputFromAirflowTasks = java.util.Collections.unmodifiableSortedSet(outputFromAirflowTasks);
        this.outputFromAirflowTasks = outputFromAirflowTasks;
        java.util.SortedSet outputFromProcesses = new java.util.TreeSet();
        if (b.outputFromProcesses != null) outputFromProcesses.addAll(b.outputFromProcesses);
        outputFromProcesses = java.util.Collections.unmodifiableSortedSet(outputFromProcesses);
        this.outputFromProcesses = outputFromProcesses;
        java.util.SortedSet outputFromSparkJobs = new java.util.TreeSet();
        if (b.outputFromSparkJobs != null) outputFromSparkJobs.addAll(b.outputFromSparkJobs);
        outputFromSparkJobs = java.util.Collections.unmodifiableSortedSet(outputFromSparkJobs);
        this.outputFromSparkJobs = outputFromSparkJobs;
        java.util.SortedSet processes = new java.util.TreeSet();
        if (b.processes != null) processes.addAll(b.processes);
        processes = java.util.Collections.unmodifiableSortedSet(processes);
        this.processes = processes;
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public static FivetranConnector.FivetranConnectorBuilder _internal() {
        return new FivetranConnector.FivetranConnectorBuilderImpl();
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public FivetranConnector.FivetranConnectorBuilder toBuilder() {
        return new FivetranConnector.FivetranConnectorBuilderImpl().$fillValuesFrom(this);
    }

    /**
     * Total credits used by this destination
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorCreditsUsed() {
        return this.fivetranConnectorCreditsUsed;
    }

    /**
     * Destination name added by the user on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorDestinationName() {
        return this.fivetranConnectorDestinationName;
    }

    /**
     * Type of destination on Fivetran. Eg: redshift, bigquery etc.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorDestinationType() {
        return this.fivetranConnectorDestinationType;
    }

    /**
     * URL to open the destination details on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorDestinationURL() {
        return this.fivetranConnectorDestinationURL;
    }

    /**
     * Extract time in seconds in the latest sync on fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncExtractTimeSeconds() {
        return this.fivetranConnectorLastSyncExtractTimeSeconds;
    }

    /**
     * Extracted data volume in metabytes in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncExtractVolumeMegabytes() {
        return this.fivetranConnectorLastSyncExtractVolumeMegabytes;
    }

    /**
     * Timestamp (epoch) when the latest sync finished on Fivetran, in milliseconds
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorLastSyncFinishedAt() {
        return this.fivetranConnectorLastSyncFinishedAt;
    }

    /**
     * ID of the latest sync
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorLastSyncId() {
        return this.fivetranConnectorLastSyncId;
    }

    /**
     * Load time in seconds in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncLoadTimeSeconds() {
        return this.fivetranConnectorLastSyncLoadTimeSeconds;
    }

    /**
     * Loaded data volume in metabytes in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncLoadVolumeMegabytes() {
        return this.fivetranConnectorLastSyncLoadVolumeMegabytes;
    }

    /**
     * Process time in seconds in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncProcessTimeSeconds() {
        return this.fivetranConnectorLastSyncProcessTimeSeconds;
    }

    /**
     * Process volume in metabytes in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncProcessVolumeMegabytes() {
        return this.fivetranConnectorLastSyncProcessVolumeMegabytes;
    }

    /**
     * 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.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorLastSyncReason() {
        return this.fivetranConnectorLastSyncReason;
    }

    /**
     * Timestamp (epoch) at which the latest sync is rescheduled at on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorLastSyncRescheduledAt() {
        return this.fivetranConnectorLastSyncRescheduledAt;
    }

    /**
     * Timestamp (epoch) when the latest sync started on Fivetran, in milliseconds
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorLastSyncStartedAt() {
        return this.fivetranConnectorLastSyncStartedAt;
    }

    /**
     * Number of tables synced in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorLastSyncTablesSynced() {
        return this.fivetranConnectorLastSyncTablesSynced;
    }

    /**
     * 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.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorLastSyncTaskType() {
        return this.fivetranConnectorLastSyncTaskType;
    }

    /**
     * Total sync time in seconds in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorLastSyncTotalTimeSeconds() {
        return this.fivetranConnectorLastSyncTotalTimeSeconds;
    }

    /**
     * Increase in the percentage of free MAR compared to the previous month
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorMonthlyActiveRowsChangePercentageFree() {
        return this.fivetranConnectorMonthlyActiveRowsChangePercentageFree;
    }

    /**
     * Increase in the percentage of paid MAR compared to the previous month
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorMonthlyActiveRowsChangePercentagePaid() {
        return this.fivetranConnectorMonthlyActiveRowsChangePercentagePaid;
    }

    /**
     * Increase in the percentage of total MAR compared to the previous month
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorMonthlyActiveRowsChangePercentageTotal() {
        return this.fivetranConnectorMonthlyActiveRowsChangePercentageTotal;
    }

    /**
     * Free Monthly Active Rows used by the connector in the past month
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorMonthlyActiveRowsFree() {
        return this.fivetranConnectorMonthlyActiveRowsFree;
    }

    /**
     * Percentage of the account's total free MAR used by this connector
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorMonthlyActiveRowsFreePercentageOfAccount() {
        return this.fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount;
    }

    /**
     * Paid Monthly Active Rows used by the connector in the past month
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorMonthlyActiveRowsPaid() {
        return this.fivetranConnectorMonthlyActiveRowsPaid;
    }

    /**
     * Percentage of the account's total paid MAR used by this connector
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount() {
        return this.fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount;
    }

    /**
     * Total Monthly Active Rows used by the connector in the past month
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorMonthlyActiveRowsTotal() {
        return this.fivetranConnectorMonthlyActiveRowsTotal;
    }

    /**
     * Percentage of the account's total MAR used by this connector
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount() {
        return this.fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount;
    }

    /**
     * Connector name added by the user on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorName() {
        return this.fivetranConnectorName;
    }

    /**
     * Sync frequency for the connector in number of hours. Eg: Every 6 hours
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorSyncFrequency() {
        return this.fivetranConnectorSyncFrequency;
    }

    /**
     * Boolean to indicate whether the sync for this connector is paused or not
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Boolean getFivetranConnectorSyncPaused() {
        return this.fivetranConnectorSyncPaused;
    }

    /**
     * Timestamp (epoch) on which the connector was setup on Fivetran, in milliseconds
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorSyncSetupOn() {
        return this.fivetranConnectorSyncSetupOn;
    }

    /**
     * Email ID of the user who setpu the connector on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorSyncSetupUserEmail() {
        return this.fivetranConnectorSyncSetupUserEmail;
    }

    /**
     * Full name of the user who setup the connector on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorSyncSetupUserFullName() {
        return this.fivetranConnectorSyncSetupUserFullName;
    }

    /**
     * Total five tables sorted by MAR synced by this connector
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorTopTablesByMAR() {
        return this.fivetranConnectorTopTablesByMAR;
    }

    /**
     * Total number of tables synced by this connector
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranConnectorTotalTablesSynced() {
        return this.fivetranConnectorTotalTablesSynced;
    }

    /**
     * Type of connector on Fivetran. Eg: snowflake, google_analytics, notion etc.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorType() {
        return this.fivetranConnectorType;
    }

    /**
     * URL to open the connector details on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranConnectorURL() {
        return this.fivetranConnectorURL;
    }

    /**
     * Total usage cost by this destination
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Double getFivetranConnectorUsageCost() {
        return this.fivetranConnectorUsageCost;
    }

    /**
     * Number of records updated in the latest sync on Fivetran
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Long getFivetranLastSyncRecordsUpdated() {
        return this.fivetranLastSyncRecordsUpdated;
    }

    /**
     * Status of the latest sync on Fivetran.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public FivetranConnectorStatus getFivetranLastSyncStatus() {
        return this.fivetranLastSyncStatus;
    }

    /**
     * Name of the atlan fivetran workflow that updated this asset
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getFivetranWorkflowName() {
        return this.fivetranWorkflowName;
    }

    /**
     * Tasks to which this asset provides input.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getInputToAirflowTasks() {
        return this.inputToAirflowTasks;
    }

    /**
     * Processes to which this asset provides input.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getInputToProcesses() {
        return this.inputToProcesses;
    }

    /**
     * TBC
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getInputToSparkJobs() {
        return this.inputToSparkJobs;
    }

    /**
     * Attributes implemented by this asset.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getModelImplementedAttributes() {
        return this.modelImplementedAttributes;
    }

    /**
     * Entities implemented by this asset.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getModelImplementedEntities() {
        return this.modelImplementedEntities;
    }

    /**
     * Tasks from which this asset is output.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getOutputFromAirflowTasks() {
        return this.outputFromAirflowTasks;
    }

    /**
     * Processes from which this asset is produced as output.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getOutputFromProcesses() {
        return this.outputFromProcesses;
    }

    /**
     * TBC
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getOutputFromSparkJobs() {
        return this.outputFromSparkJobs;
    }

    /**
     * Processes related to this Fivetran connector
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getProcesses() {
        return this.processes;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public boolean equals(final java.lang.Object o) {
        if (o == this) return true;
        if (!(o instanceof FivetranConnector)) return false;
        final FivetranConnector other = (FivetranConnector) o;
        if (!other.canEqual((java.lang.Object) this)) return false;
        if (!super.equals(o)) return false;
        final java.lang.Object this$fivetranConnectorCreditsUsed = this.getFivetranConnectorCreditsUsed();
        final java.lang.Object other$fivetranConnectorCreditsUsed = other.getFivetranConnectorCreditsUsed();
        if (this$fivetranConnectorCreditsUsed == null ? other$fivetranConnectorCreditsUsed != null : !this$fivetranConnectorCreditsUsed.equals(other$fivetranConnectorCreditsUsed)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncExtractTimeSeconds = this.getFivetranConnectorLastSyncExtractTimeSeconds();
        final java.lang.Object other$fivetranConnectorLastSyncExtractTimeSeconds = other.getFivetranConnectorLastSyncExtractTimeSeconds();
        if (this$fivetranConnectorLastSyncExtractTimeSeconds == null ? other$fivetranConnectorLastSyncExtractTimeSeconds != null : !this$fivetranConnectorLastSyncExtractTimeSeconds.equals(other$fivetranConnectorLastSyncExtractTimeSeconds)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncExtractVolumeMegabytes = this.getFivetranConnectorLastSyncExtractVolumeMegabytes();
        final java.lang.Object other$fivetranConnectorLastSyncExtractVolumeMegabytes = other.getFivetranConnectorLastSyncExtractVolumeMegabytes();
        if (this$fivetranConnectorLastSyncExtractVolumeMegabytes == null ? other$fivetranConnectorLastSyncExtractVolumeMegabytes != null : !this$fivetranConnectorLastSyncExtractVolumeMegabytes.equals(other$fivetranConnectorLastSyncExtractVolumeMegabytes)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncFinishedAt = this.getFivetranConnectorLastSyncFinishedAt();
        final java.lang.Object other$fivetranConnectorLastSyncFinishedAt = other.getFivetranConnectorLastSyncFinishedAt();
        if (this$fivetranConnectorLastSyncFinishedAt == null ? other$fivetranConnectorLastSyncFinishedAt != null : !this$fivetranConnectorLastSyncFinishedAt.equals(other$fivetranConnectorLastSyncFinishedAt)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncLoadTimeSeconds = this.getFivetranConnectorLastSyncLoadTimeSeconds();
        final java.lang.Object other$fivetranConnectorLastSyncLoadTimeSeconds = other.getFivetranConnectorLastSyncLoadTimeSeconds();
        if (this$fivetranConnectorLastSyncLoadTimeSeconds == null ? other$fivetranConnectorLastSyncLoadTimeSeconds != null : !this$fivetranConnectorLastSyncLoadTimeSeconds.equals(other$fivetranConnectorLastSyncLoadTimeSeconds)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncLoadVolumeMegabytes = this.getFivetranConnectorLastSyncLoadVolumeMegabytes();
        final java.lang.Object other$fivetranConnectorLastSyncLoadVolumeMegabytes = other.getFivetranConnectorLastSyncLoadVolumeMegabytes();
        if (this$fivetranConnectorLastSyncLoadVolumeMegabytes == null ? other$fivetranConnectorLastSyncLoadVolumeMegabytes != null : !this$fivetranConnectorLastSyncLoadVolumeMegabytes.equals(other$fivetranConnectorLastSyncLoadVolumeMegabytes)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncProcessTimeSeconds = this.getFivetranConnectorLastSyncProcessTimeSeconds();
        final java.lang.Object other$fivetranConnectorLastSyncProcessTimeSeconds = other.getFivetranConnectorLastSyncProcessTimeSeconds();
        if (this$fivetranConnectorLastSyncProcessTimeSeconds == null ? other$fivetranConnectorLastSyncProcessTimeSeconds != null : !this$fivetranConnectorLastSyncProcessTimeSeconds.equals(other$fivetranConnectorLastSyncProcessTimeSeconds)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncProcessVolumeMegabytes = this.getFivetranConnectorLastSyncProcessVolumeMegabytes();
        final java.lang.Object other$fivetranConnectorLastSyncProcessVolumeMegabytes = other.getFivetranConnectorLastSyncProcessVolumeMegabytes();
        if (this$fivetranConnectorLastSyncProcessVolumeMegabytes == null ? other$fivetranConnectorLastSyncProcessVolumeMegabytes != null : !this$fivetranConnectorLastSyncProcessVolumeMegabytes.equals(other$fivetranConnectorLastSyncProcessVolumeMegabytes)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncRescheduledAt = this.getFivetranConnectorLastSyncRescheduledAt();
        final java.lang.Object other$fivetranConnectorLastSyncRescheduledAt = other.getFivetranConnectorLastSyncRescheduledAt();
        if (this$fivetranConnectorLastSyncRescheduledAt == null ? other$fivetranConnectorLastSyncRescheduledAt != null : !this$fivetranConnectorLastSyncRescheduledAt.equals(other$fivetranConnectorLastSyncRescheduledAt)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncStartedAt = this.getFivetranConnectorLastSyncStartedAt();
        final java.lang.Object other$fivetranConnectorLastSyncStartedAt = other.getFivetranConnectorLastSyncStartedAt();
        if (this$fivetranConnectorLastSyncStartedAt == null ? other$fivetranConnectorLastSyncStartedAt != null : !this$fivetranConnectorLastSyncStartedAt.equals(other$fivetranConnectorLastSyncStartedAt)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncTablesSynced = this.getFivetranConnectorLastSyncTablesSynced();
        final java.lang.Object other$fivetranConnectorLastSyncTablesSynced = other.getFivetranConnectorLastSyncTablesSynced();
        if (this$fivetranConnectorLastSyncTablesSynced == null ? other$fivetranConnectorLastSyncTablesSynced != null : !this$fivetranConnectorLastSyncTablesSynced.equals(other$fivetranConnectorLastSyncTablesSynced)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncTotalTimeSeconds = this.getFivetranConnectorLastSyncTotalTimeSeconds();
        final java.lang.Object other$fivetranConnectorLastSyncTotalTimeSeconds = other.getFivetranConnectorLastSyncTotalTimeSeconds();
        if (this$fivetranConnectorLastSyncTotalTimeSeconds == null ? other$fivetranConnectorLastSyncTotalTimeSeconds != null : !this$fivetranConnectorLastSyncTotalTimeSeconds.equals(other$fivetranConnectorLastSyncTotalTimeSeconds)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsChangePercentageFree = this.getFivetranConnectorMonthlyActiveRowsChangePercentageFree();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsChangePercentageFree = other.getFivetranConnectorMonthlyActiveRowsChangePercentageFree();
        if (this$fivetranConnectorMonthlyActiveRowsChangePercentageFree == null ? other$fivetranConnectorMonthlyActiveRowsChangePercentageFree != null : !this$fivetranConnectorMonthlyActiveRowsChangePercentageFree.equals(other$fivetranConnectorMonthlyActiveRowsChangePercentageFree)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsChangePercentagePaid = this.getFivetranConnectorMonthlyActiveRowsChangePercentagePaid();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsChangePercentagePaid = other.getFivetranConnectorMonthlyActiveRowsChangePercentagePaid();
        if (this$fivetranConnectorMonthlyActiveRowsChangePercentagePaid == null ? other$fivetranConnectorMonthlyActiveRowsChangePercentagePaid != null : !this$fivetranConnectorMonthlyActiveRowsChangePercentagePaid.equals(other$fivetranConnectorMonthlyActiveRowsChangePercentagePaid)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsChangePercentageTotal = this.getFivetranConnectorMonthlyActiveRowsChangePercentageTotal();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsChangePercentageTotal = other.getFivetranConnectorMonthlyActiveRowsChangePercentageTotal();
        if (this$fivetranConnectorMonthlyActiveRowsChangePercentageTotal == null ? other$fivetranConnectorMonthlyActiveRowsChangePercentageTotal != null : !this$fivetranConnectorMonthlyActiveRowsChangePercentageTotal.equals(other$fivetranConnectorMonthlyActiveRowsChangePercentageTotal)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsFree = this.getFivetranConnectorMonthlyActiveRowsFree();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsFree = other.getFivetranConnectorMonthlyActiveRowsFree();
        if (this$fivetranConnectorMonthlyActiveRowsFree == null ? other$fivetranConnectorMonthlyActiveRowsFree != null : !this$fivetranConnectorMonthlyActiveRowsFree.equals(other$fivetranConnectorMonthlyActiveRowsFree)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount = this.getFivetranConnectorMonthlyActiveRowsFreePercentageOfAccount();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount = other.getFivetranConnectorMonthlyActiveRowsFreePercentageOfAccount();
        if (this$fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount == null ? other$fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount != null : !this$fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount.equals(other$fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsPaid = this.getFivetranConnectorMonthlyActiveRowsPaid();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsPaid = other.getFivetranConnectorMonthlyActiveRowsPaid();
        if (this$fivetranConnectorMonthlyActiveRowsPaid == null ? other$fivetranConnectorMonthlyActiveRowsPaid != null : !this$fivetranConnectorMonthlyActiveRowsPaid.equals(other$fivetranConnectorMonthlyActiveRowsPaid)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount = this.getFivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount = other.getFivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount();
        if (this$fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount == null ? other$fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount != null : !this$fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount.equals(other$fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsTotal = this.getFivetranConnectorMonthlyActiveRowsTotal();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsTotal = other.getFivetranConnectorMonthlyActiveRowsTotal();
        if (this$fivetranConnectorMonthlyActiveRowsTotal == null ? other$fivetranConnectorMonthlyActiveRowsTotal != null : !this$fivetranConnectorMonthlyActiveRowsTotal.equals(other$fivetranConnectorMonthlyActiveRowsTotal)) return false;
        final java.lang.Object this$fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount = this.getFivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount();
        final java.lang.Object other$fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount = other.getFivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount();
        if (this$fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount == null ? other$fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount != null : !this$fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount.equals(other$fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount)) return false;
        final java.lang.Object this$fivetranConnectorSyncPaused = this.getFivetranConnectorSyncPaused();
        final java.lang.Object other$fivetranConnectorSyncPaused = other.getFivetranConnectorSyncPaused();
        if (this$fivetranConnectorSyncPaused == null ? other$fivetranConnectorSyncPaused != null : !this$fivetranConnectorSyncPaused.equals(other$fivetranConnectorSyncPaused)) return false;
        final java.lang.Object this$fivetranConnectorSyncSetupOn = this.getFivetranConnectorSyncSetupOn();
        final java.lang.Object other$fivetranConnectorSyncSetupOn = other.getFivetranConnectorSyncSetupOn();
        if (this$fivetranConnectorSyncSetupOn == null ? other$fivetranConnectorSyncSetupOn != null : !this$fivetranConnectorSyncSetupOn.equals(other$fivetranConnectorSyncSetupOn)) return false;
        final java.lang.Object this$fivetranConnectorTotalTablesSynced = this.getFivetranConnectorTotalTablesSynced();
        final java.lang.Object other$fivetranConnectorTotalTablesSynced = other.getFivetranConnectorTotalTablesSynced();
        if (this$fivetranConnectorTotalTablesSynced == null ? other$fivetranConnectorTotalTablesSynced != null : !this$fivetranConnectorTotalTablesSynced.equals(other$fivetranConnectorTotalTablesSynced)) return false;
        final java.lang.Object this$fivetranConnectorUsageCost = this.getFivetranConnectorUsageCost();
        final java.lang.Object other$fivetranConnectorUsageCost = other.getFivetranConnectorUsageCost();
        if (this$fivetranConnectorUsageCost == null ? other$fivetranConnectorUsageCost != null : !this$fivetranConnectorUsageCost.equals(other$fivetranConnectorUsageCost)) return false;
        final java.lang.Object this$fivetranLastSyncRecordsUpdated = this.getFivetranLastSyncRecordsUpdated();
        final java.lang.Object other$fivetranLastSyncRecordsUpdated = other.getFivetranLastSyncRecordsUpdated();
        if (this$fivetranLastSyncRecordsUpdated == null ? other$fivetranLastSyncRecordsUpdated != null : !this$fivetranLastSyncRecordsUpdated.equals(other$fivetranLastSyncRecordsUpdated)) return false;
        final java.lang.Object this$typeName = this.getTypeName();
        final java.lang.Object other$typeName = other.getTypeName();
        if (this$typeName == null ? other$typeName != null : !this$typeName.equals(other$typeName)) return false;
        final java.lang.Object this$fivetranConnectorDestinationName = this.getFivetranConnectorDestinationName();
        final java.lang.Object other$fivetranConnectorDestinationName = other.getFivetranConnectorDestinationName();
        if (this$fivetranConnectorDestinationName == null ? other$fivetranConnectorDestinationName != null : !this$fivetranConnectorDestinationName.equals(other$fivetranConnectorDestinationName)) return false;
        final java.lang.Object this$fivetranConnectorDestinationType = this.getFivetranConnectorDestinationType();
        final java.lang.Object other$fivetranConnectorDestinationType = other.getFivetranConnectorDestinationType();
        if (this$fivetranConnectorDestinationType == null ? other$fivetranConnectorDestinationType != null : !this$fivetranConnectorDestinationType.equals(other$fivetranConnectorDestinationType)) return false;
        final java.lang.Object this$fivetranConnectorDestinationURL = this.getFivetranConnectorDestinationURL();
        final java.lang.Object other$fivetranConnectorDestinationURL = other.getFivetranConnectorDestinationURL();
        if (this$fivetranConnectorDestinationURL == null ? other$fivetranConnectorDestinationURL != null : !this$fivetranConnectorDestinationURL.equals(other$fivetranConnectorDestinationURL)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncId = this.getFivetranConnectorLastSyncId();
        final java.lang.Object other$fivetranConnectorLastSyncId = other.getFivetranConnectorLastSyncId();
        if (this$fivetranConnectorLastSyncId == null ? other$fivetranConnectorLastSyncId != null : !this$fivetranConnectorLastSyncId.equals(other$fivetranConnectorLastSyncId)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncReason = this.getFivetranConnectorLastSyncReason();
        final java.lang.Object other$fivetranConnectorLastSyncReason = other.getFivetranConnectorLastSyncReason();
        if (this$fivetranConnectorLastSyncReason == null ? other$fivetranConnectorLastSyncReason != null : !this$fivetranConnectorLastSyncReason.equals(other$fivetranConnectorLastSyncReason)) return false;
        final java.lang.Object this$fivetranConnectorLastSyncTaskType = this.getFivetranConnectorLastSyncTaskType();
        final java.lang.Object other$fivetranConnectorLastSyncTaskType = other.getFivetranConnectorLastSyncTaskType();
        if (this$fivetranConnectorLastSyncTaskType == null ? other$fivetranConnectorLastSyncTaskType != null : !this$fivetranConnectorLastSyncTaskType.equals(other$fivetranConnectorLastSyncTaskType)) return false;
        final java.lang.Object this$fivetranConnectorName = this.getFivetranConnectorName();
        final java.lang.Object other$fivetranConnectorName = other.getFivetranConnectorName();
        if (this$fivetranConnectorName == null ? other$fivetranConnectorName != null : !this$fivetranConnectorName.equals(other$fivetranConnectorName)) return false;
        final java.lang.Object this$fivetranConnectorSyncFrequency = this.getFivetranConnectorSyncFrequency();
        final java.lang.Object other$fivetranConnectorSyncFrequency = other.getFivetranConnectorSyncFrequency();
        if (this$fivetranConnectorSyncFrequency == null ? other$fivetranConnectorSyncFrequency != null : !this$fivetranConnectorSyncFrequency.equals(other$fivetranConnectorSyncFrequency)) return false;
        final java.lang.Object this$fivetranConnectorSyncSetupUserEmail = this.getFivetranConnectorSyncSetupUserEmail();
        final java.lang.Object other$fivetranConnectorSyncSetupUserEmail = other.getFivetranConnectorSyncSetupUserEmail();
        if (this$fivetranConnectorSyncSetupUserEmail == null ? other$fivetranConnectorSyncSetupUserEmail != null : !this$fivetranConnectorSyncSetupUserEmail.equals(other$fivetranConnectorSyncSetupUserEmail)) return false;
        final java.lang.Object this$fivetranConnectorSyncSetupUserFullName = this.getFivetranConnectorSyncSetupUserFullName();
        final java.lang.Object other$fivetranConnectorSyncSetupUserFullName = other.getFivetranConnectorSyncSetupUserFullName();
        if (this$fivetranConnectorSyncSetupUserFullName == null ? other$fivetranConnectorSyncSetupUserFullName != null : !this$fivetranConnectorSyncSetupUserFullName.equals(other$fivetranConnectorSyncSetupUserFullName)) return false;
        final java.lang.Object this$fivetranConnectorTopTablesByMAR = this.getFivetranConnectorTopTablesByMAR();
        final java.lang.Object other$fivetranConnectorTopTablesByMAR = other.getFivetranConnectorTopTablesByMAR();
        if (this$fivetranConnectorTopTablesByMAR == null ? other$fivetranConnectorTopTablesByMAR != null : !this$fivetranConnectorTopTablesByMAR.equals(other$fivetranConnectorTopTablesByMAR)) return false;
        final java.lang.Object this$fivetranConnectorType = this.getFivetranConnectorType();
        final java.lang.Object other$fivetranConnectorType = other.getFivetranConnectorType();
        if (this$fivetranConnectorType == null ? other$fivetranConnectorType != null : !this$fivetranConnectorType.equals(other$fivetranConnectorType)) return false;
        final java.lang.Object this$fivetranConnectorURL = this.getFivetranConnectorURL();
        final java.lang.Object other$fivetranConnectorURL = other.getFivetranConnectorURL();
        if (this$fivetranConnectorURL == null ? other$fivetranConnectorURL != null : !this$fivetranConnectorURL.equals(other$fivetranConnectorURL)) return false;
        final java.lang.Object this$fivetranLastSyncStatus = this.getFivetranLastSyncStatus();
        final java.lang.Object other$fivetranLastSyncStatus = other.getFivetranLastSyncStatus();
        if (this$fivetranLastSyncStatus == null ? other$fivetranLastSyncStatus != null : !this$fivetranLastSyncStatus.equals(other$fivetranLastSyncStatus)) return false;
        final java.lang.Object this$fivetranWorkflowName = this.getFivetranWorkflowName();
        final java.lang.Object other$fivetranWorkflowName = other.getFivetranWorkflowName();
        if (this$fivetranWorkflowName == null ? other$fivetranWorkflowName != null : !this$fivetranWorkflowName.equals(other$fivetranWorkflowName)) return false;
        final java.lang.Object this$inputToAirflowTasks = this.getInputToAirflowTasks();
        final java.lang.Object other$inputToAirflowTasks = other.getInputToAirflowTasks();
        if (this$inputToAirflowTasks == null ? other$inputToAirflowTasks != null : !this$inputToAirflowTasks.equals(other$inputToAirflowTasks)) return false;
        final java.lang.Object this$inputToProcesses = this.getInputToProcesses();
        final java.lang.Object other$inputToProcesses = other.getInputToProcesses();
        if (this$inputToProcesses == null ? other$inputToProcesses != null : !this$inputToProcesses.equals(other$inputToProcesses)) return false;
        final java.lang.Object this$inputToSparkJobs = this.getInputToSparkJobs();
        final java.lang.Object other$inputToSparkJobs = other.getInputToSparkJobs();
        if (this$inputToSparkJobs == null ? other$inputToSparkJobs != null : !this$inputToSparkJobs.equals(other$inputToSparkJobs)) return false;
        final java.lang.Object this$modelImplementedAttributes = this.getModelImplementedAttributes();
        final java.lang.Object other$modelImplementedAttributes = other.getModelImplementedAttributes();
        if (this$modelImplementedAttributes == null ? other$modelImplementedAttributes != null : !this$modelImplementedAttributes.equals(other$modelImplementedAttributes)) return false;
        final java.lang.Object this$modelImplementedEntities = this.getModelImplementedEntities();
        final java.lang.Object other$modelImplementedEntities = other.getModelImplementedEntities();
        if (this$modelImplementedEntities == null ? other$modelImplementedEntities != null : !this$modelImplementedEntities.equals(other$modelImplementedEntities)) return false;
        final java.lang.Object this$outputFromAirflowTasks = this.getOutputFromAirflowTasks();
        final java.lang.Object other$outputFromAirflowTasks = other.getOutputFromAirflowTasks();
        if (this$outputFromAirflowTasks == null ? other$outputFromAirflowTasks != null : !this$outputFromAirflowTasks.equals(other$outputFromAirflowTasks)) return false;
        final java.lang.Object this$outputFromProcesses = this.getOutputFromProcesses();
        final java.lang.Object other$outputFromProcesses = other.getOutputFromProcesses();
        if (this$outputFromProcesses == null ? other$outputFromProcesses != null : !this$outputFromProcesses.equals(other$outputFromProcesses)) return false;
        final java.lang.Object this$outputFromSparkJobs = this.getOutputFromSparkJobs();
        final java.lang.Object other$outputFromSparkJobs = other.getOutputFromSparkJobs();
        if (this$outputFromSparkJobs == null ? other$outputFromSparkJobs != null : !this$outputFromSparkJobs.equals(other$outputFromSparkJobs)) return false;
        final java.lang.Object this$processes = this.getProcesses();
        final java.lang.Object other$processes = other.getProcesses();
        if (this$processes == null ? other$processes != null : !this$processes.equals(other$processes)) return false;
        return true;
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    protected boolean canEqual(final java.lang.Object other) {
        return other instanceof FivetranConnector;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public int hashCode() {
        final int PRIME = 59;
        int result = super.hashCode();
        final java.lang.Object $fivetranConnectorCreditsUsed = this.getFivetranConnectorCreditsUsed();
        result = result * PRIME + ($fivetranConnectorCreditsUsed == null ? 43 : $fivetranConnectorCreditsUsed.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncExtractTimeSeconds = this.getFivetranConnectorLastSyncExtractTimeSeconds();
        result = result * PRIME + ($fivetranConnectorLastSyncExtractTimeSeconds == null ? 43 : $fivetranConnectorLastSyncExtractTimeSeconds.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncExtractVolumeMegabytes = this.getFivetranConnectorLastSyncExtractVolumeMegabytes();
        result = result * PRIME + ($fivetranConnectorLastSyncExtractVolumeMegabytes == null ? 43 : $fivetranConnectorLastSyncExtractVolumeMegabytes.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncFinishedAt = this.getFivetranConnectorLastSyncFinishedAt();
        result = result * PRIME + ($fivetranConnectorLastSyncFinishedAt == null ? 43 : $fivetranConnectorLastSyncFinishedAt.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncLoadTimeSeconds = this.getFivetranConnectorLastSyncLoadTimeSeconds();
        result = result * PRIME + ($fivetranConnectorLastSyncLoadTimeSeconds == null ? 43 : $fivetranConnectorLastSyncLoadTimeSeconds.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncLoadVolumeMegabytes = this.getFivetranConnectorLastSyncLoadVolumeMegabytes();
        result = result * PRIME + ($fivetranConnectorLastSyncLoadVolumeMegabytes == null ? 43 : $fivetranConnectorLastSyncLoadVolumeMegabytes.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncProcessTimeSeconds = this.getFivetranConnectorLastSyncProcessTimeSeconds();
        result = result * PRIME + ($fivetranConnectorLastSyncProcessTimeSeconds == null ? 43 : $fivetranConnectorLastSyncProcessTimeSeconds.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncProcessVolumeMegabytes = this.getFivetranConnectorLastSyncProcessVolumeMegabytes();
        result = result * PRIME + ($fivetranConnectorLastSyncProcessVolumeMegabytes == null ? 43 : $fivetranConnectorLastSyncProcessVolumeMegabytes.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncRescheduledAt = this.getFivetranConnectorLastSyncRescheduledAt();
        result = result * PRIME + ($fivetranConnectorLastSyncRescheduledAt == null ? 43 : $fivetranConnectorLastSyncRescheduledAt.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncStartedAt = this.getFivetranConnectorLastSyncStartedAt();
        result = result * PRIME + ($fivetranConnectorLastSyncStartedAt == null ? 43 : $fivetranConnectorLastSyncStartedAt.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncTablesSynced = this.getFivetranConnectorLastSyncTablesSynced();
        result = result * PRIME + ($fivetranConnectorLastSyncTablesSynced == null ? 43 : $fivetranConnectorLastSyncTablesSynced.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncTotalTimeSeconds = this.getFivetranConnectorLastSyncTotalTimeSeconds();
        result = result * PRIME + ($fivetranConnectorLastSyncTotalTimeSeconds == null ? 43 : $fivetranConnectorLastSyncTotalTimeSeconds.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsChangePercentageFree = this.getFivetranConnectorMonthlyActiveRowsChangePercentageFree();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsChangePercentageFree == null ? 43 : $fivetranConnectorMonthlyActiveRowsChangePercentageFree.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsChangePercentagePaid = this.getFivetranConnectorMonthlyActiveRowsChangePercentagePaid();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsChangePercentagePaid == null ? 43 : $fivetranConnectorMonthlyActiveRowsChangePercentagePaid.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsChangePercentageTotal = this.getFivetranConnectorMonthlyActiveRowsChangePercentageTotal();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsChangePercentageTotal == null ? 43 : $fivetranConnectorMonthlyActiveRowsChangePercentageTotal.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsFree = this.getFivetranConnectorMonthlyActiveRowsFree();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsFree == null ? 43 : $fivetranConnectorMonthlyActiveRowsFree.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount = this.getFivetranConnectorMonthlyActiveRowsFreePercentageOfAccount();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount == null ? 43 : $fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsPaid = this.getFivetranConnectorMonthlyActiveRowsPaid();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsPaid == null ? 43 : $fivetranConnectorMonthlyActiveRowsPaid.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount = this.getFivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount == null ? 43 : $fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsTotal = this.getFivetranConnectorMonthlyActiveRowsTotal();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsTotal == null ? 43 : $fivetranConnectorMonthlyActiveRowsTotal.hashCode());
        final java.lang.Object $fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount = this.getFivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount();
        result = result * PRIME + ($fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount == null ? 43 : $fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount.hashCode());
        final java.lang.Object $fivetranConnectorSyncPaused = this.getFivetranConnectorSyncPaused();
        result = result * PRIME + ($fivetranConnectorSyncPaused == null ? 43 : $fivetranConnectorSyncPaused.hashCode());
        final java.lang.Object $fivetranConnectorSyncSetupOn = this.getFivetranConnectorSyncSetupOn();
        result = result * PRIME + ($fivetranConnectorSyncSetupOn == null ? 43 : $fivetranConnectorSyncSetupOn.hashCode());
        final java.lang.Object $fivetranConnectorTotalTablesSynced = this.getFivetranConnectorTotalTablesSynced();
        result = result * PRIME + ($fivetranConnectorTotalTablesSynced == null ? 43 : $fivetranConnectorTotalTablesSynced.hashCode());
        final java.lang.Object $fivetranConnectorUsageCost = this.getFivetranConnectorUsageCost();
        result = result * PRIME + ($fivetranConnectorUsageCost == null ? 43 : $fivetranConnectorUsageCost.hashCode());
        final java.lang.Object $fivetranLastSyncRecordsUpdated = this.getFivetranLastSyncRecordsUpdated();
        result = result * PRIME + ($fivetranLastSyncRecordsUpdated == null ? 43 : $fivetranLastSyncRecordsUpdated.hashCode());
        final java.lang.Object $typeName = this.getTypeName();
        result = result * PRIME + ($typeName == null ? 43 : $typeName.hashCode());
        final java.lang.Object $fivetranConnectorDestinationName = this.getFivetranConnectorDestinationName();
        result = result * PRIME + ($fivetranConnectorDestinationName == null ? 43 : $fivetranConnectorDestinationName.hashCode());
        final java.lang.Object $fivetranConnectorDestinationType = this.getFivetranConnectorDestinationType();
        result = result * PRIME + ($fivetranConnectorDestinationType == null ? 43 : $fivetranConnectorDestinationType.hashCode());
        final java.lang.Object $fivetranConnectorDestinationURL = this.getFivetranConnectorDestinationURL();
        result = result * PRIME + ($fivetranConnectorDestinationURL == null ? 43 : $fivetranConnectorDestinationURL.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncId = this.getFivetranConnectorLastSyncId();
        result = result * PRIME + ($fivetranConnectorLastSyncId == null ? 43 : $fivetranConnectorLastSyncId.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncReason = this.getFivetranConnectorLastSyncReason();
        result = result * PRIME + ($fivetranConnectorLastSyncReason == null ? 43 : $fivetranConnectorLastSyncReason.hashCode());
        final java.lang.Object $fivetranConnectorLastSyncTaskType = this.getFivetranConnectorLastSyncTaskType();
        result = result * PRIME + ($fivetranConnectorLastSyncTaskType == null ? 43 : $fivetranConnectorLastSyncTaskType.hashCode());
        final java.lang.Object $fivetranConnectorName = this.getFivetranConnectorName();
        result = result * PRIME + ($fivetranConnectorName == null ? 43 : $fivetranConnectorName.hashCode());
        final java.lang.Object $fivetranConnectorSyncFrequency = this.getFivetranConnectorSyncFrequency();
        result = result * PRIME + ($fivetranConnectorSyncFrequency == null ? 43 : $fivetranConnectorSyncFrequency.hashCode());
        final java.lang.Object $fivetranConnectorSyncSetupUserEmail = this.getFivetranConnectorSyncSetupUserEmail();
        result = result * PRIME + ($fivetranConnectorSyncSetupUserEmail == null ? 43 : $fivetranConnectorSyncSetupUserEmail.hashCode());
        final java.lang.Object $fivetranConnectorSyncSetupUserFullName = this.getFivetranConnectorSyncSetupUserFullName();
        result = result * PRIME + ($fivetranConnectorSyncSetupUserFullName == null ? 43 : $fivetranConnectorSyncSetupUserFullName.hashCode());
        final java.lang.Object $fivetranConnectorTopTablesByMAR = this.getFivetranConnectorTopTablesByMAR();
        result = result * PRIME + ($fivetranConnectorTopTablesByMAR == null ? 43 : $fivetranConnectorTopTablesByMAR.hashCode());
        final java.lang.Object $fivetranConnectorType = this.getFivetranConnectorType();
        result = result * PRIME + ($fivetranConnectorType == null ? 43 : $fivetranConnectorType.hashCode());
        final java.lang.Object $fivetranConnectorURL = this.getFivetranConnectorURL();
        result = result * PRIME + ($fivetranConnectorURL == null ? 43 : $fivetranConnectorURL.hashCode());
        final java.lang.Object $fivetranLastSyncStatus = this.getFivetranLastSyncStatus();
        result = result * PRIME + ($fivetranLastSyncStatus == null ? 43 : $fivetranLastSyncStatus.hashCode());
        final java.lang.Object $fivetranWorkflowName = this.getFivetranWorkflowName();
        result = result * PRIME + ($fivetranWorkflowName == null ? 43 : $fivetranWorkflowName.hashCode());
        final java.lang.Object $inputToAirflowTasks = this.getInputToAirflowTasks();
        result = result * PRIME + ($inputToAirflowTasks == null ? 43 : $inputToAirflowTasks.hashCode());
        final java.lang.Object $inputToProcesses = this.getInputToProcesses();
        result = result * PRIME + ($inputToProcesses == null ? 43 : $inputToProcesses.hashCode());
        final java.lang.Object $inputToSparkJobs = this.getInputToSparkJobs();
        result = result * PRIME + ($inputToSparkJobs == null ? 43 : $inputToSparkJobs.hashCode());
        final java.lang.Object $modelImplementedAttributes = this.getModelImplementedAttributes();
        result = result * PRIME + ($modelImplementedAttributes == null ? 43 : $modelImplementedAttributes.hashCode());
        final java.lang.Object $modelImplementedEntities = this.getModelImplementedEntities();
        result = result * PRIME + ($modelImplementedEntities == null ? 43 : $modelImplementedEntities.hashCode());
        final java.lang.Object $outputFromAirflowTasks = this.getOutputFromAirflowTasks();
        result = result * PRIME + ($outputFromAirflowTasks == null ? 43 : $outputFromAirflowTasks.hashCode());
        final java.lang.Object $outputFromProcesses = this.getOutputFromProcesses();
        result = result * PRIME + ($outputFromProcesses == null ? 43 : $outputFromProcesses.hashCode());
        final java.lang.Object $outputFromSparkJobs = this.getOutputFromSparkJobs();
        result = result * PRIME + ($outputFromSparkJobs == null ? 43 : $outputFromSparkJobs.hashCode());
        final java.lang.Object $processes = this.getProcesses();
        result = result * PRIME + ($processes == null ? 43 : $processes.hashCode());
        return result;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public java.lang.String toString() {
        return "FivetranConnector(super=" + super.toString() + ", typeName=" + this.getTypeName() + ", fivetranConnectorCreditsUsed=" + this.getFivetranConnectorCreditsUsed() + ", fivetranConnectorDestinationName=" + this.getFivetranConnectorDestinationName() + ", fivetranConnectorDestinationType=" + this.getFivetranConnectorDestinationType() + ", fivetranConnectorDestinationURL=" + this.getFivetranConnectorDestinationURL() + ", fivetranConnectorLastSyncExtractTimeSeconds=" + this.getFivetranConnectorLastSyncExtractTimeSeconds() + ", fivetranConnectorLastSyncExtractVolumeMegabytes=" + this.getFivetranConnectorLastSyncExtractVolumeMegabytes() + ", fivetranConnectorLastSyncFinishedAt=" + this.getFivetranConnectorLastSyncFinishedAt() + ", fivetranConnectorLastSyncId=" + this.getFivetranConnectorLastSyncId() + ", fivetranConnectorLastSyncLoadTimeSeconds=" + this.getFivetranConnectorLastSyncLoadTimeSeconds() + ", fivetranConnectorLastSyncLoadVolumeMegabytes=" + this.getFivetranConnectorLastSyncLoadVolumeMegabytes() + ", fivetranConnectorLastSyncProcessTimeSeconds=" + this.getFivetranConnectorLastSyncProcessTimeSeconds() + ", fivetranConnectorLastSyncProcessVolumeMegabytes=" + this.getFivetranConnectorLastSyncProcessVolumeMegabytes() + ", fivetranConnectorLastSyncReason=" + this.getFivetranConnectorLastSyncReason() + ", fivetranConnectorLastSyncRescheduledAt=" + this.getFivetranConnectorLastSyncRescheduledAt() + ", fivetranConnectorLastSyncStartedAt=" + this.getFivetranConnectorLastSyncStartedAt() + ", fivetranConnectorLastSyncTablesSynced=" + this.getFivetranConnectorLastSyncTablesSynced() + ", fivetranConnectorLastSyncTaskType=" + this.getFivetranConnectorLastSyncTaskType() + ", fivetranConnectorLastSyncTotalTimeSeconds=" + this.getFivetranConnectorLastSyncTotalTimeSeconds() + ", fivetranConnectorMonthlyActiveRowsChangePercentageFree=" + this.getFivetranConnectorMonthlyActiveRowsChangePercentageFree() + ", fivetranConnectorMonthlyActiveRowsChangePercentagePaid=" + this.getFivetranConnectorMonthlyActiveRowsChangePercentagePaid() + ", fivetranConnectorMonthlyActiveRowsChangePercentageTotal=" + this.getFivetranConnectorMonthlyActiveRowsChangePercentageTotal() + ", fivetranConnectorMonthlyActiveRowsFree=" + this.getFivetranConnectorMonthlyActiveRowsFree() + ", fivetranConnectorMonthlyActiveRowsFreePercentageOfAccount=" + this.getFivetranConnectorMonthlyActiveRowsFreePercentageOfAccount() + ", fivetranConnectorMonthlyActiveRowsPaid=" + this.getFivetranConnectorMonthlyActiveRowsPaid() + ", fivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount=" + this.getFivetranConnectorMonthlyActiveRowsPaidPercentageOfAccount() + ", fivetranConnectorMonthlyActiveRowsTotal=" + this.getFivetranConnectorMonthlyActiveRowsTotal() + ", fivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount=" + this.getFivetranConnectorMonthlyActiveRowsTotalPercentageOfAccount() + ", fivetranConnectorName=" + this.getFivetranConnectorName() + ", fivetranConnectorSyncFrequency=" + this.getFivetranConnectorSyncFrequency() + ", fivetranConnectorSyncPaused=" + this.getFivetranConnectorSyncPaused() + ", fivetranConnectorSyncSetupOn=" + this.getFivetranConnectorSyncSetupOn() + ", fivetranConnectorSyncSetupUserEmail=" + this.getFivetranConnectorSyncSetupUserEmail() + ", fivetranConnectorSyncSetupUserFullName=" + this.getFivetranConnectorSyncSetupUserFullName() + ", fivetranConnectorTopTablesByMAR=" + this.getFivetranConnectorTopTablesByMAR() + ", fivetranConnectorTotalTablesSynced=" + this.getFivetranConnectorTotalTablesSynced() + ", fivetranConnectorType=" + this.getFivetranConnectorType() + ", fivetranConnectorURL=" + this.getFivetranConnectorURL() + ", fivetranConnectorUsageCost=" + this.getFivetranConnectorUsageCost() + ", fivetranLastSyncRecordsUpdated=" + this.getFivetranLastSyncRecordsUpdated() + ", fivetranLastSyncStatus=" + this.getFivetranLastSyncStatus() + ", fivetranWorkflowName=" + this.getFivetranWorkflowName() + ", inputToAirflowTasks=" + this.getInputToAirflowTasks() + ", inputToProcesses=" + this.getInputToProcesses() + ", inputToSparkJobs=" + this.getInputToSparkJobs() + ", modelImplementedAttributes=" + this.getModelImplementedAttributes() + ", modelImplementedEntities=" + this.getModelImplementedEntities() + ", outputFromAirflowTasks=" + this.getOutputFromAirflowTasks() + ", outputFromProcesses=" + this.getOutputFromProcesses() + ", outputFromSparkJobs=" + this.getOutputFromSparkJobs() + ", processes=" + this.getProcesses() + ")";
    }

    /**
     * Fixed typeName for FivetranConnectors.
     */
    @Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getTypeName() {
        return this.typeName;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy