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

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

There is a newer version: 3.0.0
Show newest version
// Generated by delombok at Thu Oct 10 18:56:32 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.AdfActivityState;
import com.atlan.model.enums.AtlanAnnouncementType;
import com.atlan.model.enums.CertificateStatus;
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 com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
import java.util.concurrent.ThreadLocalRandom;
import javax.annotation.processing.Generated;
import lombok.*;

/**
 * Base class for ADF Activities. It is a processing or transformation step that performs a specific task within a pipeline to manipulate or move data
 */
@Generated("com.atlan.generators.ModelGeneratorV2")
@SuppressWarnings("cast")
public class AdfActivity extends Asset implements IAdfActivity, IADF, ICatalog, IAsset, IReferenceable {
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AdfActivity.class);
    private static final long serialVersionUID = 2L;
    public static final String TYPE_NAME = "AdfActivity";
    /**
     * Fixed typeName for AdfActivitys.
     */
    String typeName;
    /**
     * Defines the batch count of activity to runs in ForEach activity.
     */
    @Attribute
    Integer adfActivityBatchCount;
    /**
     * Indicates whether to import only first row only or not in Lookup activity.
     */
    @Attribute
    Boolean adfActivityFirstRowOnly;
    /**
     * Indicates whether the activity processing is sequential or not inside the ForEach activity.
     */
    @Attribute
    Boolean adfActivityIsSequential;
    /**
     * Defines the main class of the databricks spark activity.
     */
    @Attribute
    String adfActivityMainClassName;
    /**
     * Defines the path of the notebook in the databricks notebook activity.
     */
    @Attribute
    String adfActivityNotebookPath;
    /**
     * The retry interval in seconds for the ADF activity.
     */
    @Attribute
    Integer adfActivityPolictRetryInterval;
    /**
     * The timout defined for the ADF activity.
     */
    @Attribute
    String adfActivityPolicyTimeout;
    /**
     * The list of ADF activities on which this ADF activity depends on.
     */
    @Attribute
    @JsonProperty("adfActivityPrecedingDependency")
    SortedSet adfActivityPrecedingDependencies;
    /**
     * Defines the python file path for databricks python activity.
     */
    @Attribute
    String adfActivityPythonFilePath;
    /**
     * Defines the dataflow that is to be used in dataflow activity.
     */
    @Attribute
    String adfActivityReferenceDataflow;
    /**
     * List of objects of activity runs for a particular activity.
     */
    @Attribute
    List> adfActivityRuns;
    /**
     * Defines the type of the sink of the ADF activtity.
     */
    @Attribute
    String adfActivitySinkType;
    /**
     * The list of names of sinks for the ADF activity.
     */
    @Attribute
    SortedSet adfActivitySinks;
    /**
     * Defines the type of the source of the ADF activtity.
     */
    @Attribute
    String adfActivitySourceType;
    /**
     * The list of names of sources for the ADF activity.
     */
    @Attribute
    SortedSet adfActivitySources;
    /**
     * Defines the state (Active or Inactive) of an ADF activity whether it is active or not.
     */
    @Attribute
    AdfActivityState adfActivityState;
    /**
     * The list of activities to be run inside a ForEach activity.
     */
    @Attribute
    SortedSet adfActivitySubActivities;
    /**
     * The type of the ADF activity.
     */
    @Attribute
    String adfActivityType;
    /**
     * Defines the folder path in which this ADF asset exists.
     */
    @Attribute
    String adfAssetFolderPath;
    /**
     * ADF activities that are associated with this ADF Dataflow.
     */
    @Attribute
    IAdfDataflow adfDataflow;
    /**
     * ADF activities that are associated with this ADF Dataset.
     */
    @Attribute
    SortedSet adfDatasets;
    /**
     * Defines the name of the factory in which this asset exists.
     */
    @Attribute
    String adfFactoryName;
    /**
     * ADF activities that are associated with this ADF Linkedservice.
     */
    @Attribute
    SortedSet adfLinkedservices;
    /**
     * ADF Activity that is associated with this ADF Pipeline.
     */
    @Attribute
    IAdfPipeline adfPipeline;
    /**
     * Unique name of the pipeline in which this activity exists.
     */
    @Attribute
    String adfPipelineQualifiedName;
    /**
     * Tasks to which this asset provides input.
     */
    @Attribute
    SortedSet inputToAirflowTasks;
    /**
     * Processes to which this asset provides input.
     */
    @Attribute
    SortedSet inputToProcesses;
    /**
     * TBC
     */
    @Attribute
    SortedSet inputToSparkJobs;
    /**
     * 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;
    /**
     * Lineage process that associates this ADF Activity.
     */
    @Attribute
    SortedSet processes;

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

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

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

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

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

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

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

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

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

    /**
     * Retrieves a AdfActivity 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 AdfActivity 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 AdfActivity, optionally complete with all of its relationships
     * @throws AtlanException on any error during the API invocation, such as the {@link NotFoundException} if the AdfActivity does not exist or the provided GUID is not a AdfActivity
     */
    @JsonIgnore
    public static AdfActivity 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 AdfActivity) {
                return (AdfActivity) 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 AdfActivity) {
                return (AdfActivity) asset;
            } else {
                throw new NotFoundException(ErrorCode.ASSET_NOT_FOUND_BY_QN, id, TYPE_NAME);
            }
        }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Remove an Atlan tag from a AdfActivity.
     *
     * @param client connectivity to the Atlan tenant from which to remove an Atlan tag from a AdfActivity
     * @param qualifiedName of the AdfActivity
     * @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 AdfActivity
     */
    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 AdfActivityBuilder> 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 Integer adfActivityBatchCount;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Boolean adfActivityFirstRowOnly;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Boolean adfActivityIsSequential;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivityMainClassName;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivityNotebookPath;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private Integer adfActivityPolictRetryInterval;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivityPolicyTimeout;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList adfActivityPrecedingDependencies;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivityPythonFilePath;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivityReferenceDataflow;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList> adfActivityRuns;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivitySinkType;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList adfActivitySinks;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivitySourceType;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList adfActivitySources;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private AdfActivityState adfActivityState;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList adfActivitySubActivities;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfActivityType;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfAssetFolderPath;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private IAdfDataflow adfDataflow;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList adfDatasets;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfFactoryName;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private java.util.ArrayList adfLinkedservices;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private IAdfPipeline adfPipeline;
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private String adfPipelineQualifiedName;
        @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 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);
            AdfActivity.AdfActivityBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private static void $fillValuesFromInstanceIntoBuilder(final AdfActivity instance, final AdfActivity.AdfActivityBuilder b) {
            b.typeName(instance.typeName);
            b.adfActivityBatchCount(instance.adfActivityBatchCount);
            b.adfActivityFirstRowOnly(instance.adfActivityFirstRowOnly);
            b.adfActivityIsSequential(instance.adfActivityIsSequential);
            b.adfActivityMainClassName(instance.adfActivityMainClassName);
            b.adfActivityNotebookPath(instance.adfActivityNotebookPath);
            b.adfActivityPolictRetryInterval(instance.adfActivityPolictRetryInterval);
            b.adfActivityPolicyTimeout(instance.adfActivityPolicyTimeout);
            b.adfActivityPrecedingDependencies(instance.adfActivityPrecedingDependencies == null ? java.util.Collections.emptySortedSet() : instance.adfActivityPrecedingDependencies);
            b.adfActivityPythonFilePath(instance.adfActivityPythonFilePath);
            b.adfActivityReferenceDataflow(instance.adfActivityReferenceDataflow);
            b.adfActivityRuns(instance.adfActivityRuns == null ? java.util.Collections.>emptyList() : instance.adfActivityRuns);
            b.adfActivitySinkType(instance.adfActivitySinkType);
            b.adfActivitySinks(instance.adfActivitySinks == null ? java.util.Collections.emptySortedSet() : instance.adfActivitySinks);
            b.adfActivitySourceType(instance.adfActivitySourceType);
            b.adfActivitySources(instance.adfActivitySources == null ? java.util.Collections.emptySortedSet() : instance.adfActivitySources);
            b.adfActivityState(instance.adfActivityState);
            b.adfActivitySubActivities(instance.adfActivitySubActivities == null ? java.util.Collections.emptySortedSet() : instance.adfActivitySubActivities);
            b.adfActivityType(instance.adfActivityType);
            b.adfAssetFolderPath(instance.adfAssetFolderPath);
            b.adfDataflow(instance.adfDataflow);
            b.adfDatasets(instance.adfDatasets == null ? java.util.Collections.emptySortedSet() : instance.adfDatasets);
            b.adfFactoryName(instance.adfFactoryName);
            b.adfLinkedservices(instance.adfLinkedservices == null ? java.util.Collections.emptySortedSet() : instance.adfLinkedservices);
            b.adfPipeline(instance.adfPipeline);
            b.adfPipelineQualifiedName(instance.adfPipelineQualifiedName);
            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.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 AdfActivitys.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B typeName(final String typeName) {
            this.typeName$value = typeName;
            typeName$set = true;
            return self();
        }

        /**
         * Defines the batch count of activity to runs in ForEach activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityBatchCount(final Integer adfActivityBatchCount) {
            this.adfActivityBatchCount = adfActivityBatchCount;
            return self();
        }

        /**
         * Indicates whether to import only first row only or not in Lookup activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityFirstRowOnly(final Boolean adfActivityFirstRowOnly) {
            this.adfActivityFirstRowOnly = adfActivityFirstRowOnly;
            return self();
        }

        /**
         * Indicates whether the activity processing is sequential or not inside the ForEach activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityIsSequential(final Boolean adfActivityIsSequential) {
            this.adfActivityIsSequential = adfActivityIsSequential;
            return self();
        }

        /**
         * Defines the main class of the databricks spark activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityMainClassName(final String adfActivityMainClassName) {
            this.adfActivityMainClassName = adfActivityMainClassName;
            return self();
        }

        /**
         * Defines the path of the notebook in the databricks notebook activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityNotebookPath(final String adfActivityNotebookPath) {
            this.adfActivityNotebookPath = adfActivityNotebookPath;
            return self();
        }

        /**
         * The retry interval in seconds for the ADF activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityPolictRetryInterval(final Integer adfActivityPolictRetryInterval) {
            this.adfActivityPolictRetryInterval = adfActivityPolictRetryInterval;
            return self();
        }

        /**
         * The timout defined for the ADF activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityPolicyTimeout(final String adfActivityPolicyTimeout) {
            this.adfActivityPolicyTimeout = adfActivityPolicyTimeout;
            return self();
        }

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

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

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

        /**
         * Defines the python file path for databricks python activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityPythonFilePath(final String adfActivityPythonFilePath) {
            this.adfActivityPythonFilePath = adfActivityPythonFilePath;
            return self();
        }

        /**
         * Defines the dataflow that is to be used in dataflow activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityReferenceDataflow(final String adfActivityReferenceDataflow) {
            this.adfActivityReferenceDataflow = adfActivityReferenceDataflow;
            return self();
        }

        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityRun(final Map adfActivityRun) {
            if (this.adfActivityRuns == null) this.adfActivityRuns = new java.util.ArrayList>();
            this.adfActivityRuns.add(adfActivityRun);
            return self();
        }

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

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

        /**
         * Defines the type of the sink of the ADF activtity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivitySinkType(final String adfActivitySinkType) {
            this.adfActivitySinkType = adfActivitySinkType;
            return self();
        }

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

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

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

        /**
         * Defines the type of the source of the ADF activtity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivitySourceType(final String adfActivitySourceType) {
            this.adfActivitySourceType = adfActivitySourceType;
            return self();
        }

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

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

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

        /**
         * Defines the state (Active or Inactive) of an ADF activity whether it is active or not.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityState(final AdfActivityState adfActivityState) {
            this.adfActivityState = adfActivityState;
            return self();
        }

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

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

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

        /**
         * The type of the ADF activity.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfActivityType(final String adfActivityType) {
            this.adfActivityType = adfActivityType;
            return self();
        }

        /**
         * Defines the folder path in which this ADF asset exists.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfAssetFolderPath(final String adfAssetFolderPath) {
            this.adfAssetFolderPath = adfAssetFolderPath;
            return self();
        }

        /**
         * ADF activities that are associated with this ADF Dataflow.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfDataflow(final IAdfDataflow adfDataflow) {
            this.adfDataflow = adfDataflow;
            return self();
        }

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

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

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

        /**
         * Defines the name of the factory in which this asset exists.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfFactoryName(final String adfFactoryName) {
            this.adfFactoryName = adfFactoryName;
            return self();
        }

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

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

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

        /**
         * ADF Activity that is associated with this ADF Pipeline.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfPipeline(final IAdfPipeline adfPipeline) {
            this.adfPipeline = adfPipeline;
            return self();
        }

        /**
         * Unique name of the pipeline in which this activity exists.
         * @return {@code this}.
         */
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        public B adfPipelineQualifiedName(final String adfPipelineQualifiedName) {
            this.adfPipelineQualifiedName = adfPipelineQualifiedName;
            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 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 "AdfActivity.AdfActivityBuilder(super=" + super.toString() + ", typeName$value=" + this.typeName$value + ", adfActivityBatchCount=" + this.adfActivityBatchCount + ", adfActivityFirstRowOnly=" + this.adfActivityFirstRowOnly + ", adfActivityIsSequential=" + this.adfActivityIsSequential + ", adfActivityMainClassName=" + this.adfActivityMainClassName + ", adfActivityNotebookPath=" + this.adfActivityNotebookPath + ", adfActivityPolictRetryInterval=" + this.adfActivityPolictRetryInterval + ", adfActivityPolicyTimeout=" + this.adfActivityPolicyTimeout + ", adfActivityPrecedingDependencies=" + this.adfActivityPrecedingDependencies + ", adfActivityPythonFilePath=" + this.adfActivityPythonFilePath + ", adfActivityReferenceDataflow=" + this.adfActivityReferenceDataflow + ", adfActivityRuns=" + this.adfActivityRuns + ", adfActivitySinkType=" + this.adfActivitySinkType + ", adfActivitySinks=" + this.adfActivitySinks + ", adfActivitySourceType=" + this.adfActivitySourceType + ", adfActivitySources=" + this.adfActivitySources + ", adfActivityState=" + this.adfActivityState + ", adfActivitySubActivities=" + this.adfActivitySubActivities + ", adfActivityType=" + this.adfActivityType + ", adfAssetFolderPath=" + this.adfAssetFolderPath + ", adfDataflow=" + this.adfDataflow + ", adfDatasets=" + this.adfDatasets + ", adfFactoryName=" + this.adfFactoryName + ", adfLinkedservices=" + this.adfLinkedservices + ", adfPipeline=" + this.adfPipeline + ", adfPipelineQualifiedName=" + this.adfPipelineQualifiedName + ", inputToAirflowTasks=" + this.inputToAirflowTasks + ", inputToProcesses=" + this.inputToProcesses + ", inputToSparkJobs=" + this.inputToSparkJobs + ", outputFromAirflowTasks=" + this.outputFromAirflowTasks + ", outputFromProcesses=" + this.outputFromProcesses + ", outputFromSparkJobs=" + this.outputFromSparkJobs + ", processes=" + this.processes + ")";
        }
    }


    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    private static final class AdfActivityBuilderImpl extends AdfActivity.AdfActivityBuilder {
        @java.lang.SuppressWarnings("all")
        @lombok.Generated
        private AdfActivityBuilderImpl() {
        }

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

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

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    protected AdfActivity(final AdfActivity.AdfActivityBuilder b) {
        super(b);
        if (b.typeName$set) this.typeName = b.typeName$value;
         else this.typeName = AdfActivity.$default$typeName();
        this.adfActivityBatchCount = b.adfActivityBatchCount;
        this.adfActivityFirstRowOnly = b.adfActivityFirstRowOnly;
        this.adfActivityIsSequential = b.adfActivityIsSequential;
        this.adfActivityMainClassName = b.adfActivityMainClassName;
        this.adfActivityNotebookPath = b.adfActivityNotebookPath;
        this.adfActivityPolictRetryInterval = b.adfActivityPolictRetryInterval;
        this.adfActivityPolicyTimeout = b.adfActivityPolicyTimeout;
        java.util.SortedSet adfActivityPrecedingDependencies = new java.util.TreeSet();
        if (b.adfActivityPrecedingDependencies != null) adfActivityPrecedingDependencies.addAll(b.adfActivityPrecedingDependencies);
        adfActivityPrecedingDependencies = java.util.Collections.unmodifiableSortedSet(adfActivityPrecedingDependencies);
        this.adfActivityPrecedingDependencies = adfActivityPrecedingDependencies;
        this.adfActivityPythonFilePath = b.adfActivityPythonFilePath;
        this.adfActivityReferenceDataflow = b.adfActivityReferenceDataflow;
        java.util.List> adfActivityRuns;
        switch (b.adfActivityRuns == null ? 0 : b.adfActivityRuns.size()) {
        case 0: 
            adfActivityRuns = java.util.Collections.emptyList();
            break;
        case 1: 
            adfActivityRuns = java.util.Collections.singletonList(b.adfActivityRuns.get(0));
            break;
        default: 
            adfActivityRuns = java.util.Collections.unmodifiableList(new java.util.ArrayList>(b.adfActivityRuns));
        }
        this.adfActivityRuns = adfActivityRuns;
        this.adfActivitySinkType = b.adfActivitySinkType;
        java.util.SortedSet adfActivitySinks = new java.util.TreeSet();
        if (b.adfActivitySinks != null) adfActivitySinks.addAll(b.adfActivitySinks);
        adfActivitySinks = java.util.Collections.unmodifiableSortedSet(adfActivitySinks);
        this.adfActivitySinks = adfActivitySinks;
        this.adfActivitySourceType = b.adfActivitySourceType;
        java.util.SortedSet adfActivitySources = new java.util.TreeSet();
        if (b.adfActivitySources != null) adfActivitySources.addAll(b.adfActivitySources);
        adfActivitySources = java.util.Collections.unmodifiableSortedSet(adfActivitySources);
        this.adfActivitySources = adfActivitySources;
        this.adfActivityState = b.adfActivityState;
        java.util.SortedSet adfActivitySubActivities = new java.util.TreeSet();
        if (b.adfActivitySubActivities != null) adfActivitySubActivities.addAll(b.adfActivitySubActivities);
        adfActivitySubActivities = java.util.Collections.unmodifiableSortedSet(adfActivitySubActivities);
        this.adfActivitySubActivities = adfActivitySubActivities;
        this.adfActivityType = b.adfActivityType;
        this.adfAssetFolderPath = b.adfAssetFolderPath;
        this.adfDataflow = b.adfDataflow;
        java.util.SortedSet adfDatasets = new java.util.TreeSet();
        if (b.adfDatasets != null) adfDatasets.addAll(b.adfDatasets);
        adfDatasets = java.util.Collections.unmodifiableSortedSet(adfDatasets);
        this.adfDatasets = adfDatasets;
        this.adfFactoryName = b.adfFactoryName;
        java.util.SortedSet adfLinkedservices = new java.util.TreeSet();
        if (b.adfLinkedservices != null) adfLinkedservices.addAll(b.adfLinkedservices);
        adfLinkedservices = java.util.Collections.unmodifiableSortedSet(adfLinkedservices);
        this.adfLinkedservices = adfLinkedservices;
        this.adfPipeline = b.adfPipeline;
        this.adfPipelineQualifiedName = b.adfPipelineQualifiedName;
        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 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 AdfActivity.AdfActivityBuilder _internal() {
        return new AdfActivity.AdfActivityBuilderImpl();
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public AdfActivity.AdfActivityBuilder toBuilder() {
        return new AdfActivity.AdfActivityBuilderImpl().$fillValuesFrom(this);
    }

    /**
     * Defines the batch count of activity to runs in ForEach activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Integer getAdfActivityBatchCount() {
        return this.adfActivityBatchCount;
    }

    /**
     * Indicates whether to import only first row only or not in Lookup activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Boolean getAdfActivityFirstRowOnly() {
        return this.adfActivityFirstRowOnly;
    }

    /**
     * Indicates whether the activity processing is sequential or not inside the ForEach activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Boolean getAdfActivityIsSequential() {
        return this.adfActivityIsSequential;
    }

    /**
     * Defines the main class of the databricks spark activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivityMainClassName() {
        return this.adfActivityMainClassName;
    }

    /**
     * Defines the path of the notebook in the databricks notebook activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivityNotebookPath() {
        return this.adfActivityNotebookPath;
    }

    /**
     * The retry interval in seconds for the ADF activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public Integer getAdfActivityPolictRetryInterval() {
        return this.adfActivityPolictRetryInterval;
    }

    /**
     * The timout defined for the ADF activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivityPolicyTimeout() {
        return this.adfActivityPolicyTimeout;
    }

    /**
     * The list of ADF activities on which this ADF activity depends on.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getAdfActivityPrecedingDependencies() {
        return this.adfActivityPrecedingDependencies;
    }

    /**
     * Defines the python file path for databricks python activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivityPythonFilePath() {
        return this.adfActivityPythonFilePath;
    }

    /**
     * Defines the dataflow that is to be used in dataflow activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivityReferenceDataflow() {
        return this.adfActivityReferenceDataflow;
    }

    /**
     * List of objects of activity runs for a particular activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public List> getAdfActivityRuns() {
        return this.adfActivityRuns;
    }

    /**
     * Defines the type of the sink of the ADF activtity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivitySinkType() {
        return this.adfActivitySinkType;
    }

    /**
     * The list of names of sinks for the ADF activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getAdfActivitySinks() {
        return this.adfActivitySinks;
    }

    /**
     * Defines the type of the source of the ADF activtity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivitySourceType() {
        return this.adfActivitySourceType;
    }

    /**
     * The list of names of sources for the ADF activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getAdfActivitySources() {
        return this.adfActivitySources;
    }

    /**
     * Defines the state (Active or Inactive) of an ADF activity whether it is active or not.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public AdfActivityState getAdfActivityState() {
        return this.adfActivityState;
    }

    /**
     * The list of activities to be run inside a ForEach activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getAdfActivitySubActivities() {
        return this.adfActivitySubActivities;
    }

    /**
     * The type of the ADF activity.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfActivityType() {
        return this.adfActivityType;
    }

    /**
     * Defines the folder path in which this ADF asset exists.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfAssetFolderPath() {
        return this.adfAssetFolderPath;
    }

    /**
     * ADF activities that are associated with this ADF Dataflow.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public IAdfDataflow getAdfDataflow() {
        return this.adfDataflow;
    }

    /**
     * ADF activities that are associated with this ADF Dataset.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getAdfDatasets() {
        return this.adfDatasets;
    }

    /**
     * Defines the name of the factory in which this asset exists.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfFactoryName() {
        return this.adfFactoryName;
    }

    /**
     * ADF activities that are associated with this ADF Linkedservice.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public SortedSet getAdfLinkedservices() {
        return this.adfLinkedservices;
    }

    /**
     * ADF Activity that is associated with this ADF Pipeline.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public IAdfPipeline getAdfPipeline() {
        return this.adfPipeline;
    }

    /**
     * Unique name of the pipeline in which this activity exists.
     */
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public String getAdfPipelineQualifiedName() {
        return this.adfPipelineQualifiedName;
    }

    /**
     * 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;
    }

    /**
     * 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;
    }

    /**
     * Lineage process that associates this ADF Activity.
     */
    @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 AdfActivity)) return false;
        final AdfActivity other = (AdfActivity) o;
        if (!other.canEqual((java.lang.Object) this)) return false;
        if (!super.equals(o)) return false;
        final java.lang.Object this$adfActivityBatchCount = this.getAdfActivityBatchCount();
        final java.lang.Object other$adfActivityBatchCount = other.getAdfActivityBatchCount();
        if (this$adfActivityBatchCount == null ? other$adfActivityBatchCount != null : !this$adfActivityBatchCount.equals(other$adfActivityBatchCount)) return false;
        final java.lang.Object this$adfActivityFirstRowOnly = this.getAdfActivityFirstRowOnly();
        final java.lang.Object other$adfActivityFirstRowOnly = other.getAdfActivityFirstRowOnly();
        if (this$adfActivityFirstRowOnly == null ? other$adfActivityFirstRowOnly != null : !this$adfActivityFirstRowOnly.equals(other$adfActivityFirstRowOnly)) return false;
        final java.lang.Object this$adfActivityIsSequential = this.getAdfActivityIsSequential();
        final java.lang.Object other$adfActivityIsSequential = other.getAdfActivityIsSequential();
        if (this$adfActivityIsSequential == null ? other$adfActivityIsSequential != null : !this$adfActivityIsSequential.equals(other$adfActivityIsSequential)) return false;
        final java.lang.Object this$adfActivityPolictRetryInterval = this.getAdfActivityPolictRetryInterval();
        final java.lang.Object other$adfActivityPolictRetryInterval = other.getAdfActivityPolictRetryInterval();
        if (this$adfActivityPolictRetryInterval == null ? other$adfActivityPolictRetryInterval != null : !this$adfActivityPolictRetryInterval.equals(other$adfActivityPolictRetryInterval)) 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$adfActivityMainClassName = this.getAdfActivityMainClassName();
        final java.lang.Object other$adfActivityMainClassName = other.getAdfActivityMainClassName();
        if (this$adfActivityMainClassName == null ? other$adfActivityMainClassName != null : !this$adfActivityMainClassName.equals(other$adfActivityMainClassName)) return false;
        final java.lang.Object this$adfActivityNotebookPath = this.getAdfActivityNotebookPath();
        final java.lang.Object other$adfActivityNotebookPath = other.getAdfActivityNotebookPath();
        if (this$adfActivityNotebookPath == null ? other$adfActivityNotebookPath != null : !this$adfActivityNotebookPath.equals(other$adfActivityNotebookPath)) return false;
        final java.lang.Object this$adfActivityPolicyTimeout = this.getAdfActivityPolicyTimeout();
        final java.lang.Object other$adfActivityPolicyTimeout = other.getAdfActivityPolicyTimeout();
        if (this$adfActivityPolicyTimeout == null ? other$adfActivityPolicyTimeout != null : !this$adfActivityPolicyTimeout.equals(other$adfActivityPolicyTimeout)) return false;
        final java.lang.Object this$adfActivityPrecedingDependencies = this.getAdfActivityPrecedingDependencies();
        final java.lang.Object other$adfActivityPrecedingDependencies = other.getAdfActivityPrecedingDependencies();
        if (this$adfActivityPrecedingDependencies == null ? other$adfActivityPrecedingDependencies != null : !this$adfActivityPrecedingDependencies.equals(other$adfActivityPrecedingDependencies)) return false;
        final java.lang.Object this$adfActivityPythonFilePath = this.getAdfActivityPythonFilePath();
        final java.lang.Object other$adfActivityPythonFilePath = other.getAdfActivityPythonFilePath();
        if (this$adfActivityPythonFilePath == null ? other$adfActivityPythonFilePath != null : !this$adfActivityPythonFilePath.equals(other$adfActivityPythonFilePath)) return false;
        final java.lang.Object this$adfActivityReferenceDataflow = this.getAdfActivityReferenceDataflow();
        final java.lang.Object other$adfActivityReferenceDataflow = other.getAdfActivityReferenceDataflow();
        if (this$adfActivityReferenceDataflow == null ? other$adfActivityReferenceDataflow != null : !this$adfActivityReferenceDataflow.equals(other$adfActivityReferenceDataflow)) return false;
        final java.lang.Object this$adfActivityRuns = this.getAdfActivityRuns();
        final java.lang.Object other$adfActivityRuns = other.getAdfActivityRuns();
        if (this$adfActivityRuns == null ? other$adfActivityRuns != null : !this$adfActivityRuns.equals(other$adfActivityRuns)) return false;
        final java.lang.Object this$adfActivitySinkType = this.getAdfActivitySinkType();
        final java.lang.Object other$adfActivitySinkType = other.getAdfActivitySinkType();
        if (this$adfActivitySinkType == null ? other$adfActivitySinkType != null : !this$adfActivitySinkType.equals(other$adfActivitySinkType)) return false;
        final java.lang.Object this$adfActivitySinks = this.getAdfActivitySinks();
        final java.lang.Object other$adfActivitySinks = other.getAdfActivitySinks();
        if (this$adfActivitySinks == null ? other$adfActivitySinks != null : !this$adfActivitySinks.equals(other$adfActivitySinks)) return false;
        final java.lang.Object this$adfActivitySourceType = this.getAdfActivitySourceType();
        final java.lang.Object other$adfActivitySourceType = other.getAdfActivitySourceType();
        if (this$adfActivitySourceType == null ? other$adfActivitySourceType != null : !this$adfActivitySourceType.equals(other$adfActivitySourceType)) return false;
        final java.lang.Object this$adfActivitySources = this.getAdfActivitySources();
        final java.lang.Object other$adfActivitySources = other.getAdfActivitySources();
        if (this$adfActivitySources == null ? other$adfActivitySources != null : !this$adfActivitySources.equals(other$adfActivitySources)) return false;
        final java.lang.Object this$adfActivityState = this.getAdfActivityState();
        final java.lang.Object other$adfActivityState = other.getAdfActivityState();
        if (this$adfActivityState == null ? other$adfActivityState != null : !this$adfActivityState.equals(other$adfActivityState)) return false;
        final java.lang.Object this$adfActivitySubActivities = this.getAdfActivitySubActivities();
        final java.lang.Object other$adfActivitySubActivities = other.getAdfActivitySubActivities();
        if (this$adfActivitySubActivities == null ? other$adfActivitySubActivities != null : !this$adfActivitySubActivities.equals(other$adfActivitySubActivities)) return false;
        final java.lang.Object this$adfActivityType = this.getAdfActivityType();
        final java.lang.Object other$adfActivityType = other.getAdfActivityType();
        if (this$adfActivityType == null ? other$adfActivityType != null : !this$adfActivityType.equals(other$adfActivityType)) return false;
        final java.lang.Object this$adfAssetFolderPath = this.getAdfAssetFolderPath();
        final java.lang.Object other$adfAssetFolderPath = other.getAdfAssetFolderPath();
        if (this$adfAssetFolderPath == null ? other$adfAssetFolderPath != null : !this$adfAssetFolderPath.equals(other$adfAssetFolderPath)) return false;
        final java.lang.Object this$adfDataflow = this.getAdfDataflow();
        final java.lang.Object other$adfDataflow = other.getAdfDataflow();
        if (this$adfDataflow == null ? other$adfDataflow != null : !this$adfDataflow.equals(other$adfDataflow)) return false;
        final java.lang.Object this$adfDatasets = this.getAdfDatasets();
        final java.lang.Object other$adfDatasets = other.getAdfDatasets();
        if (this$adfDatasets == null ? other$adfDatasets != null : !this$adfDatasets.equals(other$adfDatasets)) return false;
        final java.lang.Object this$adfFactoryName = this.getAdfFactoryName();
        final java.lang.Object other$adfFactoryName = other.getAdfFactoryName();
        if (this$adfFactoryName == null ? other$adfFactoryName != null : !this$adfFactoryName.equals(other$adfFactoryName)) return false;
        final java.lang.Object this$adfLinkedservices = this.getAdfLinkedservices();
        final java.lang.Object other$adfLinkedservices = other.getAdfLinkedservices();
        if (this$adfLinkedservices == null ? other$adfLinkedservices != null : !this$adfLinkedservices.equals(other$adfLinkedservices)) return false;
        final java.lang.Object this$adfPipeline = this.getAdfPipeline();
        final java.lang.Object other$adfPipeline = other.getAdfPipeline();
        if (this$adfPipeline == null ? other$adfPipeline != null : !this$adfPipeline.equals(other$adfPipeline)) return false;
        final java.lang.Object this$adfPipelineQualifiedName = this.getAdfPipelineQualifiedName();
        final java.lang.Object other$adfPipelineQualifiedName = other.getAdfPipelineQualifiedName();
        if (this$adfPipelineQualifiedName == null ? other$adfPipelineQualifiedName != null : !this$adfPipelineQualifiedName.equals(other$adfPipelineQualifiedName)) 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$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 AdfActivity;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public int hashCode() {
        final int PRIME = 59;
        int result = super.hashCode();
        final java.lang.Object $adfActivityBatchCount = this.getAdfActivityBatchCount();
        result = result * PRIME + ($adfActivityBatchCount == null ? 43 : $adfActivityBatchCount.hashCode());
        final java.lang.Object $adfActivityFirstRowOnly = this.getAdfActivityFirstRowOnly();
        result = result * PRIME + ($adfActivityFirstRowOnly == null ? 43 : $adfActivityFirstRowOnly.hashCode());
        final java.lang.Object $adfActivityIsSequential = this.getAdfActivityIsSequential();
        result = result * PRIME + ($adfActivityIsSequential == null ? 43 : $adfActivityIsSequential.hashCode());
        final java.lang.Object $adfActivityPolictRetryInterval = this.getAdfActivityPolictRetryInterval();
        result = result * PRIME + ($adfActivityPolictRetryInterval == null ? 43 : $adfActivityPolictRetryInterval.hashCode());
        final java.lang.Object $typeName = this.getTypeName();
        result = result * PRIME + ($typeName == null ? 43 : $typeName.hashCode());
        final java.lang.Object $adfActivityMainClassName = this.getAdfActivityMainClassName();
        result = result * PRIME + ($adfActivityMainClassName == null ? 43 : $adfActivityMainClassName.hashCode());
        final java.lang.Object $adfActivityNotebookPath = this.getAdfActivityNotebookPath();
        result = result * PRIME + ($adfActivityNotebookPath == null ? 43 : $adfActivityNotebookPath.hashCode());
        final java.lang.Object $adfActivityPolicyTimeout = this.getAdfActivityPolicyTimeout();
        result = result * PRIME + ($adfActivityPolicyTimeout == null ? 43 : $adfActivityPolicyTimeout.hashCode());
        final java.lang.Object $adfActivityPrecedingDependencies = this.getAdfActivityPrecedingDependencies();
        result = result * PRIME + ($adfActivityPrecedingDependencies == null ? 43 : $adfActivityPrecedingDependencies.hashCode());
        final java.lang.Object $adfActivityPythonFilePath = this.getAdfActivityPythonFilePath();
        result = result * PRIME + ($adfActivityPythonFilePath == null ? 43 : $adfActivityPythonFilePath.hashCode());
        final java.lang.Object $adfActivityReferenceDataflow = this.getAdfActivityReferenceDataflow();
        result = result * PRIME + ($adfActivityReferenceDataflow == null ? 43 : $adfActivityReferenceDataflow.hashCode());
        final java.lang.Object $adfActivityRuns = this.getAdfActivityRuns();
        result = result * PRIME + ($adfActivityRuns == null ? 43 : $adfActivityRuns.hashCode());
        final java.lang.Object $adfActivitySinkType = this.getAdfActivitySinkType();
        result = result * PRIME + ($adfActivitySinkType == null ? 43 : $adfActivitySinkType.hashCode());
        final java.lang.Object $adfActivitySinks = this.getAdfActivitySinks();
        result = result * PRIME + ($adfActivitySinks == null ? 43 : $adfActivitySinks.hashCode());
        final java.lang.Object $adfActivitySourceType = this.getAdfActivitySourceType();
        result = result * PRIME + ($adfActivitySourceType == null ? 43 : $adfActivitySourceType.hashCode());
        final java.lang.Object $adfActivitySources = this.getAdfActivitySources();
        result = result * PRIME + ($adfActivitySources == null ? 43 : $adfActivitySources.hashCode());
        final java.lang.Object $adfActivityState = this.getAdfActivityState();
        result = result * PRIME + ($adfActivityState == null ? 43 : $adfActivityState.hashCode());
        final java.lang.Object $adfActivitySubActivities = this.getAdfActivitySubActivities();
        result = result * PRIME + ($adfActivitySubActivities == null ? 43 : $adfActivitySubActivities.hashCode());
        final java.lang.Object $adfActivityType = this.getAdfActivityType();
        result = result * PRIME + ($adfActivityType == null ? 43 : $adfActivityType.hashCode());
        final java.lang.Object $adfAssetFolderPath = this.getAdfAssetFolderPath();
        result = result * PRIME + ($adfAssetFolderPath == null ? 43 : $adfAssetFolderPath.hashCode());
        final java.lang.Object $adfDataflow = this.getAdfDataflow();
        result = result * PRIME + ($adfDataflow == null ? 43 : $adfDataflow.hashCode());
        final java.lang.Object $adfDatasets = this.getAdfDatasets();
        result = result * PRIME + ($adfDatasets == null ? 43 : $adfDatasets.hashCode());
        final java.lang.Object $adfFactoryName = this.getAdfFactoryName();
        result = result * PRIME + ($adfFactoryName == null ? 43 : $adfFactoryName.hashCode());
        final java.lang.Object $adfLinkedservices = this.getAdfLinkedservices();
        result = result * PRIME + ($adfLinkedservices == null ? 43 : $adfLinkedservices.hashCode());
        final java.lang.Object $adfPipeline = this.getAdfPipeline();
        result = result * PRIME + ($adfPipeline == null ? 43 : $adfPipeline.hashCode());
        final java.lang.Object $adfPipelineQualifiedName = this.getAdfPipelineQualifiedName();
        result = result * PRIME + ($adfPipelineQualifiedName == null ? 43 : $adfPipelineQualifiedName.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 $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 "AdfActivity(super=" + super.toString() + ", typeName=" + this.getTypeName() + ", adfActivityBatchCount=" + this.getAdfActivityBatchCount() + ", adfActivityFirstRowOnly=" + this.getAdfActivityFirstRowOnly() + ", adfActivityIsSequential=" + this.getAdfActivityIsSequential() + ", adfActivityMainClassName=" + this.getAdfActivityMainClassName() + ", adfActivityNotebookPath=" + this.getAdfActivityNotebookPath() + ", adfActivityPolictRetryInterval=" + this.getAdfActivityPolictRetryInterval() + ", adfActivityPolicyTimeout=" + this.getAdfActivityPolicyTimeout() + ", adfActivityPrecedingDependencies=" + this.getAdfActivityPrecedingDependencies() + ", adfActivityPythonFilePath=" + this.getAdfActivityPythonFilePath() + ", adfActivityReferenceDataflow=" + this.getAdfActivityReferenceDataflow() + ", adfActivityRuns=" + this.getAdfActivityRuns() + ", adfActivitySinkType=" + this.getAdfActivitySinkType() + ", adfActivitySinks=" + this.getAdfActivitySinks() + ", adfActivitySourceType=" + this.getAdfActivitySourceType() + ", adfActivitySources=" + this.getAdfActivitySources() + ", adfActivityState=" + this.getAdfActivityState() + ", adfActivitySubActivities=" + this.getAdfActivitySubActivities() + ", adfActivityType=" + this.getAdfActivityType() + ", adfAssetFolderPath=" + this.getAdfAssetFolderPath() + ", adfDataflow=" + this.getAdfDataflow() + ", adfDatasets=" + this.getAdfDatasets() + ", adfFactoryName=" + this.getAdfFactoryName() + ", adfLinkedservices=" + this.getAdfLinkedservices() + ", adfPipeline=" + this.getAdfPipeline() + ", adfPipelineQualifiedName=" + this.getAdfPipelineQualifiedName() + ", inputToAirflowTasks=" + this.getInputToAirflowTasks() + ", inputToProcesses=" + this.getInputToProcesses() + ", inputToSparkJobs=" + this.getInputToSparkJobs() + ", outputFromAirflowTasks=" + this.getOutputFromAirflowTasks() + ", outputFromProcesses=" + this.getOutputFromProcesses() + ", outputFromSparkJobs=" + this.getOutputFromSparkJobs() + ", processes=" + this.getProcesses() + ")";
    }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy