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

com.pulumi.azurenative.hybriddata.JobDefinitionArgs Maven / Gradle / Ivy

The 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.hybriddata;

import com.pulumi.azurenative.hybriddata.enums.RunLocation;
import com.pulumi.azurenative.hybriddata.enums.State;
import com.pulumi.azurenative.hybriddata.enums.UserConfirmation;
import com.pulumi.azurenative.hybriddata.inputs.CustomerSecretArgs;
import com.pulumi.azurenative.hybriddata.inputs.ScheduleArgs;
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;


public final class JobDefinitionArgs extends com.pulumi.resources.ResourceArgs {

    public static final JobDefinitionArgs Empty = new JobDefinitionArgs();

    /**
     * List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
     * 
     */
    @Import(name="customerSecrets")
    private @Nullable Output> customerSecrets;

    /**
     * @return List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
     * 
     */
    public Optional>> customerSecrets() {
        return Optional.ofNullable(this.customerSecrets);
    }

    /**
     * The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     * 
     */
    @Import(name="dataManagerName", required=true)
    private Output dataManagerName;

    /**
     * @return The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     * 
     */
    public Output dataManagerName() {
        return this.dataManagerName;
    }

    /**
     * A generic json used differently by each data service type.
     * 
     */
    @Import(name="dataServiceInput")
    private @Nullable Output dataServiceInput;

    /**
     * @return A generic json used differently by each data service type.
     * 
     */
    public Optional> dataServiceInput() {
        return Optional.ofNullable(this.dataServiceInput);
    }

    /**
     * The data service type of the job definition.
     * 
     */
    @Import(name="dataServiceName", required=true)
    private Output dataServiceName;

    /**
     * @return The data service type of the job definition.
     * 
     */
    public Output dataServiceName() {
        return this.dataServiceName;
    }

    /**
     * Data Sink Id associated to the job definition.
     * 
     */
    @Import(name="dataSinkId", required=true)
    private Output dataSinkId;

    /**
     * @return Data Sink Id associated to the job definition.
     * 
     */
    public Output dataSinkId() {
        return this.dataSinkId;
    }

    /**
     * Data Source Id associated to the job definition.
     * 
     */
    @Import(name="dataSourceId", required=true)
    private Output dataSourceId;

    /**
     * @return Data Source Id associated to the job definition.
     * 
     */
    public Output dataSourceId() {
        return this.dataSourceId;
    }

    /**
     * The job definition name to be created or updated.
     * 
     */
    @Import(name="jobDefinitionName")
    private @Nullable Output jobDefinitionName;

    /**
     * @return The job definition name to be created or updated.
     * 
     */
    public Optional> jobDefinitionName() {
        return Optional.ofNullable(this.jobDefinitionName);
    }

    /**
     * Last modified time of the job definition.
     * 
     */
    @Import(name="lastModifiedTime")
    private @Nullable Output lastModifiedTime;

    /**
     * @return Last modified time of the job definition.
     * 
     */
    public Optional> lastModifiedTime() {
        return Optional.ofNullable(this.lastModifiedTime);
    }

    /**
     * The Resource Group Name
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The Resource Group Name
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * This is the preferred geo location for the job to run.
     * 
     */
    @Import(name="runLocation")
    private @Nullable Output runLocation;

    /**
     * @return This is the preferred geo location for the job to run.
     * 
     */
    public Optional> runLocation() {
        return Optional.ofNullable(this.runLocation);
    }

    /**
     * Schedule for running the job definition
     * 
     */
    @Import(name="schedules")
    private @Nullable Output> schedules;

    /**
     * @return Schedule for running the job definition
     * 
     */
    public Optional>> schedules() {
        return Optional.ofNullable(this.schedules);
    }

    /**
     * State of the job definition.
     * 
     */
    @Import(name="state", required=true)
    private Output state;

    /**
     * @return State of the job definition.
     * 
     */
    public Output state() {
        return this.state;
    }

    /**
     * Enum to detect if user confirmation is required. If not passed will default to NotRequired.
     * 
     */
    @Import(name="userConfirmation")
    private @Nullable Output userConfirmation;

    /**
     * @return Enum to detect if user confirmation is required. If not passed will default to NotRequired.
     * 
     */
    public Optional> userConfirmation() {
        return Optional.ofNullable(this.userConfirmation);
    }

    private JobDefinitionArgs() {}

    private JobDefinitionArgs(JobDefinitionArgs $) {
        this.customerSecrets = $.customerSecrets;
        this.dataManagerName = $.dataManagerName;
        this.dataServiceInput = $.dataServiceInput;
        this.dataServiceName = $.dataServiceName;
        this.dataSinkId = $.dataSinkId;
        this.dataSourceId = $.dataSourceId;
        this.jobDefinitionName = $.jobDefinitionName;
        this.lastModifiedTime = $.lastModifiedTime;
        this.resourceGroupName = $.resourceGroupName;
        this.runLocation = $.runLocation;
        this.schedules = $.schedules;
        this.state = $.state;
        this.userConfirmation = $.userConfirmation;
    }

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

    public static final class Builder {
        private JobDefinitionArgs $;

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

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

        /**
         * @param customerSecrets List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
         * 
         * @return builder
         * 
         */
        public Builder customerSecrets(@Nullable Output> customerSecrets) {
            $.customerSecrets = customerSecrets;
            return this;
        }

        /**
         * @param customerSecrets List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
         * 
         * @return builder
         * 
         */
        public Builder customerSecrets(List customerSecrets) {
            return customerSecrets(Output.of(customerSecrets));
        }

        /**
         * @param customerSecrets List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
         * 
         * @return builder
         * 
         */
        public Builder customerSecrets(CustomerSecretArgs... customerSecrets) {
            return customerSecrets(List.of(customerSecrets));
        }

        /**
         * @param dataManagerName The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
         * 
         * @return builder
         * 
         */
        public Builder dataManagerName(Output dataManagerName) {
            $.dataManagerName = dataManagerName;
            return this;
        }

        /**
         * @param dataManagerName The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
         * 
         * @return builder
         * 
         */
        public Builder dataManagerName(String dataManagerName) {
            return dataManagerName(Output.of(dataManagerName));
        }

        /**
         * @param dataServiceInput A generic json used differently by each data service type.
         * 
         * @return builder
         * 
         */
        public Builder dataServiceInput(@Nullable Output dataServiceInput) {
            $.dataServiceInput = dataServiceInput;
            return this;
        }

        /**
         * @param dataServiceInput A generic json used differently by each data service type.
         * 
         * @return builder
         * 
         */
        public Builder dataServiceInput(Object dataServiceInput) {
            return dataServiceInput(Output.of(dataServiceInput));
        }

        /**
         * @param dataServiceName The data service type of the job definition.
         * 
         * @return builder
         * 
         */
        public Builder dataServiceName(Output dataServiceName) {
            $.dataServiceName = dataServiceName;
            return this;
        }

        /**
         * @param dataServiceName The data service type of the job definition.
         * 
         * @return builder
         * 
         */
        public Builder dataServiceName(String dataServiceName) {
            return dataServiceName(Output.of(dataServiceName));
        }

        /**
         * @param dataSinkId Data Sink Id associated to the job definition.
         * 
         * @return builder
         * 
         */
        public Builder dataSinkId(Output dataSinkId) {
            $.dataSinkId = dataSinkId;
            return this;
        }

        /**
         * @param dataSinkId Data Sink Id associated to the job definition.
         * 
         * @return builder
         * 
         */
        public Builder dataSinkId(String dataSinkId) {
            return dataSinkId(Output.of(dataSinkId));
        }

        /**
         * @param dataSourceId Data Source Id associated to the job definition.
         * 
         * @return builder
         * 
         */
        public Builder dataSourceId(Output dataSourceId) {
            $.dataSourceId = dataSourceId;
            return this;
        }

        /**
         * @param dataSourceId Data Source Id associated to the job definition.
         * 
         * @return builder
         * 
         */
        public Builder dataSourceId(String dataSourceId) {
            return dataSourceId(Output.of(dataSourceId));
        }

        /**
         * @param jobDefinitionName The job definition name to be created or updated.
         * 
         * @return builder
         * 
         */
        public Builder jobDefinitionName(@Nullable Output jobDefinitionName) {
            $.jobDefinitionName = jobDefinitionName;
            return this;
        }

        /**
         * @param jobDefinitionName The job definition name to be created or updated.
         * 
         * @return builder
         * 
         */
        public Builder jobDefinitionName(String jobDefinitionName) {
            return jobDefinitionName(Output.of(jobDefinitionName));
        }

        /**
         * @param lastModifiedTime Last modified time of the job definition.
         * 
         * @return builder
         * 
         */
        public Builder lastModifiedTime(@Nullable Output lastModifiedTime) {
            $.lastModifiedTime = lastModifiedTime;
            return this;
        }

        /**
         * @param lastModifiedTime Last modified time of the job definition.
         * 
         * @return builder
         * 
         */
        public Builder lastModifiedTime(String lastModifiedTime) {
            return lastModifiedTime(Output.of(lastModifiedTime));
        }

        /**
         * @param resourceGroupName The Resource Group Name
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The Resource Group Name
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param runLocation This is the preferred geo location for the job to run.
         * 
         * @return builder
         * 
         */
        public Builder runLocation(@Nullable Output runLocation) {
            $.runLocation = runLocation;
            return this;
        }

        /**
         * @param runLocation This is the preferred geo location for the job to run.
         * 
         * @return builder
         * 
         */
        public Builder runLocation(RunLocation runLocation) {
            return runLocation(Output.of(runLocation));
        }

        /**
         * @param schedules Schedule for running the job definition
         * 
         * @return builder
         * 
         */
        public Builder schedules(@Nullable Output> schedules) {
            $.schedules = schedules;
            return this;
        }

        /**
         * @param schedules Schedule for running the job definition
         * 
         * @return builder
         * 
         */
        public Builder schedules(List schedules) {
            return schedules(Output.of(schedules));
        }

        /**
         * @param schedules Schedule for running the job definition
         * 
         * @return builder
         * 
         */
        public Builder schedules(ScheduleArgs... schedules) {
            return schedules(List.of(schedules));
        }

        /**
         * @param state State of the job definition.
         * 
         * @return builder
         * 
         */
        public Builder state(Output state) {
            $.state = state;
            return this;
        }

        /**
         * @param state State of the job definition.
         * 
         * @return builder
         * 
         */
        public Builder state(State state) {
            return state(Output.of(state));
        }

        /**
         * @param userConfirmation Enum to detect if user confirmation is required. If not passed will default to NotRequired.
         * 
         * @return builder
         * 
         */
        public Builder userConfirmation(@Nullable Output userConfirmation) {
            $.userConfirmation = userConfirmation;
            return this;
        }

        /**
         * @param userConfirmation Enum to detect if user confirmation is required. If not passed will default to NotRequired.
         * 
         * @return builder
         * 
         */
        public Builder userConfirmation(UserConfirmation userConfirmation) {
            return userConfirmation(Output.of(userConfirmation));
        }

        public JobDefinitionArgs build() {
            if ($.dataManagerName == null) {
                throw new MissingRequiredPropertyException("JobDefinitionArgs", "dataManagerName");
            }
            if ($.dataServiceName == null) {
                throw new MissingRequiredPropertyException("JobDefinitionArgs", "dataServiceName");
            }
            if ($.dataSinkId == null) {
                throw new MissingRequiredPropertyException("JobDefinitionArgs", "dataSinkId");
            }
            if ($.dataSourceId == null) {
                throw new MissingRequiredPropertyException("JobDefinitionArgs", "dataSourceId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("JobDefinitionArgs", "resourceGroupName");
            }
            if ($.state == null) {
                throw new MissingRequiredPropertyException("JobDefinitionArgs", "state");
            }
            $.userConfirmation = Codegen.objectProp("userConfirmation", UserConfirmation.class).output().arg($.userConfirmation).def(UserConfirmation.NotRequired).getNullable();
            return $;
        }
    }

}