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

com.pulumi.azurenative.streamanalytics.kotlin.StreamingJobArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.streamanalytics.kotlin

import com.pulumi.azurenative.streamanalytics.StreamingJobArgs.builder
import com.pulumi.azurenative.streamanalytics.kotlin.enums.CompatibilityLevel
import com.pulumi.azurenative.streamanalytics.kotlin.enums.ContentStoragePolicy
import com.pulumi.azurenative.streamanalytics.kotlin.enums.EventsOutOfOrderPolicy
import com.pulumi.azurenative.streamanalytics.kotlin.enums.JobType
import com.pulumi.azurenative.streamanalytics.kotlin.enums.OutputErrorPolicy
import com.pulumi.azurenative.streamanalytics.kotlin.enums.OutputStartMode
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.ClusterInfoArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.ClusterInfoArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.FunctionArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.FunctionArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.IdentityArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.IdentityArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.InputArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.InputArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.JobStorageAccountArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.JobStorageAccountArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.OutputArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.OutputArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.SkuArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.SkuArgsBuilder
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.TransformationArgs
import com.pulumi.azurenative.streamanalytics.kotlin.inputs.TransformationArgsBuilder
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * A streaming job object, containing all information associated with the named streaming job.
 * Azure REST API version: 2020-03-01. Prior API version in Azure Native 1.x: 2016-03-01.
 * Other available API versions: 2017-04-01-preview, 2021-10-01-preview.
 * ## Example Usage
 * ### Create a complete streaming job (a streaming job with a transformation, at least 1 input and at least 1 output)
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var streamingJob = new AzureNative.StreamAnalytics.StreamingJob("streamingJob", new()
 *     {
 *         CompatibilityLevel = AzureNative.StreamAnalytics.CompatibilityLevel.CompatibilityLevel_1_0,
 *         DataLocale = "en-US",
 *         EventsLateArrivalMaxDelayInSeconds = 5,
 *         EventsOutOfOrderMaxDelayInSeconds = 0,
 *         EventsOutOfOrderPolicy = AzureNative.StreamAnalytics.EventsOutOfOrderPolicy.Drop,
 *         Functions = new[] {},
 *         Inputs = new[]
 *         {
 *             new AzureNative.StreamAnalytics.Inputs.InputArgs
 *             {
 *                 Name = "inputtest",
 *                 Properties = new AzureNative.StreamAnalytics.Inputs.StreamInputPropertiesArgs
 *                 {
 *                     Datasource = new AzureNative.StreamAnalytics.Inputs.BlobStreamInputDataSourceArgs
 *                     {
 *                         Container = "containerName",
 *                         PathPattern = "",
 *                         StorageAccounts = new[]
 *                         {
 *                             new AzureNative.StreamAnalytics.Inputs.StorageAccountArgs
 *                             {
 *                                 AccountKey = "yourAccountKey==",
 *                                 AccountName = "yourAccountName",
 *                             },
 *                         },
 *                         Type = "Microsoft.Storage/Blob",
 *                     },
 *                     Serialization = new AzureNative.StreamAnalytics.Inputs.JsonSerializationArgs
 *                     {
 *                         Encoding = AzureNative.StreamAnalytics.Encoding.UTF8,
 *                         Type = "Json",
 *                     },
 *                     Type = "Stream",
 *                 },
 *             },
 *         },
 *         JobName = "sj7804",
 *         Location = "West US",
 *         OutputErrorPolicy = AzureNative.StreamAnalytics.OutputErrorPolicy.Drop,
 *         Outputs = new[]
 *         {
 *             new AzureNative.StreamAnalytics.Inputs.OutputArgs
 *             {
 *                 Datasource = new AzureNative.StreamAnalytics.Inputs.AzureSqlDatabaseOutputDataSourceArgs
 *                 {
 *                     Database = "databaseName",
 *                     Password = "userPassword",
 *                     Server = "serverName",
 *                     Table = "tableName",
 *                     Type = "Microsoft.Sql/Server/Database",
 *                     User = "",
 *                 },
 *                 Name = "outputtest",
 *             },
 *         },
 *         ResourceGroupName = "sjrg3276",
 *         Sku = new AzureNative.StreamAnalytics.Inputs.SkuArgs
 *         {
 *             Name = AzureNative.StreamAnalytics.SkuName.Standard,
 *         },
 *         Tags =
 *         {
 *             { "key1", "value1" },
 *             { "key3", "value3" },
 *             { "randomKey", "randomValue" },
 *         },
 *         Transformation = new AzureNative.StreamAnalytics.Inputs.TransformationArgs
 *         {
 *             Name = "transformationtest",
 *             Query = "Select Id, Name from inputtest",
 *             StreamingUnits = 1,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	streamanalytics "github.com/pulumi/pulumi-azure-native-sdk/streamanalytics/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := streamanalytics.NewStreamingJob(ctx, "streamingJob", &streamanalytics.StreamingJobArgs{
 * 			CompatibilityLevel:                 pulumi.String(streamanalytics.CompatibilityLevel_1_0),
 * 			DataLocale:                         pulumi.String("en-US"),
 * 			EventsLateArrivalMaxDelayInSeconds: pulumi.Int(5),
 * 			EventsOutOfOrderMaxDelayInSeconds:  pulumi.Int(0),
 * 			EventsOutOfOrderPolicy:             pulumi.String(streamanalytics.EventsOutOfOrderPolicyDrop),
 * 			Functions:                          streamanalytics.FunctionTypeArray{},
 * 			Inputs: streamanalytics.InputTypeArray{
 * 				&streamanalytics.InputTypeArgs{
 * 					Name: pulumi.String("inputtest"),
 * 					Properties: streamanalytics.StreamInputProperties{
 * 						Datasource: streamanalytics.BlobStreamInputDataSource{
 * 							Container:   "containerName",
 * 							PathPattern: "",
 * 							StorageAccounts: []streamanalytics.StorageAccount{
 * 								{
 * 									AccountKey:  "yourAccountKey==",
 * 									AccountName: "yourAccountName",
 * 								},
 * 							},
 * 							Type: "Microsoft.Storage/Blob",
 * 						},
 * 						Serialization: streamanalytics.JsonSerialization{
 * 							Encoding: streamanalytics.EncodingUTF8,
 * 							Type:     "Json",
 * 						},
 * 						Type: "Stream",
 * 					},
 * 				},
 * 			},
 * 			JobName:           pulumi.String("sj7804"),
 * 			Location:          pulumi.String("West US"),
 * 			OutputErrorPolicy: pulumi.String(streamanalytics.OutputErrorPolicyDrop),
 * 			Outputs: streamanalytics.OutputTypeArray{
 * 				&streamanalytics.OutputTypeArgs{
 * 					Datasource: streamanalytics.AzureSqlDatabaseOutputDataSource{
 * 						Database: "databaseName",
 * 						Password: "userPassword",
 * 						Server:   "serverName",
 * 						Table:    "tableName",
 * 						Type:     "Microsoft.Sql/Server/Database",
 * 						User:     "",
 * 					},
 * 					Name: pulumi.String("outputtest"),
 * 				},
 * 			},
 * 			ResourceGroupName: pulumi.String("sjrg3276"),
 * 			Sku: &streamanalytics.SkuArgs{
 * 				Name: pulumi.String(streamanalytics.SkuNameStandard),
 * 			},
 * 			Tags: pulumi.StringMap{
 * 				"key1":      pulumi.String("value1"),
 * 				"key3":      pulumi.String("value3"),
 * 				"randomKey": pulumi.String("randomValue"),
 * 			},
 * 			Transformation: &streamanalytics.TransformationArgs{
 * 				Name:           pulumi.String("transformationtest"),
 * 				Query:          pulumi.String("Select Id, Name from inputtest"),
 * 				StreamingUnits: pulumi.Int(1),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.streamanalytics.StreamingJob;
 * import com.pulumi.azurenative.streamanalytics.StreamingJobArgs;
 * import com.pulumi.azurenative.streamanalytics.inputs.InputArgs;
 * import com.pulumi.azurenative.streamanalytics.inputs.OutputArgs;
 * import com.pulumi.azurenative.streamanalytics.inputs.SkuArgs;
 * import com.pulumi.azurenative.streamanalytics.inputs.TransformationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var streamingJob = new StreamingJob("streamingJob", StreamingJobArgs.builder()
 *             .compatibilityLevel("1.0")
 *             .dataLocale("en-US")
 *             .eventsLateArrivalMaxDelayInSeconds(5)
 *             .eventsOutOfOrderMaxDelayInSeconds(0)
 *             .eventsOutOfOrderPolicy("Drop")
 *             .functions()
 *             .inputs(InputArgs.builder()
 *                 .name("inputtest")
 *                 .properties(StreamInputPropertiesArgs.builder()
 *                     .datasource(BlobStreamInputDataSourceArgs.builder()
 *                         .container("containerName")
 *                         .pathPattern("")
 *                         .storageAccounts(StorageAccountArgs.builder()
 *                             .accountKey("yourAccountKey==")
 *                             .accountName("yourAccountName")
 *                             .build())
 *                         .type("Microsoft.Storage/Blob")
 *                         .build())
 *                     .serialization(JsonSerializationArgs.builder()
 *                         .encoding("UTF8")
 *                         .type("Json")
 *                         .build())
 *                     .type("Stream")
 *                     .build())
 *                 .build())
 *             .jobName("sj7804")
 *             .location("West US")
 *             .outputErrorPolicy("Drop")
 *             .outputs(OutputArgs.builder()
 *                 .datasource(AzureDataLakeStoreOutputDataSourceArgs.builder()
 *                     .database("databaseName")
 *                     .password("userPassword")
 *                     .server("serverName")
 *                     .table("tableName")
 *                     .type("Microsoft.Sql/Server/Database")
 *                     .user("")
 *                     .build())
 *                 .name("outputtest")
 *                 .build())
 *             .resourceGroupName("sjrg3276")
 *             .sku(SkuArgs.builder()
 *                 .name("Standard")
 *                 .build())
 *             .tags(Map.ofEntries(
 *                 Map.entry("key1", "value1"),
 *                 Map.entry("key3", "value3"),
 *                 Map.entry("randomKey", "randomValue")
 *             ))
 *             .transformation(TransformationArgs.builder()
 *                 .name("transformationtest")
 *                 .query("Select Id, Name from inputtest")
 *                 .streamingUnits(1)
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ### Create a streaming job shell (a streaming job with no inputs, outputs, transformation, or functions)
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var streamingJob = new AzureNative.StreamAnalytics.StreamingJob("streamingJob", new()
 *     {
 *         CompatibilityLevel = AzureNative.StreamAnalytics.CompatibilityLevel.CompatibilityLevel_1_0,
 *         DataLocale = "en-US",
 *         EventsLateArrivalMaxDelayInSeconds = 16,
 *         EventsOutOfOrderMaxDelayInSeconds = 5,
 *         EventsOutOfOrderPolicy = AzureNative.StreamAnalytics.EventsOutOfOrderPolicy.Drop,
 *         Functions = new[] {},
 *         Inputs = new[] {},
 *         JobName = "sj59",
 *         Location = "West US",
 *         OutputErrorPolicy = AzureNative.StreamAnalytics.OutputErrorPolicy.Drop,
 *         Outputs = new[] {},
 *         ResourceGroupName = "sjrg6936",
 *         Sku = new AzureNative.StreamAnalytics.Inputs.SkuArgs
 *         {
 *             Name = AzureNative.StreamAnalytics.SkuName.Standard,
 *         },
 *         Tags =
 *         {
 *             { "key1", "value1" },
 *             { "key3", "value3" },
 *             { "randomKey", "randomValue" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	streamanalytics "github.com/pulumi/pulumi-azure-native-sdk/streamanalytics/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := streamanalytics.NewStreamingJob(ctx, "streamingJob", &streamanalytics.StreamingJobArgs{
 * 			CompatibilityLevel:                 pulumi.String(streamanalytics.CompatibilityLevel_1_0),
 * 			DataLocale:                         pulumi.String("en-US"),
 * 			EventsLateArrivalMaxDelayInSeconds: pulumi.Int(16),
 * 			EventsOutOfOrderMaxDelayInSeconds:  pulumi.Int(5),
 * 			EventsOutOfOrderPolicy:             pulumi.String(streamanalytics.EventsOutOfOrderPolicyDrop),
 * 			Functions:                          streamanalytics.FunctionTypeArray{},
 * 			Inputs:                             streamanalytics.InputTypeArray{},
 * 			JobName:                            pulumi.String("sj59"),
 * 			Location:                           pulumi.String("West US"),
 * 			OutputErrorPolicy:                  pulumi.String(streamanalytics.OutputErrorPolicyDrop),
 * 			Outputs:                            streamanalytics.OutputTypeArray{},
 * 			ResourceGroupName:                  pulumi.String("sjrg6936"),
 * 			Sku: &streamanalytics.SkuArgs{
 * 				Name: pulumi.String(streamanalytics.SkuNameStandard),
 * 			},
 * 			Tags: pulumi.StringMap{
 * 				"key1":      pulumi.String("value1"),
 * 				"key3":      pulumi.String("value3"),
 * 				"randomKey": pulumi.String("randomValue"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.streamanalytics.StreamingJob;
 * import com.pulumi.azurenative.streamanalytics.StreamingJobArgs;
 * import com.pulumi.azurenative.streamanalytics.inputs.SkuArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var streamingJob = new StreamingJob("streamingJob", StreamingJobArgs.builder()
 *             .compatibilityLevel("1.0")
 *             .dataLocale("en-US")
 *             .eventsLateArrivalMaxDelayInSeconds(16)
 *             .eventsOutOfOrderMaxDelayInSeconds(5)
 *             .eventsOutOfOrderPolicy("Drop")
 *             .functions()
 *             .inputs()
 *             .jobName("sj59")
 *             .location("West US")
 *             .outputErrorPolicy("Drop")
 *             .outputs()
 *             .resourceGroupName("sjrg6936")
 *             .sku(SkuArgs.builder()
 *                 .name("Standard")
 *                 .build())
 *             .tags(Map.ofEntries(
 *                 Map.entry("key1", "value1"),
 *                 Map.entry("key3", "value3"),
 *                 Map.entry("randomKey", "randomValue")
 *             ))
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:streamanalytics:StreamingJob sj59 /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StreamAnalytics/streamingjobs/{jobName}
 * ```
 * @property cluster The cluster which streaming jobs will run on.
 * @property compatibilityLevel Controls certain runtime behaviors of the streaming job.
 * @property contentStoragePolicy Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
 * @property 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.
 * @property 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.
 * @property eventsOutOfOrderMaxDelayInSeconds The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
 * @property eventsOutOfOrderPolicy Indicates the policy to apply to events that arrive out of order in the input event stream.
 * @property 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.
 * @property identity Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
 * @property 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.
 * @property jobName The name of the streaming job.
 * @property jobStorageAccount The properties that are associated with an Azure Storage account with MSI
 * @property jobType Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
 * @property location The geo-location where the resource lives
 * @property 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).
 * @property 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.
 * @property 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.
 * @property 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.
 * @property resourceGroupName The name of the resource group. The name is case insensitive.
 * @property sku Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
 * @property tags Resource tags.
 * @property 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.
 */
public data class StreamingJobArgs(
    public val cluster: Output? = null,
    public val compatibilityLevel: Output>? = null,
    public val contentStoragePolicy: Output>? = null,
    public val dataLocale: Output? = null,
    public val eventsLateArrivalMaxDelayInSeconds: Output? = null,
    public val eventsOutOfOrderMaxDelayInSeconds: Output? = null,
    public val eventsOutOfOrderPolicy: Output>? = null,
    public val functions: Output>? = null,
    public val identity: Output? = null,
    public val inputs: Output>? = null,
    public val jobName: Output? = null,
    public val jobStorageAccount: Output? = null,
    public val jobType: Output>? = null,
    public val location: Output? = null,
    public val outputErrorPolicy: Output>? = null,
    public val outputStartMode: Output>? = null,
    public val outputStartTime: Output? = null,
    public val outputs: Output>? = null,
    public val resourceGroupName: Output? = null,
    public val sku: Output? = null,
    public val tags: Output>? = null,
    public val transformation: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.streamanalytics.StreamingJobArgs =
        com.pulumi.azurenative.streamanalytics.StreamingJobArgs.builder()
            .cluster(cluster?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .compatibilityLevel(
                compatibilityLevel?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .contentStoragePolicy(
                contentStoragePolicy?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .dataLocale(dataLocale?.applyValue({ args0 -> args0 }))
            .eventsLateArrivalMaxDelayInSeconds(
                eventsLateArrivalMaxDelayInSeconds?.applyValue({ args0 ->
                    args0
                }),
            )
            .eventsOutOfOrderMaxDelayInSeconds(
                eventsOutOfOrderMaxDelayInSeconds?.applyValue({ args0 ->
                    args0
                }),
            )
            .eventsOutOfOrderPolicy(
                eventsOutOfOrderPolicy?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .functions(
                functions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .inputs(inputs?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .jobName(jobName?.applyValue({ args0 -> args0 }))
            .jobStorageAccount(jobStorageAccount?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .jobType(
                jobType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .location(location?.applyValue({ args0 -> args0 }))
            .outputErrorPolicy(
                outputErrorPolicy?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .outputStartMode(
                outputStartMode?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .outputStartTime(outputStartTime?.applyValue({ args0 -> args0 }))
            .outputs(
                outputs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .sku(sku?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .transformation(
                transformation?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [StreamingJobArgs].
 */
@PulumiTagMarker
public class StreamingJobArgsBuilder internal constructor() {
    private var cluster: Output? = null

    private var compatibilityLevel: Output>? = null

    private var contentStoragePolicy: Output>? = null

    private var dataLocale: Output? = null

    private var eventsLateArrivalMaxDelayInSeconds: Output? = null

    private var eventsOutOfOrderMaxDelayInSeconds: Output? = null

    private var eventsOutOfOrderPolicy: Output>? = null

    private var functions: Output>? = null

    private var identity: Output? = null

    private var inputs: Output>? = null

    private var jobName: Output? = null

    private var jobStorageAccount: Output? = null

    private var jobType: Output>? = null

    private var location: Output? = null

    private var outputErrorPolicy: Output>? = null

    private var outputStartMode: Output>? = null

    private var outputStartTime: Output? = null

    private var outputs: Output>? = null

    private var resourceGroupName: Output? = null

    private var sku: Output? = null

    private var tags: Output>? = null

    private var transformation: Output? = null

    /**
     * @param value The cluster which streaming jobs will run on.
     */
    @JvmName("irgwvdilgygscogc")
    public suspend fun cluster(`value`: Output) {
        this.cluster = value
    }

    /**
     * @param value Controls certain runtime behaviors of the streaming job.
     */
    @JvmName("qmareixredosvfpe")
    public suspend fun compatibilityLevel(`value`: Output>) {
        this.compatibilityLevel = value
    }

    /**
     * @param value Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
     */
    @JvmName("jytgnkadvimbtnfp")
    public suspend fun contentStoragePolicy(`value`: Output>) {
        this.contentStoragePolicy = value
    }

    /**
     * @param value 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.
     */
    @JvmName("barauapoekjrawiw")
    public suspend fun dataLocale(`value`: Output) {
        this.dataLocale = value
    }

    /**
     * @param value 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.
     */
    @JvmName("twqygltufqsjfrhk")
    public suspend fun eventsLateArrivalMaxDelayInSeconds(`value`: Output) {
        this.eventsLateArrivalMaxDelayInSeconds = value
    }

    /**
     * @param value The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
     */
    @JvmName("qndvxjuvmaimcwii")
    public suspend fun eventsOutOfOrderMaxDelayInSeconds(`value`: Output) {
        this.eventsOutOfOrderMaxDelayInSeconds = value
    }

    /**
     * @param value Indicates the policy to apply to events that arrive out of order in the input event stream.
     */
    @JvmName("gfxubhyajpowmcxu")
    public suspend fun eventsOutOfOrderPolicy(`value`: Output>) {
        this.eventsOutOfOrderPolicy = value
    }

    /**
     * @param value 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.
     */
    @JvmName("qffwlfuqyyhdgann")
    public suspend fun functions(`value`: Output>) {
        this.functions = value
    }

    @JvmName("uaukucrnkgnfjyov")
    public suspend fun functions(vararg values: Output) {
        this.functions = Output.all(values.asList())
    }

    /**
     * @param values 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.
     */
    @JvmName("rjwngdpwxsdgdepj")
    public suspend fun functions(values: List>) {
        this.functions = Output.all(values)
    }

    /**
     * @param value Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
     */
    @JvmName("mvahdrlcnwhextlu")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value 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.
     */
    @JvmName("pnxnnwimmnrvsrfp")
    public suspend fun inputs(`value`: Output>) {
        this.inputs = value
    }

    @JvmName("btujrqnxqomfjwqo")
    public suspend fun inputs(vararg values: Output) {
        this.inputs = Output.all(values.asList())
    }

    /**
     * @param values 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.
     */
    @JvmName("ntdqkghxwqthiude")
    public suspend fun inputs(values: List>) {
        this.inputs = Output.all(values)
    }

    /**
     * @param value The name of the streaming job.
     */
    @JvmName("urwrbdmgklatuuif")
    public suspend fun jobName(`value`: Output) {
        this.jobName = value
    }

    /**
     * @param value The properties that are associated with an Azure Storage account with MSI
     */
    @JvmName("niwiyernvfexdplg")
    public suspend fun jobStorageAccount(`value`: Output) {
        this.jobStorageAccount = value
    }

    /**
     * @param value Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
     */
    @JvmName("djxcywkbhuticwnv")
    public suspend fun jobType(`value`: Output>) {
        this.jobType = value
    }

    /**
     * @param value The geo-location where the resource lives
     */
    @JvmName("yolvajpckhiurdui")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value 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).
     */
    @JvmName("vvufratgnbamwamo")
    public suspend fun outputErrorPolicy(`value`: Output>) {
        this.outputErrorPolicy = value
    }

    /**
     * @param value 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.
     */
    @JvmName("bhynmmltftlvqame")
    public suspend fun outputStartMode(`value`: Output>) {
        this.outputStartMode = value
    }

    /**
     * @param value 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.
     */
    @JvmName("nmkpteekqspkojoq")
    public suspend fun outputStartTime(`value`: Output) {
        this.outputStartTime = value
    }

    /**
     * @param value 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.
     */
    @JvmName("dvvcdriqlprtpnkx")
    public suspend fun outputs(`value`: Output>) {
        this.outputs = value
    }

    @JvmName("ibemgjgxkjmykigu")
    public suspend fun outputs(vararg values: Output) {
        this.outputs = Output.all(values.asList())
    }

    /**
     * @param values 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.
     */
    @JvmName("oddovqldqjbifjfu")
    public suspend fun outputs(values: List>) {
        this.outputs = Output.all(values)
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("hodfejumysurnwwd")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
     */
    @JvmName("npakithdkprulrtq")
    public suspend fun sku(`value`: Output) {
        this.sku = value
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("vrmetnsswyxxrwcg")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value 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.
     */
    @JvmName("uxlesqkwdqarkowt")
    public suspend fun transformation(`value`: Output) {
        this.transformation = value
    }

    /**
     * @param value The cluster which streaming jobs will run on.
     */
    @JvmName("dqwbispwyviegxqn")
    public suspend fun cluster(`value`: ClusterInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cluster = mapped
    }

    /**
     * @param argument The cluster which streaming jobs will run on.
     */
    @JvmName("ywcbckysahdblmln")
    public suspend fun cluster(argument: suspend ClusterInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cluster = mapped
    }

    /**
     * @param value Controls certain runtime behaviors of the streaming job.
     */
    @JvmName("ffxyqmcfeutidwqd")
    public suspend fun compatibilityLevel(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compatibilityLevel = mapped
    }

    /**
     * @param value Controls certain runtime behaviors of the streaming job.
     */
    @JvmName("gsjnkqpspjuxkemv")
    public fun compatibilityLevel(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.compatibilityLevel = mapped
    }

    /**
     * @param value Controls certain runtime behaviors of the streaming job.
     */
    @JvmName("qetaqguxwdyagjsw")
    public fun compatibilityLevel(`value`: CompatibilityLevel) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.compatibilityLevel = mapped
    }

    /**
     * @param value Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
     */
    @JvmName("chrlrdepaanrueme")
    public suspend fun contentStoragePolicy(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.contentStoragePolicy = mapped
    }

    /**
     * @param value Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
     */
    @JvmName("fqnvoasatciyiudt")
    public fun contentStoragePolicy(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.contentStoragePolicy = mapped
    }

    /**
     * @param value Valid values are JobStorageAccount and SystemAccount. If set to JobStorageAccount, this requires the user to also specify jobStorageAccount property. .
     */
    @JvmName("psqyojdwfvbmdrmi")
    public fun contentStoragePolicy(`value`: ContentStoragePolicy) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.contentStoragePolicy = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("nqufvgocdgybwbnt")
    public suspend fun dataLocale(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataLocale = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("spraiuimihpsgvqa")
    public suspend fun eventsLateArrivalMaxDelayInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventsLateArrivalMaxDelayInSeconds = mapped
    }

    /**
     * @param value The maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order.
     */
    @JvmName("xhyjoucjdcvucyts")
    public suspend fun eventsOutOfOrderMaxDelayInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventsOutOfOrderMaxDelayInSeconds = mapped
    }

    /**
     * @param value Indicates the policy to apply to events that arrive out of order in the input event stream.
     */
    @JvmName("wvliesnkoovhxcdg")
    public suspend fun eventsOutOfOrderPolicy(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventsOutOfOrderPolicy = mapped
    }

    /**
     * @param value Indicates the policy to apply to events that arrive out of order in the input event stream.
     */
    @JvmName("bngisifhswmbkemu")
    public fun eventsOutOfOrderPolicy(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.eventsOutOfOrderPolicy = mapped
    }

    /**
     * @param value Indicates the policy to apply to events that arrive out of order in the input event stream.
     */
    @JvmName("chpiysxwfpjnugwi")
    public fun eventsOutOfOrderPolicy(`value`: EventsOutOfOrderPolicy) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.eventsOutOfOrderPolicy = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("xvmqilcgncchdhaj")
    public suspend fun functions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.functions = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("ahjxxbtdvwiuxdtv")
    public suspend fun functions(argument: List Unit>) {
        val toBeMapped = argument.toList().map { FunctionArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.functions = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("hiblikwrkgyhcpmc")
    public suspend fun functions(vararg argument: suspend FunctionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { FunctionArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.functions = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("lnfbdkuiaifajgiw")
    public suspend fun functions(argument: suspend FunctionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(FunctionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.functions = mapped
    }

    /**
     * @param values 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.
     */
    @JvmName("mqvcqcscjmokoeuh")
    public suspend fun functions(vararg values: FunctionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.functions = mapped
    }

    /**
     * @param value Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
     */
    @JvmName("ndycygmvaofsoolq")
    public suspend fun identity(`value`: IdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument Describes the system-assigned managed identity assigned to this job that can be used to authenticate with inputs and outputs.
     */
    @JvmName("xlxsccixyxcmnrma")
    public suspend fun identity(argument: suspend IdentityArgsBuilder.() -> Unit) {
        val toBeMapped = IdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("lnhcnigxylkssexi")
    public suspend fun inputs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inputs = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("nshbphcqsnghcuty")
    public suspend fun inputs(argument: List Unit>) {
        val toBeMapped = argument.toList().map { InputArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.inputs = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("vkaefgsopfbctiir")
    public suspend fun inputs(vararg argument: suspend InputArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { InputArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.inputs = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("nnvgpdmtpywlvjya")
    public suspend fun inputs(argument: suspend InputArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(InputArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.inputs = mapped
    }

    /**
     * @param values 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.
     */
    @JvmName("ihutnypsrfbyuqqe")
    public suspend fun inputs(vararg values: InputArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inputs = mapped
    }

    /**
     * @param value The name of the streaming job.
     */
    @JvmName("ontclpfexajyetyx")
    public suspend fun jobName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jobName = mapped
    }

    /**
     * @param value The properties that are associated with an Azure Storage account with MSI
     */
    @JvmName("kutpcygnbvgrgjih")
    public suspend fun jobStorageAccount(`value`: JobStorageAccountArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jobStorageAccount = mapped
    }

    /**
     * @param argument The properties that are associated with an Azure Storage account with MSI
     */
    @JvmName("gjvugmpucunbsumn")
    public suspend fun jobStorageAccount(argument: suspend JobStorageAccountArgsBuilder.() -> Unit) {
        val toBeMapped = JobStorageAccountArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.jobStorageAccount = mapped
    }

    /**
     * @param value Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
     */
    @JvmName("ublqcqnfpxlmpmrl")
    public suspend fun jobType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jobType = mapped
    }

    /**
     * @param value Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
     */
    @JvmName("yxvbauynevcleuyj")
    public fun jobType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jobType = mapped
    }

    /**
     * @param value Describes the type of the job. Valid modes are `Cloud` and 'Edge'.
     */
    @JvmName("xfmdiotyopaigfub")
    public fun jobType(`value`: JobType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jobType = mapped
    }

    /**
     * @param value The geo-location where the resource lives
     */
    @JvmName("odsxllvoqbunwibo")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value 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).
     */
    @JvmName("pwchiuhxlrkgpaem")
    public suspend fun outputErrorPolicy(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputErrorPolicy = mapped
    }

    /**
     * @param value 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).
     */
    @JvmName("revceqdqivimdkaw")
    public fun outputErrorPolicy(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputErrorPolicy = mapped
    }

    /**
     * @param value 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).
     */
    @JvmName("kklrcefwcokwbavu")
    public fun outputErrorPolicy(`value`: OutputErrorPolicy) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputErrorPolicy = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("nvqecvphcpdixqcs")
    public suspend fun outputStartMode(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputStartMode = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("jxygsnjyiggrhulf")
    public fun outputStartMode(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputStartMode = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("nekgdgagknoqhfdk")
    public fun outputStartMode(`value`: OutputStartMode) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputStartMode = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("hvonfepkvygplmlr")
    public suspend fun outputStartTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputStartTime = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("bvqnqpxmuksdsvbt")
    public suspend fun outputs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputs = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("lexfqvevwkclxeja")
    public suspend fun outputs(argument: List Unit>) {
        val toBeMapped = argument.toList().map { OutputArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.outputs = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("inmwlxjdueglicmi")
    public suspend fun outputs(vararg argument: suspend OutputArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { OutputArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.outputs = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("rhprfkfwbcyivvgg")
    public suspend fun outputs(argument: suspend OutputArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(OutputArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.outputs = mapped
    }

    /**
     * @param values 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.
     */
    @JvmName("hjqntmrbnpgcqqcy")
    public suspend fun outputs(vararg values: OutputArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputs = mapped
    }

    /**
     * @param value The name of the resource group. The name is case insensitive.
     */
    @JvmName("qdewbogitgwncokm")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
     */
    @JvmName("foocqpsnykcudwbk")
    public suspend fun sku(`value`: SkuArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sku = mapped
    }

    /**
     * @param argument Describes the SKU of the streaming job. Required on PUT (CreateOrReplace) requests.
     */
    @JvmName("hduehdkwqobtyjsx")
    public suspend fun sku(argument: suspend SkuArgsBuilder.() -> Unit) {
        val toBeMapped = SkuArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sku = mapped
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("upnccauqtyqmpiej")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Resource tags.
     */
    @JvmName("icgvowxkvescgpww")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("ffpgncnckbjolrmn")
    public suspend fun transformation(`value`: TransformationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transformation = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("qytjmpqniidkweds")
    public suspend fun transformation(argument: suspend TransformationArgsBuilder.() -> Unit) {
        val toBeMapped = TransformationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.transformation = mapped
    }

    internal fun build(): StreamingJobArgs = StreamingJobArgs(
        cluster = cluster,
        compatibilityLevel = compatibilityLevel,
        contentStoragePolicy = contentStoragePolicy,
        dataLocale = dataLocale,
        eventsLateArrivalMaxDelayInSeconds = eventsLateArrivalMaxDelayInSeconds,
        eventsOutOfOrderMaxDelayInSeconds = eventsOutOfOrderMaxDelayInSeconds,
        eventsOutOfOrderPolicy = eventsOutOfOrderPolicy,
        functions = functions,
        identity = identity,
        inputs = inputs,
        jobName = jobName,
        jobStorageAccount = jobStorageAccount,
        jobType = jobType,
        location = location,
        outputErrorPolicy = outputErrorPolicy,
        outputStartMode = outputStartMode,
        outputStartTime = outputStartTime,
        outputs = outputs,
        resourceGroupName = resourceGroupName,
        sku = sku,
        tags = tags,
        transformation = transformation,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy