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

com.pulumi.azurenative.datafactory.inputs.CopyActivityArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.datafactory.inputs;

import com.pulumi.azurenative.datafactory.enums.ActivityOnInactiveMarkAs;
import com.pulumi.azurenative.datafactory.enums.ActivityState;
import com.pulumi.azurenative.datafactory.inputs.ActivityDependencyArgs;
import com.pulumi.azurenative.datafactory.inputs.ActivityPolicyArgs;
import com.pulumi.azurenative.datafactory.inputs.AmazonMWSSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AmazonRdsForOracleSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AmazonRdsForSqlServerSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AmazonRedshiftSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AvroSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AvroSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureBlobFSSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureBlobFSSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureDataExplorerSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureDataExplorerSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureDataLakeStoreSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureDataLakeStoreSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureDatabricksDeltaLakeSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureDatabricksDeltaLakeSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureMariaDBSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureMySqlSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureMySqlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzurePostgreSqlSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzurePostgreSqlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureQueueSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureSearchIndexSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureSqlSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureSqlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureTableSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.AzureTableSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.BinarySinkArgs;
import com.pulumi.azurenative.datafactory.inputs.BinarySourceArgs;
import com.pulumi.azurenative.datafactory.inputs.BlobSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.BlobSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.CassandraSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.CommonDataServiceForAppsSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.CommonDataServiceForAppsSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ConcurSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.CosmosDbMongoDbApiSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.CosmosDbMongoDbApiSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.CosmosDbSqlApiSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.CosmosDbSqlApiSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.CouchbaseSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DatasetReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.Db2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DelimitedTextSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.DelimitedTextSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DocumentDbCollectionSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.DocumentDbCollectionSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DrillSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DynamicsAXSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DynamicsCrmSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.DynamicsCrmSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.DynamicsSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.DynamicsSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.EloquaSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ExcelSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.FileSystemSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.FileSystemSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.GoogleAdWordsSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.GoogleBigQuerySourceArgs;
import com.pulumi.azurenative.datafactory.inputs.GoogleBigQueryV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.GreenplumSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.HBaseSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.HdfsSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.HiveSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.HttpSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.HubspotSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.IcebergSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.ImpalaSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.InformixSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.InformixSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.JiraSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.JsonSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.JsonSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.LakeHouseTableSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.LakeHouseTableSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.LinkedServiceReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.LogSettingsArgs;
import com.pulumi.azurenative.datafactory.inputs.LogStorageSettingsArgs;
import com.pulumi.azurenative.datafactory.inputs.MagentoSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MariaDBSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MarketoSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MicrosoftAccessSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.MicrosoftAccessSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MongoDbAtlasSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.MongoDbAtlasSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MongoDbSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MongoDbV2SinkArgs;
import com.pulumi.azurenative.datafactory.inputs.MongoDbV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.MySqlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.NetezzaSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ODataSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.OdbcSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.OdbcSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.Office365SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.OracleServiceCloudSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.OracleSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.OracleSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.OrcSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.OrcSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ParquetSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.ParquetSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.PaypalSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.PhoenixSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.PostgreSqlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.PostgreSqlV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.PrestoSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.QuickBooksSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.RedirectIncompatibleRowSettingsArgs;
import com.pulumi.azurenative.datafactory.inputs.RelationalSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ResponsysSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.RestSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.RestSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceMarketingCloudSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceServiceCloudSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceServiceCloudSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceServiceCloudV2SinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceServiceCloudV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceV2SinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SalesforceV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapBwSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapCloudForCustomerSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SapCloudForCustomerSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapEccSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapHanaSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapOdpSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapOpenHubSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SapTableSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ServiceNowSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ServiceNowV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SharePointOnlineListSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ShopifySourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SkipErrorFileArgs;
import com.pulumi.azurenative.datafactory.inputs.SnowflakeSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SnowflakeSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SnowflakeV2SinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SnowflakeV2SourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SparkSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlDWSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlDWSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlMISinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlMISourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlServerSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlServerSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.SqlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.SquareSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.StagingSettingsArgs;
import com.pulumi.azurenative.datafactory.inputs.SybaseSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.TabularSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.TeradataSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.UserPropertyArgs;
import com.pulumi.azurenative.datafactory.inputs.VerticaSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.WarehouseSinkArgs;
import com.pulumi.azurenative.datafactory.inputs.WarehouseSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.WebSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.XeroSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.XmlSourceArgs;
import com.pulumi.azurenative.datafactory.inputs.ZohoSourceArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Copy activity.
 * 
 */
public final class CopyActivityArgs extends com.pulumi.resources.ResourceArgs {

    public static final CopyActivityArgs Empty = new CopyActivityArgs();

    /**
     * Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0.
     * 
     */
    @Import(name="dataIntegrationUnits")
    private @Nullable Output dataIntegrationUnits;

    /**
     * @return Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0.
     * 
     */
    public Optional> dataIntegrationUnits() {
        return Optional.ofNullable(this.dataIntegrationUnits);
    }

    /**
     * Activity depends on condition.
     * 
     */
    @Import(name="dependsOn")
    private @Nullable Output> dependsOn;

    /**
     * @return Activity depends on condition.
     * 
     */
    public Optional>> dependsOn() {
        return Optional.ofNullable(this.dependsOn);
    }

    /**
     * Activity description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Activity description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="enableSkipIncompatibleRow")
    private @Nullable Output enableSkipIncompatibleRow;

    /**
     * @return Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> enableSkipIncompatibleRow() {
        return Optional.ofNullable(this.enableSkipIncompatibleRow);
    }

    /**
     * Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="enableStaging")
    private @Nullable Output enableStaging;

    /**
     * @return Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> enableStaging() {
        return Optional.ofNullable(this.enableStaging);
    }

    /**
     * List of inputs for the activity.
     * 
     */
    @Import(name="inputs")
    private @Nullable Output> inputs;

    /**
     * @return List of inputs for the activity.
     * 
     */
    public Optional>> inputs() {
        return Optional.ofNullable(this.inputs);
    }

    /**
     * Linked service reference.
     * 
     */
    @Import(name="linkedServiceName")
    private @Nullable Output linkedServiceName;

    /**
     * @return Linked service reference.
     * 
     */
    public Optional> linkedServiceName() {
        return Optional.ofNullable(this.linkedServiceName);
    }

    /**
     * Log settings customer needs provide when enabling log.
     * 
     */
    @Import(name="logSettings")
    private @Nullable Output logSettings;

    /**
     * @return Log settings customer needs provide when enabling log.
     * 
     */
    public Optional> logSettings() {
        return Optional.ofNullable(this.logSettings);
    }

    /**
     * (Deprecated. Please use LogSettings) Log storage settings customer need to provide when enabling session log.
     * 
     */
    @Import(name="logStorageSettings")
    private @Nullable Output logStorageSettings;

    /**
     * @return (Deprecated. Please use LogSettings) Log storage settings customer need to provide when enabling session log.
     * 
     */
    public Optional> logStorageSettings() {
        return Optional.ofNullable(this.logStorageSettings);
    }

    /**
     * Activity name.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Activity name.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
     * 
     */
    @Import(name="onInactiveMarkAs")
    private @Nullable Output> onInactiveMarkAs;

    /**
     * @return Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
     * 
     */
    public Optional>> onInactiveMarkAs() {
        return Optional.ofNullable(this.onInactiveMarkAs);
    }

    /**
     * List of outputs for the activity.
     * 
     */
    @Import(name="outputs")
    private @Nullable Output> outputs;

    /**
     * @return List of outputs for the activity.
     * 
     */
    public Optional>> outputs() {
        return Optional.ofNullable(this.outputs);
    }

    /**
     * Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0.
     * 
     */
    @Import(name="parallelCopies")
    private @Nullable Output parallelCopies;

    /**
     * @return Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0.
     * 
     */
    public Optional> parallelCopies() {
        return Optional.ofNullable(this.parallelCopies);
    }

    /**
     * Activity policy.
     * 
     */
    @Import(name="policy")
    private @Nullable Output policy;

    /**
     * @return Activity policy.
     * 
     */
    public Optional> policy() {
        return Optional.ofNullable(this.policy);
    }

    /**
     * Preserve rules.
     * 
     */
    @Import(name="preserve")
    private @Nullable Output> preserve;

    /**
     * @return Preserve rules.
     * 
     */
    public Optional>> preserve() {
        return Optional.ofNullable(this.preserve);
    }

    /**
     * Preserve Rules.
     * 
     */
    @Import(name="preserveRules")
    private @Nullable Output> preserveRules;

    /**
     * @return Preserve Rules.
     * 
     */
    public Optional>> preserveRules() {
        return Optional.ofNullable(this.preserveRules);
    }

    /**
     * Redirect incompatible row settings when EnableSkipIncompatibleRow is true.
     * 
     */
    @Import(name="redirectIncompatibleRowSettings")
    private @Nullable Output redirectIncompatibleRowSettings;

    /**
     * @return Redirect incompatible row settings when EnableSkipIncompatibleRow is true.
     * 
     */
    public Optional> redirectIncompatibleRowSettings() {
        return Optional.ofNullable(this.redirectIncompatibleRowSettings);
    }

    /**
     * Copy activity sink.
     * 
     */
    @Import(name="sink", required=true)
    private Output sink;

    /**
     * @return Copy activity sink.
     * 
     */
    public Output sink() {
        return this.sink;
    }

    /**
     * Specify the fault tolerance for data consistency.
     * 
     */
    @Import(name="skipErrorFile")
    private @Nullable Output skipErrorFile;

    /**
     * @return Specify the fault tolerance for data consistency.
     * 
     */
    public Optional> skipErrorFile() {
        return Optional.ofNullable(this.skipErrorFile);
    }

    /**
     * Copy activity source.
     * 
     */
    @Import(name="source", required=true)
    private Output source;

    /**
     * @return Copy activity source.
     * 
     */
    public Output source() {
        return this.source;
    }

    /**
     * Specifies interim staging settings when EnableStaging is true.
     * 
     */
    @Import(name="stagingSettings")
    private @Nullable Output stagingSettings;

    /**
     * @return Specifies interim staging settings when EnableStaging is true.
     * 
     */
    public Optional> stagingSettings() {
        return Optional.ofNullable(this.stagingSettings);
    }

    /**
     * Activity state. This is an optional property and if not provided, the state will be Active by default.
     * 
     */
    @Import(name="state")
    private @Nullable Output> state;

    /**
     * @return Activity state. This is an optional property and if not provided, the state will be Active by default.
     * 
     */
    public Optional>> state() {
        return Optional.ofNullable(this.state);
    }

    /**
     * Copy activity translator. If not specified, tabular translator is used.
     * 
     */
    @Import(name="translator")
    private @Nullable Output translator;

    /**
     * @return Copy activity translator. If not specified, tabular translator is used.
     * 
     */
    public Optional> translator() {
        return Optional.ofNullable(this.translator);
    }

    /**
     * Type of activity.
     * Expected value is 'Copy'.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Type of activity.
     * Expected value is 'Copy'.
     * 
     */
    public Output type() {
        return this.type;
    }

    /**
     * Activity user properties.
     * 
     */
    @Import(name="userProperties")
    private @Nullable Output> userProperties;

    /**
     * @return Activity user properties.
     * 
     */
    public Optional>> userProperties() {
        return Optional.ofNullable(this.userProperties);
    }

    /**
     * Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="validateDataConsistency")
    private @Nullable Output validateDataConsistency;

    /**
     * @return Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> validateDataConsistency() {
        return Optional.ofNullable(this.validateDataConsistency);
    }

    private CopyActivityArgs() {}

    private CopyActivityArgs(CopyActivityArgs $) {
        this.dataIntegrationUnits = $.dataIntegrationUnits;
        this.dependsOn = $.dependsOn;
        this.description = $.description;
        this.enableSkipIncompatibleRow = $.enableSkipIncompatibleRow;
        this.enableStaging = $.enableStaging;
        this.inputs = $.inputs;
        this.linkedServiceName = $.linkedServiceName;
        this.logSettings = $.logSettings;
        this.logStorageSettings = $.logStorageSettings;
        this.name = $.name;
        this.onInactiveMarkAs = $.onInactiveMarkAs;
        this.outputs = $.outputs;
        this.parallelCopies = $.parallelCopies;
        this.policy = $.policy;
        this.preserve = $.preserve;
        this.preserveRules = $.preserveRules;
        this.redirectIncompatibleRowSettings = $.redirectIncompatibleRowSettings;
        this.sink = $.sink;
        this.skipErrorFile = $.skipErrorFile;
        this.source = $.source;
        this.stagingSettings = $.stagingSettings;
        this.state = $.state;
        this.translator = $.translator;
        this.type = $.type;
        this.userProperties = $.userProperties;
        this.validateDataConsistency = $.validateDataConsistency;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(CopyActivityArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private CopyActivityArgs $;

        public Builder() {
            $ = new CopyActivityArgs();
        }

        public Builder(CopyActivityArgs defaults) {
            $ = new CopyActivityArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param dataIntegrationUnits Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0.
         * 
         * @return builder
         * 
         */
        public Builder dataIntegrationUnits(@Nullable Output dataIntegrationUnits) {
            $.dataIntegrationUnits = dataIntegrationUnits;
            return this;
        }

        /**
         * @param dataIntegrationUnits Maximum number of data integration units that can be used to perform this data movement. Type: integer (or Expression with resultType integer), minimum: 0.
         * 
         * @return builder
         * 
         */
        public Builder dataIntegrationUnits(Object dataIntegrationUnits) {
            return dataIntegrationUnits(Output.of(dataIntegrationUnits));
        }

        /**
         * @param dependsOn Activity depends on condition.
         * 
         * @return builder
         * 
         */
        public Builder dependsOn(@Nullable Output> dependsOn) {
            $.dependsOn = dependsOn;
            return this;
        }

        /**
         * @param dependsOn Activity depends on condition.
         * 
         * @return builder
         * 
         */
        public Builder dependsOn(List dependsOn) {
            return dependsOn(Output.of(dependsOn));
        }

        /**
         * @param dependsOn Activity depends on condition.
         * 
         * @return builder
         * 
         */
        public Builder dependsOn(ActivityDependencyArgs... dependsOn) {
            return dependsOn(List.of(dependsOn));
        }

        /**
         * @param description Activity description.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Activity description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param enableSkipIncompatibleRow Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder enableSkipIncompatibleRow(@Nullable Output enableSkipIncompatibleRow) {
            $.enableSkipIncompatibleRow = enableSkipIncompatibleRow;
            return this;
        }

        /**
         * @param enableSkipIncompatibleRow Whether to skip incompatible row. Default value is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder enableSkipIncompatibleRow(Object enableSkipIncompatibleRow) {
            return enableSkipIncompatibleRow(Output.of(enableSkipIncompatibleRow));
        }

        /**
         * @param enableStaging Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder enableStaging(@Nullable Output enableStaging) {
            $.enableStaging = enableStaging;
            return this;
        }

        /**
         * @param enableStaging Specifies whether to copy data via an interim staging. Default value is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder enableStaging(Object enableStaging) {
            return enableStaging(Output.of(enableStaging));
        }

        /**
         * @param inputs List of inputs for the activity.
         * 
         * @return builder
         * 
         */
        public Builder inputs(@Nullable Output> inputs) {
            $.inputs = inputs;
            return this;
        }

        /**
         * @param inputs List of inputs for the activity.
         * 
         * @return builder
         * 
         */
        public Builder inputs(List inputs) {
            return inputs(Output.of(inputs));
        }

        /**
         * @param inputs List of inputs for the activity.
         * 
         * @return builder
         * 
         */
        public Builder inputs(DatasetReferenceArgs... inputs) {
            return inputs(List.of(inputs));
        }

        /**
         * @param linkedServiceName Linked service reference.
         * 
         * @return builder
         * 
         */
        public Builder linkedServiceName(@Nullable Output linkedServiceName) {
            $.linkedServiceName = linkedServiceName;
            return this;
        }

        /**
         * @param linkedServiceName Linked service reference.
         * 
         * @return builder
         * 
         */
        public Builder linkedServiceName(LinkedServiceReferenceArgs linkedServiceName) {
            return linkedServiceName(Output.of(linkedServiceName));
        }

        /**
         * @param logSettings Log settings customer needs provide when enabling log.
         * 
         * @return builder
         * 
         */
        public Builder logSettings(@Nullable Output logSettings) {
            $.logSettings = logSettings;
            return this;
        }

        /**
         * @param logSettings Log settings customer needs provide when enabling log.
         * 
         * @return builder
         * 
         */
        public Builder logSettings(LogSettingsArgs logSettings) {
            return logSettings(Output.of(logSettings));
        }

        /**
         * @param logStorageSettings (Deprecated. Please use LogSettings) Log storage settings customer need to provide when enabling session log.
         * 
         * @return builder
         * 
         */
        public Builder logStorageSettings(@Nullable Output logStorageSettings) {
            $.logStorageSettings = logStorageSettings;
            return this;
        }

        /**
         * @param logStorageSettings (Deprecated. Please use LogSettings) Log storage settings customer need to provide when enabling session log.
         * 
         * @return builder
         * 
         */
        public Builder logStorageSettings(LogStorageSettingsArgs logStorageSettings) {
            return logStorageSettings(Output.of(logStorageSettings));
        }

        /**
         * @param name Activity name.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Activity name.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(@Nullable Output> onInactiveMarkAs) {
            $.onInactiveMarkAs = onInactiveMarkAs;
            return this;
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(Either onInactiveMarkAs) {
            return onInactiveMarkAs(Output.of(onInactiveMarkAs));
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(String onInactiveMarkAs) {
            return onInactiveMarkAs(Either.ofLeft(onInactiveMarkAs));
        }

        /**
         * @param onInactiveMarkAs Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.
         * 
         * @return builder
         * 
         */
        public Builder onInactiveMarkAs(ActivityOnInactiveMarkAs onInactiveMarkAs) {
            return onInactiveMarkAs(Either.ofRight(onInactiveMarkAs));
        }

        /**
         * @param outputs List of outputs for the activity.
         * 
         * @return builder
         * 
         */
        public Builder outputs(@Nullable Output> outputs) {
            $.outputs = outputs;
            return this;
        }

        /**
         * @param outputs List of outputs for the activity.
         * 
         * @return builder
         * 
         */
        public Builder outputs(List outputs) {
            return outputs(Output.of(outputs));
        }

        /**
         * @param outputs List of outputs for the activity.
         * 
         * @return builder
         * 
         */
        public Builder outputs(DatasetReferenceArgs... outputs) {
            return outputs(List.of(outputs));
        }

        /**
         * @param parallelCopies Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0.
         * 
         * @return builder
         * 
         */
        public Builder parallelCopies(@Nullable Output parallelCopies) {
            $.parallelCopies = parallelCopies;
            return this;
        }

        /**
         * @param parallelCopies Maximum number of concurrent sessions opened on the source or sink to avoid overloading the data store. Type: integer (or Expression with resultType integer), minimum: 0.
         * 
         * @return builder
         * 
         */
        public Builder parallelCopies(Object parallelCopies) {
            return parallelCopies(Output.of(parallelCopies));
        }

        /**
         * @param policy Activity policy.
         * 
         * @return builder
         * 
         */
        public Builder policy(@Nullable Output policy) {
            $.policy = policy;
            return this;
        }

        /**
         * @param policy Activity policy.
         * 
         * @return builder
         * 
         */
        public Builder policy(ActivityPolicyArgs policy) {
            return policy(Output.of(policy));
        }

        /**
         * @param preserve Preserve rules.
         * 
         * @return builder
         * 
         */
        public Builder preserve(@Nullable Output> preserve) {
            $.preserve = preserve;
            return this;
        }

        /**
         * @param preserve Preserve rules.
         * 
         * @return builder
         * 
         */
        public Builder preserve(List preserve) {
            return preserve(Output.of(preserve));
        }

        /**
         * @param preserve Preserve rules.
         * 
         * @return builder
         * 
         */
        public Builder preserve(Object... preserve) {
            return preserve(List.of(preserve));
        }

        /**
         * @param preserveRules Preserve Rules.
         * 
         * @return builder
         * 
         */
        public Builder preserveRules(@Nullable Output> preserveRules) {
            $.preserveRules = preserveRules;
            return this;
        }

        /**
         * @param preserveRules Preserve Rules.
         * 
         * @return builder
         * 
         */
        public Builder preserveRules(List preserveRules) {
            return preserveRules(Output.of(preserveRules));
        }

        /**
         * @param preserveRules Preserve Rules.
         * 
         * @return builder
         * 
         */
        public Builder preserveRules(Object... preserveRules) {
            return preserveRules(List.of(preserveRules));
        }

        /**
         * @param redirectIncompatibleRowSettings Redirect incompatible row settings when EnableSkipIncompatibleRow is true.
         * 
         * @return builder
         * 
         */
        public Builder redirectIncompatibleRowSettings(@Nullable Output redirectIncompatibleRowSettings) {
            $.redirectIncompatibleRowSettings = redirectIncompatibleRowSettings;
            return this;
        }

        /**
         * @param redirectIncompatibleRowSettings Redirect incompatible row settings when EnableSkipIncompatibleRow is true.
         * 
         * @return builder
         * 
         */
        public Builder redirectIncompatibleRowSettings(RedirectIncompatibleRowSettingsArgs redirectIncompatibleRowSettings) {
            return redirectIncompatibleRowSettings(Output.of(redirectIncompatibleRowSettings));
        }

        /**
         * @param sink Copy activity sink.
         * 
         * @return builder
         * 
         */
        public Builder sink(Output sink) {
            $.sink = sink;
            return this;
        }

        /**
         * @param sink Copy activity sink.
         * 
         * @return builder
         * 
         */
        public Builder sink(Object sink) {
            return sink(Output.of(sink));
        }

        /**
         * @param skipErrorFile Specify the fault tolerance for data consistency.
         * 
         * @return builder
         * 
         */
        public Builder skipErrorFile(@Nullable Output skipErrorFile) {
            $.skipErrorFile = skipErrorFile;
            return this;
        }

        /**
         * @param skipErrorFile Specify the fault tolerance for data consistency.
         * 
         * @return builder
         * 
         */
        public Builder skipErrorFile(SkipErrorFileArgs skipErrorFile) {
            return skipErrorFile(Output.of(skipErrorFile));
        }

        /**
         * @param source Copy activity source.
         * 
         * @return builder
         * 
         */
        public Builder source(Output source) {
            $.source = source;
            return this;
        }

        /**
         * @param source Copy activity source.
         * 
         * @return builder
         * 
         */
        public Builder source(Object source) {
            return source(Output.of(source));
        }

        /**
         * @param stagingSettings Specifies interim staging settings when EnableStaging is true.
         * 
         * @return builder
         * 
         */
        public Builder stagingSettings(@Nullable Output stagingSettings) {
            $.stagingSettings = stagingSettings;
            return this;
        }

        /**
         * @param stagingSettings Specifies interim staging settings when EnableStaging is true.
         * 
         * @return builder
         * 
         */
        public Builder stagingSettings(StagingSettingsArgs stagingSettings) {
            return stagingSettings(Output.of(stagingSettings));
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(@Nullable Output> state) {
            $.state = state;
            return this;
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(Either state) {
            return state(Output.of(state));
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(String state) {
            return state(Either.ofLeft(state));
        }

        /**
         * @param state Activity state. This is an optional property and if not provided, the state will be Active by default.
         * 
         * @return builder
         * 
         */
        public Builder state(ActivityState state) {
            return state(Either.ofRight(state));
        }

        /**
         * @param translator Copy activity translator. If not specified, tabular translator is used.
         * 
         * @return builder
         * 
         */
        public Builder translator(@Nullable Output translator) {
            $.translator = translator;
            return this;
        }

        /**
         * @param translator Copy activity translator. If not specified, tabular translator is used.
         * 
         * @return builder
         * 
         */
        public Builder translator(Object translator) {
            return translator(Output.of(translator));
        }

        /**
         * @param type Type of activity.
         * Expected value is 'Copy'.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of activity.
         * Expected value is 'Copy'.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param userProperties Activity user properties.
         * 
         * @return builder
         * 
         */
        public Builder userProperties(@Nullable Output> userProperties) {
            $.userProperties = userProperties;
            return this;
        }

        /**
         * @param userProperties Activity user properties.
         * 
         * @return builder
         * 
         */
        public Builder userProperties(List userProperties) {
            return userProperties(Output.of(userProperties));
        }

        /**
         * @param userProperties Activity user properties.
         * 
         * @return builder
         * 
         */
        public Builder userProperties(UserPropertyArgs... userProperties) {
            return userProperties(List.of(userProperties));
        }

        /**
         * @param validateDataConsistency Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder validateDataConsistency(@Nullable Output validateDataConsistency) {
            $.validateDataConsistency = validateDataConsistency;
            return this;
        }

        /**
         * @param validateDataConsistency Whether to enable Data Consistency validation. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder validateDataConsistency(Object validateDataConsistency) {
            return validateDataConsistency(Output.of(validateDataConsistency));
        }

        public CopyActivityArgs build() {
            if ($.name == null) {
                throw new MissingRequiredPropertyException("CopyActivityArgs", "name");
            }
            if ($.sink == null) {
                throw new MissingRequiredPropertyException("CopyActivityArgs", "sink");
            }
            if ($.source == null) {
                throw new MissingRequiredPropertyException("CopyActivityArgs", "source");
            }
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            return $;
        }
    }

}