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

com.pulumi.azurenative.streamanalytics.StreamingJobArgs 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.streamanalytics;

import com.pulumi.azurenative.streamanalytics.enums.CompatibilityLevel;
import com.pulumi.azurenative.streamanalytics.enums.ContentStoragePolicy;
import com.pulumi.azurenative.streamanalytics.enums.EventsOutOfOrderPolicy;
import com.pulumi.azurenative.streamanalytics.enums.JobType;
import com.pulumi.azurenative.streamanalytics.enums.OutputErrorPolicy;
import com.pulumi.azurenative.streamanalytics.enums.OutputStartMode;
import com.pulumi.azurenative.streamanalytics.inputs.ClusterInfoArgs;
import com.pulumi.azurenative.streamanalytics.inputs.FunctionArgs;
import com.pulumi.azurenative.streamanalytics.inputs.IdentityArgs;
import com.pulumi.azurenative.streamanalytics.inputs.InputArgs;
import com.pulumi.azurenative.streamanalytics.inputs.JobStorageAccountArgs;
import com.pulumi.azurenative.streamanalytics.inputs.OutputArgs;
import com.pulumi.azurenative.streamanalytics.inputs.SkuArgs;
import com.pulumi.azurenative.streamanalytics.inputs.TransformationArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final StreamingJobArgs Empty = new StreamingJobArgs();

    /**
     * The cluster which streaming jobs will run on.
     * 
     */
    @Import(name="cluster")
    private @Nullable Output cluster;

    /**
     * @return The cluster which streaming jobs will run on.
     * 
     */
    public Optional> cluster() {
        return Optional.ofNullable(this.cluster);
    }

    /**
     * Controls certain runtime behaviors of the streaming job.
     * 
     */
    @Import(name="compatibilityLevel")
    private @Nullable Output> compatibilityLevel;

    /**
     * @return Controls certain runtime behaviors of the streaming job.
     * 
     */
    public Optional>> compatibilityLevel() {
        return Optional.ofNullable(this.compatibilityLevel);
    }

    /**
     * Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
     * 
     */
    @Import(name="contentStoragePolicy")
    private @Nullable Output> contentStoragePolicy;

    /**
     * @return Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
     * 
     */
    public Optional>> contentStoragePolicy() {
        return Optional.ofNullable(this.contentStoragePolicy);
    }

    /**
     * The data locale of the stream analytics job. Value should be the name of a supported .NET Culture from the set https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx. Defaults to 'en-US' if none specified.
     * 
     */
    @Import(name="dataLocale")
    private @Nullable Output dataLocale;

    /**
     * @return The data locale of the stream analytics job. Value should be the name of a supported .NET Culture from the set https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx. Defaults to 'en-US' if none specified.
     * 
     */
    public Optional> dataLocale() {
        return Optional.ofNullable(this.dataLocale);
    }

    /**
     * The maximum tolerable delay in seconds where events arriving late could be included.  Supported range is -1 to 1814399 (20.23:59:59 days) and -1 is used to specify wait indefinitely. If the property is absent, it is interpreted to have a value of -1.
     * 
     */
    @Import(name="eventsLateArrivalMaxDelayInSeconds")
    private @Nullable Output eventsLateArrivalMaxDelayInSeconds;

    /**
     * @return The maximum tolerable delay in seconds where events arriving late could be included.  Supported range is -1 to 1814399 (20.23:59:59 days) and -1 is used to specify wait indefinitely. If the property is absent, it is interpreted to have a value of -1.
     * 
     */
    public Optional> eventsLateArrivalMaxDelayInSeconds() {
        return Optional.ofNullable(this.eventsLateArrivalMaxDelayInSeconds);
    }

    /**
     * The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
     * 
     */
    @Import(name="eventsOutOfOrderMaxDelayInSeconds")
    private @Nullable Output eventsOutOfOrderMaxDelayInSeconds;

    /**
     * @return The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
     * 
     */
    public Optional> eventsOutOfOrderMaxDelayInSeconds() {
        return Optional.ofNullable(this.eventsOutOfOrderMaxDelayInSeconds);
    }

    /**
     * Indicates the policy to apply to events that arrive out of order in the input event stream.
     * 
     */
    @Import(name="eventsOutOfOrderPolicy")
    private @Nullable Output> eventsOutOfOrderPolicy;

    /**
     * @return Indicates the policy to apply to events that arrive out of order in the input event stream.
     * 
     */
    public Optional>> eventsOutOfOrderPolicy() {
        return Optional.ofNullable(this.eventsOutOfOrderPolicy);
    }

    /**
     * A list of one or more functions for the streaming job. The name property for each function is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
     * 
     */
    @Import(name="functions")
    private @Nullable Output> functions;

    /**
     * @return A list of one or more functions for the streaming job. The name property for each function is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
     * 
     */
    public Optional>> functions() {
        return Optional.ofNullable(this.functions);
    }

    /**
     * Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * A list of one or more inputs to the streaming job. The name property for each input is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual input.
     * 
     */
    @Import(name="inputs")
    private @Nullable Output> inputs;

    /**
     * @return A list of one or more inputs to the streaming job. The name property for each input is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual input.
     * 
     */
    public Optional>> inputs() {
        return Optional.ofNullable(this.inputs);
    }

    /**
     * The name of the streaming job.
     * 
     */
    @Import(name="jobName")
    private @Nullable Output jobName;

    /**
     * @return The name of the streaming job.
     * 
     */
    public Optional> jobName() {
        return Optional.ofNullable(this.jobName);
    }

    /**
     * The properties that are associated with an Azure Storage account with MSI
     * 
     */
    @Import(name="jobStorageAccount")
    private @Nullable Output jobStorageAccount;

    /**
     * @return The properties that are associated with an Azure Storage account with MSI
     * 
     */
    public Optional> jobStorageAccount() {
        return Optional.ofNullable(this.jobStorageAccount);
    }

    /**
     * Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
     * 
     */
    @Import(name="jobType")
    private @Nullable Output> jobType;

    /**
     * @return Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
     * 
     */
    public Optional>> jobType() {
        return Optional.ofNullable(this.jobType);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Indicates the policy to apply to events that arrive at the output and cannot be written to the external storage due to being malformed (missing column values, column values of wrong type or size).
     * 
     */
    @Import(name="outputErrorPolicy")
    private @Nullable Output> outputErrorPolicy;

    /**
     * @return Indicates the policy to apply to events that arrive at the output and cannot be written to the external storage due to being malformed (missing column values, column values of wrong type or size).
     * 
     */
    public Optional>> outputErrorPolicy() {
        return Optional.ofNullable(this.outputErrorPolicy);
    }

    /**
     * This property should only be utilized when it is desired that the job be started immediately upon creation. Value may be JobStartTime, CustomTime, or LastOutputEventTime to indicate whether the starting point of the output event stream should start whenever the job is started, start at a custom user time stamp specified via the outputStartTime property, or start from the last event output time.
     * 
     */
    @Import(name="outputStartMode")
    private @Nullable Output> outputStartMode;

    /**
     * @return This property should only be utilized when it is desired that the job be started immediately upon creation. Value may be JobStartTime, CustomTime, or LastOutputEventTime to indicate whether the starting point of the output event stream should start whenever the job is started, start at a custom user time stamp specified via the outputStartTime property, or start from the last event output time.
     * 
     */
    public Optional>> outputStartMode() {
        return Optional.ofNullable(this.outputStartMode);
    }

    /**
     * Value is either an ISO-8601 formatted time stamp that indicates the starting point of the output event stream, or null to indicate that the output event stream will start whenever the streaming job is started. This property must have a value if outputStartMode is set to CustomTime.
     * 
     */
    @Import(name="outputStartTime")
    private @Nullable Output outputStartTime;

    /**
     * @return Value is either an ISO-8601 formatted time stamp that indicates the starting point of the output event stream, or null to indicate that the output event stream will start whenever the streaming job is started. This property must have a value if outputStartMode is set to CustomTime.
     * 
     */
    public Optional> outputStartTime() {
        return Optional.ofNullable(this.outputStartTime);
    }

    /**
     * A list of one or more outputs for the streaming job. The name property for each output is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual output.
     * 
     */
    @Import(name="outputs")
    private @Nullable Output> outputs;

    /**
     * @return A list of one or more outputs for the streaming job. The name property for each output is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual output.
     * 
     */
    public Optional>> outputs() {
        return Optional.ofNullable(this.outputs);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Indicates the query and the number of streaming units to use for the streaming job. The name property of the transformation is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
     * 
     */
    @Import(name="transformation")
    private @Nullable Output transformation;

    /**
     * @return Indicates the query and the number of streaming units to use for the streaming job. The name property of the transformation is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
     * 
     */
    public Optional> transformation() {
        return Optional.ofNullable(this.transformation);
    }

    private StreamingJobArgs() {}

    private StreamingJobArgs(StreamingJobArgs $) {
        this.cluster = $.cluster;
        this.compatibilityLevel = $.compatibilityLevel;
        this.contentStoragePolicy = $.contentStoragePolicy;
        this.dataLocale = $.dataLocale;
        this.eventsLateArrivalMaxDelayInSeconds = $.eventsLateArrivalMaxDelayInSeconds;
        this.eventsOutOfOrderMaxDelayInSeconds = $.eventsOutOfOrderMaxDelayInSeconds;
        this.eventsOutOfOrderPolicy = $.eventsOutOfOrderPolicy;
        this.functions = $.functions;
        this.identity = $.identity;
        this.inputs = $.inputs;
        this.jobName = $.jobName;
        this.jobStorageAccount = $.jobStorageAccount;
        this.jobType = $.jobType;
        this.location = $.location;
        this.outputErrorPolicy = $.outputErrorPolicy;
        this.outputStartMode = $.outputStartMode;
        this.outputStartTime = $.outputStartTime;
        this.outputs = $.outputs;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
        this.transformation = $.transformation;
    }

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

    public static final class Builder {
        private StreamingJobArgs $;

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

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

        /**
         * @param cluster The cluster which streaming jobs will run on.
         * 
         * @return builder
         * 
         */
        public Builder cluster(@Nullable Output cluster) {
            $.cluster = cluster;
            return this;
        }

        /**
         * @param cluster The cluster which streaming jobs will run on.
         * 
         * @return builder
         * 
         */
        public Builder cluster(ClusterInfoArgs cluster) {
            return cluster(Output.of(cluster));
        }

        /**
         * @param compatibilityLevel Controls certain runtime behaviors of the streaming job.
         * 
         * @return builder
         * 
         */
        public Builder compatibilityLevel(@Nullable Output> compatibilityLevel) {
            $.compatibilityLevel = compatibilityLevel;
            return this;
        }

        /**
         * @param compatibilityLevel Controls certain runtime behaviors of the streaming job.
         * 
         * @return builder
         * 
         */
        public Builder compatibilityLevel(Either compatibilityLevel) {
            return compatibilityLevel(Output.of(compatibilityLevel));
        }

        /**
         * @param compatibilityLevel Controls certain runtime behaviors of the streaming job.
         * 
         * @return builder
         * 
         */
        public Builder compatibilityLevel(String compatibilityLevel) {
            return compatibilityLevel(Either.ofLeft(compatibilityLevel));
        }

        /**
         * @param compatibilityLevel Controls certain runtime behaviors of the streaming job.
         * 
         * @return builder
         * 
         */
        public Builder compatibilityLevel(CompatibilityLevel compatibilityLevel) {
            return compatibilityLevel(Either.ofRight(compatibilityLevel));
        }

        /**
         * @param contentStoragePolicy Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
         * 
         * @return builder
         * 
         */
        public Builder contentStoragePolicy(@Nullable Output> contentStoragePolicy) {
            $.contentStoragePolicy = contentStoragePolicy;
            return this;
        }

        /**
         * @param contentStoragePolicy Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
         * 
         * @return builder
         * 
         */
        public Builder contentStoragePolicy(Either contentStoragePolicy) {
            return contentStoragePolicy(Output.of(contentStoragePolicy));
        }

        /**
         * @param contentStoragePolicy Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
         * 
         * @return builder
         * 
         */
        public Builder contentStoragePolicy(String contentStoragePolicy) {
            return contentStoragePolicy(Either.ofLeft(contentStoragePolicy));
        }

        /**
         * @param contentStoragePolicy Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
         * 
         * @return builder
         * 
         */
        public Builder contentStoragePolicy(ContentStoragePolicy contentStoragePolicy) {
            return contentStoragePolicy(Either.ofRight(contentStoragePolicy));
        }

        /**
         * @param dataLocale The data locale of the stream analytics job. Value should be the name of a supported .NET Culture from the set https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx. Defaults to 'en-US' if none specified.
         * 
         * @return builder
         * 
         */
        public Builder dataLocale(@Nullable Output dataLocale) {
            $.dataLocale = dataLocale;
            return this;
        }

        /**
         * @param dataLocale The data locale of the stream analytics job. Value should be the name of a supported .NET Culture from the set https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx. Defaults to 'en-US' if none specified.
         * 
         * @return builder
         * 
         */
        public Builder dataLocale(String dataLocale) {
            return dataLocale(Output.of(dataLocale));
        }

        /**
         * @param eventsLateArrivalMaxDelayInSeconds The maximum tolerable delay in seconds where events arriving late could be included.  Supported range is -1 to 1814399 (20.23:59:59 days) and -1 is used to specify wait indefinitely. If the property is absent, it is interpreted to have a value of -1.
         * 
         * @return builder
         * 
         */
        public Builder eventsLateArrivalMaxDelayInSeconds(@Nullable Output eventsLateArrivalMaxDelayInSeconds) {
            $.eventsLateArrivalMaxDelayInSeconds = eventsLateArrivalMaxDelayInSeconds;
            return this;
        }

        /**
         * @param eventsLateArrivalMaxDelayInSeconds The maximum tolerable delay in seconds where events arriving late could be included.  Supported range is -1 to 1814399 (20.23:59:59 days) and -1 is used to specify wait indefinitely. If the property is absent, it is interpreted to have a value of -1.
         * 
         * @return builder
         * 
         */
        public Builder eventsLateArrivalMaxDelayInSeconds(Integer eventsLateArrivalMaxDelayInSeconds) {
            return eventsLateArrivalMaxDelayInSeconds(Output.of(eventsLateArrivalMaxDelayInSeconds));
        }

        /**
         * @param eventsOutOfOrderMaxDelayInSeconds The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
         * 
         * @return builder
         * 
         */
        public Builder eventsOutOfOrderMaxDelayInSeconds(@Nullable Output eventsOutOfOrderMaxDelayInSeconds) {
            $.eventsOutOfOrderMaxDelayInSeconds = eventsOutOfOrderMaxDelayInSeconds;
            return this;
        }

        /**
         * @param eventsOutOfOrderMaxDelayInSeconds The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
         * 
         * @return builder
         * 
         */
        public Builder eventsOutOfOrderMaxDelayInSeconds(Integer eventsOutOfOrderMaxDelayInSeconds) {
            return eventsOutOfOrderMaxDelayInSeconds(Output.of(eventsOutOfOrderMaxDelayInSeconds));
        }

        /**
         * @param eventsOutOfOrderPolicy Indicates the policy to apply to events that arrive out of order in the input event stream.
         * 
         * @return builder
         * 
         */
        public Builder eventsOutOfOrderPolicy(@Nullable Output> eventsOutOfOrderPolicy) {
            $.eventsOutOfOrderPolicy = eventsOutOfOrderPolicy;
            return this;
        }

        /**
         * @param eventsOutOfOrderPolicy Indicates the policy to apply to events that arrive out of order in the input event stream.
         * 
         * @return builder
         * 
         */
        public Builder eventsOutOfOrderPolicy(Either eventsOutOfOrderPolicy) {
            return eventsOutOfOrderPolicy(Output.of(eventsOutOfOrderPolicy));
        }

        /**
         * @param eventsOutOfOrderPolicy Indicates the policy to apply to events that arrive out of order in the input event stream.
         * 
         * @return builder
         * 
         */
        public Builder eventsOutOfOrderPolicy(String eventsOutOfOrderPolicy) {
            return eventsOutOfOrderPolicy(Either.ofLeft(eventsOutOfOrderPolicy));
        }

        /**
         * @param eventsOutOfOrderPolicy Indicates the policy to apply to events that arrive out of order in the input event stream.
         * 
         * @return builder
         * 
         */
        public Builder eventsOutOfOrderPolicy(EventsOutOfOrderPolicy eventsOutOfOrderPolicy) {
            return eventsOutOfOrderPolicy(Either.ofRight(eventsOutOfOrderPolicy));
        }

        /**
         * @param functions A list of one or more functions for the streaming job. The name property for each function is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
         * 
         * @return builder
         * 
         */
        public Builder functions(@Nullable Output> functions) {
            $.functions = functions;
            return this;
        }

        /**
         * @param functions A list of one or more functions for the streaming job. The name property for each function is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
         * 
         * @return builder
         * 
         */
        public Builder functions(List functions) {
            return functions(Output.of(functions));
        }

        /**
         * @param functions A list of one or more functions for the streaming job. The name property for each function is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
         * 
         * @return builder
         * 
         */
        public Builder functions(FunctionArgs... functions) {
            return functions(List.of(functions));
        }

        /**
         * @param identity Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
         * 
         * @return builder
         * 
         */
        public Builder identity(IdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param inputs A list of one or more inputs to the streaming job. The name property for each input is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual input.
         * 
         * @return builder
         * 
         */
        public Builder inputs(@Nullable Output> inputs) {
            $.inputs = inputs;
            return this;
        }

        /**
         * @param inputs A list of one or more inputs to the streaming job. The name property for each input is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual input.
         * 
         * @return builder
         * 
         */
        public Builder inputs(List inputs) {
            return inputs(Output.of(inputs));
        }

        /**
         * @param inputs A list of one or more inputs to the streaming job. The name property for each input is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual input.
         * 
         * @return builder
         * 
         */
        public Builder inputs(InputArgs... inputs) {
            return inputs(List.of(inputs));
        }

        /**
         * @param jobName The name of the streaming job.
         * 
         * @return builder
         * 
         */
        public Builder jobName(@Nullable Output jobName) {
            $.jobName = jobName;
            return this;
        }

        /**
         * @param jobName The name of the streaming job.
         * 
         * @return builder
         * 
         */
        public Builder jobName(String jobName) {
            return jobName(Output.of(jobName));
        }

        /**
         * @param jobStorageAccount The properties that are associated with an Azure Storage account with MSI
         * 
         * @return builder
         * 
         */
        public Builder jobStorageAccount(@Nullable Output jobStorageAccount) {
            $.jobStorageAccount = jobStorageAccount;
            return this;
        }

        /**
         * @param jobStorageAccount The properties that are associated with an Azure Storage account with MSI
         * 
         * @return builder
         * 
         */
        public Builder jobStorageAccount(JobStorageAccountArgs jobStorageAccount) {
            return jobStorageAccount(Output.of(jobStorageAccount));
        }

        /**
         * @param jobType Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
         * 
         * @return builder
         * 
         */
        public Builder jobType(@Nullable Output> jobType) {
            $.jobType = jobType;
            return this;
        }

        /**
         * @param jobType Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
         * 
         * @return builder
         * 
         */
        public Builder jobType(Either jobType) {
            return jobType(Output.of(jobType));
        }

        /**
         * @param jobType Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
         * 
         * @return builder
         * 
         */
        public Builder jobType(String jobType) {
            return jobType(Either.ofLeft(jobType));
        }

        /**
         * @param jobType Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
         * 
         * @return builder
         * 
         */
        public Builder jobType(JobType jobType) {
            return jobType(Either.ofRight(jobType));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param outputErrorPolicy Indicates the policy to apply to events that arrive at the output and cannot be written to the external storage due to being malformed (missing column values, column values of wrong type or size).
         * 
         * @return builder
         * 
         */
        public Builder outputErrorPolicy(@Nullable Output> outputErrorPolicy) {
            $.outputErrorPolicy = outputErrorPolicy;
            return this;
        }

        /**
         * @param outputErrorPolicy Indicates the policy to apply to events that arrive at the output and cannot be written to the external storage due to being malformed (missing column values, column values of wrong type or size).
         * 
         * @return builder
         * 
         */
        public Builder outputErrorPolicy(Either outputErrorPolicy) {
            return outputErrorPolicy(Output.of(outputErrorPolicy));
        }

        /**
         * @param outputErrorPolicy Indicates the policy to apply to events that arrive at the output and cannot be written to the external storage due to being malformed (missing column values, column values of wrong type or size).
         * 
         * @return builder
         * 
         */
        public Builder outputErrorPolicy(String outputErrorPolicy) {
            return outputErrorPolicy(Either.ofLeft(outputErrorPolicy));
        }

        /**
         * @param outputErrorPolicy Indicates the policy to apply to events that arrive at the output and cannot be written to the external storage due to being malformed (missing column values, column values of wrong type or size).
         * 
         * @return builder
         * 
         */
        public Builder outputErrorPolicy(OutputErrorPolicy outputErrorPolicy) {
            return outputErrorPolicy(Either.ofRight(outputErrorPolicy));
        }

        /**
         * @param outputStartMode This property should only be utilized when it is desired that the job be started immediately upon creation. Value may be JobStartTime, CustomTime, or LastOutputEventTime to indicate whether the starting point of the output event stream should start whenever the job is started, start at a custom user time stamp specified via the outputStartTime property, or start from the last event output time.
         * 
         * @return builder
         * 
         */
        public Builder outputStartMode(@Nullable Output> outputStartMode) {
            $.outputStartMode = outputStartMode;
            return this;
        }

        /**
         * @param outputStartMode This property should only be utilized when it is desired that the job be started immediately upon creation. Value may be JobStartTime, CustomTime, or LastOutputEventTime to indicate whether the starting point of the output event stream should start whenever the job is started, start at a custom user time stamp specified via the outputStartTime property, or start from the last event output time.
         * 
         * @return builder
         * 
         */
        public Builder outputStartMode(Either outputStartMode) {
            return outputStartMode(Output.of(outputStartMode));
        }

        /**
         * @param outputStartMode This property should only be utilized when it is desired that the job be started immediately upon creation. Value may be JobStartTime, CustomTime, or LastOutputEventTime to indicate whether the starting point of the output event stream should start whenever the job is started, start at a custom user time stamp specified via the outputStartTime property, or start from the last event output time.
         * 
         * @return builder
         * 
         */
        public Builder outputStartMode(String outputStartMode) {
            return outputStartMode(Either.ofLeft(outputStartMode));
        }

        /**
         * @param outputStartMode This property should only be utilized when it is desired that the job be started immediately upon creation. Value may be JobStartTime, CustomTime, or LastOutputEventTime to indicate whether the starting point of the output event stream should start whenever the job is started, start at a custom user time stamp specified via the outputStartTime property, or start from the last event output time.
         * 
         * @return builder
         * 
         */
        public Builder outputStartMode(OutputStartMode outputStartMode) {
            return outputStartMode(Either.ofRight(outputStartMode));
        }

        /**
         * @param outputStartTime Value is either an ISO-8601 formatted time stamp that indicates the starting point of the output event stream, or null to indicate that the output event stream will start whenever the streaming job is started. This property must have a value if outputStartMode is set to CustomTime.
         * 
         * @return builder
         * 
         */
        public Builder outputStartTime(@Nullable Output outputStartTime) {
            $.outputStartTime = outputStartTime;
            return this;
        }

        /**
         * @param outputStartTime Value is either an ISO-8601 formatted time stamp that indicates the starting point of the output event stream, or null to indicate that the output event stream will start whenever the streaming job is started. This property must have a value if outputStartMode is set to CustomTime.
         * 
         * @return builder
         * 
         */
        public Builder outputStartTime(String outputStartTime) {
            return outputStartTime(Output.of(outputStartTime));
        }

        /**
         * @param outputs A list of one or more outputs for the streaming job. The name property for each output is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual output.
         * 
         * @return builder
         * 
         */
        public Builder outputs(@Nullable Output> outputs) {
            $.outputs = outputs;
            return this;
        }

        /**
         * @param outputs A list of one or more outputs for the streaming job. The name property for each output is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual output.
         * 
         * @return builder
         * 
         */
        public Builder outputs(List outputs) {
            return outputs(Output.of(outputs));
        }

        /**
         * @param outputs A list of one or more outputs for the streaming job. The name property for each output is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual output.
         * 
         * @return builder
         * 
         */
        public Builder outputs(OutputArgs... outputs) {
            return outputs(List.of(outputs));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param sku Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

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

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param transformation Indicates the query and the number of streaming units to use for the streaming job. The name property of the transformation is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
         * 
         * @return builder
         * 
         */
        public Builder transformation(@Nullable Output transformation) {
            $.transformation = transformation;
            return this;
        }

        /**
         * @param transformation Indicates the query and the number of streaming units to use for the streaming job. The name property of the transformation is required when specifying this property in a PUT request. This property cannot be modify via a PATCH operation. You must use the PATCH API available for the individual transformation.
         * 
         * @return builder
         * 
         */
        public Builder transformation(TransformationArgs transformation) {
            return transformation(Output.of(transformation));
        }

        public StreamingJobArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("StreamingJobArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy