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

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

There is a newer version: 2.72.0
Show newest version
// *** 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.CustomActivityReferenceObjectArgs;
import com.pulumi.azurenative.datafactory.inputs.LinkedServiceReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.UserPropertyArgs;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Custom activity type.
 * 
 */
public final class CustomActivityArgs extends com.pulumi.resources.ResourceArgs {

    public static final CustomActivityArgs Empty = new CustomActivityArgs();

    /**
     * Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double).
     * 
     */
    @Import(name="autoUserSpecification")
    private @Nullable Output autoUserSpecification;

    /**
     * @return Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double).
     * 
     */
    public Optional> autoUserSpecification() {
        return Optional.ofNullable(this.autoUserSpecification);
    }

    /**
     * Command for custom activity Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="command", required=true)
    private Output command;

    /**
     * @return Command for custom activity Type: string (or Expression with resultType string).
     * 
     */
    public Output command() {
        return this.command;
    }

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

    /**
     * User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined.
     * 
     */
    @Import(name="extendedProperties")
    private @Nullable Output> extendedProperties;

    /**
     * @return User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined.
     * 
     */
    public Optional>> extendedProperties() {
        return Optional.ofNullable(this.extendedProperties);
    }

    /**
     * Folder path for resource files Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="folderPath")
    private @Nullable Output folderPath;

    /**
     * @return Folder path for resource files Type: string (or Expression with resultType string).
     * 
     */
    public Optional> folderPath() {
        return Optional.ofNullable(this.folderPath);
    }

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

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

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

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

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

    /**
     * Reference objects
     * 
     */
    @Import(name="referenceObjects")
    private @Nullable Output referenceObjects;

    /**
     * @return Reference objects
     * 
     */
    public Optional> referenceObjects() {
        return Optional.ofNullable(this.referenceObjects);
    }

    /**
     * Resource linked service reference.
     * 
     */
    @Import(name="resourceLinkedService")
    private @Nullable Output resourceLinkedService;

    /**
     * @return Resource linked service reference.
     * 
     */
    public Optional> resourceLinkedService() {
        return Optional.ofNullable(this.resourceLinkedService);
    }

    /**
     * The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double).
     * 
     */
    @Import(name="retentionTimeInDays")
    private @Nullable Output retentionTimeInDays;

    /**
     * @return The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double).
     * 
     */
    public Optional> retentionTimeInDays() {
        return Optional.ofNullable(this.retentionTimeInDays);
    }

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

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

    /**
     * @return Type of activity.
     * Expected value is 'Custom'.
     * 
     */
    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);
    }

    private CustomActivityArgs() {}

    private CustomActivityArgs(CustomActivityArgs $) {
        this.autoUserSpecification = $.autoUserSpecification;
        this.command = $.command;
        this.dependsOn = $.dependsOn;
        this.description = $.description;
        this.extendedProperties = $.extendedProperties;
        this.folderPath = $.folderPath;
        this.linkedServiceName = $.linkedServiceName;
        this.name = $.name;
        this.onInactiveMarkAs = $.onInactiveMarkAs;
        this.policy = $.policy;
        this.referenceObjects = $.referenceObjects;
        this.resourceLinkedService = $.resourceLinkedService;
        this.retentionTimeInDays = $.retentionTimeInDays;
        this.state = $.state;
        this.type = $.type;
        this.userProperties = $.userProperties;
    }

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

    public static final class Builder {
        private CustomActivityArgs $;

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

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

        /**
         * @param autoUserSpecification Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double).
         * 
         * @return builder
         * 
         */
        public Builder autoUserSpecification(@Nullable Output autoUserSpecification) {
            $.autoUserSpecification = autoUserSpecification;
            return this;
        }

        /**
         * @param autoUserSpecification Elevation level and scope for the user, default is nonadmin task. Type: string (or Expression with resultType double).
         * 
         * @return builder
         * 
         */
        public Builder autoUserSpecification(Object autoUserSpecification) {
            return autoUserSpecification(Output.of(autoUserSpecification));
        }

        /**
         * @param command Command for custom activity Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder command(Output command) {
            $.command = command;
            return this;
        }

        /**
         * @param command Command for custom activity Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder command(Object command) {
            return command(Output.of(command));
        }

        /**
         * @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 extendedProperties User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined.
         * 
         * @return builder
         * 
         */
        public Builder extendedProperties(@Nullable Output> extendedProperties) {
            $.extendedProperties = extendedProperties;
            return this;
        }

        /**
         * @param extendedProperties User defined property bag. There is no restriction on the keys or values that can be used. The user specified custom activity has the full responsibility to consume and interpret the content defined.
         * 
         * @return builder
         * 
         */
        public Builder extendedProperties(Map extendedProperties) {
            return extendedProperties(Output.of(extendedProperties));
        }

        /**
         * @param folderPath Folder path for resource files Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder folderPath(@Nullable Output folderPath) {
            $.folderPath = folderPath;
            return this;
        }

        /**
         * @param folderPath Folder path for resource files Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder folderPath(Object folderPath) {
            return folderPath(Output.of(folderPath));
        }

        /**
         * @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 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 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 referenceObjects Reference objects
         * 
         * @return builder
         * 
         */
        public Builder referenceObjects(@Nullable Output referenceObjects) {
            $.referenceObjects = referenceObjects;
            return this;
        }

        /**
         * @param referenceObjects Reference objects
         * 
         * @return builder
         * 
         */
        public Builder referenceObjects(CustomActivityReferenceObjectArgs referenceObjects) {
            return referenceObjects(Output.of(referenceObjects));
        }

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

        /**
         * @param resourceLinkedService Resource linked service reference.
         * 
         * @return builder
         * 
         */
        public Builder resourceLinkedService(LinkedServiceReferenceArgs resourceLinkedService) {
            return resourceLinkedService(Output.of(resourceLinkedService));
        }

        /**
         * @param retentionTimeInDays The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double).
         * 
         * @return builder
         * 
         */
        public Builder retentionTimeInDays(@Nullable Output retentionTimeInDays) {
            $.retentionTimeInDays = retentionTimeInDays;
            return this;
        }

        /**
         * @param retentionTimeInDays The retention time for the files submitted for custom activity. Type: double (or Expression with resultType double).
         * 
         * @return builder
         * 
         */
        public Builder retentionTimeInDays(Object retentionTimeInDays) {
            return retentionTimeInDays(Output.of(retentionTimeInDays));
        }

        /**
         * @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 type Type of activity.
         * Expected value is 'Custom'.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of activity.
         * Expected value is 'Custom'.
         * 
         * @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));
        }

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

}