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

com.pulumi.azure.streamanalytics.kotlin.JobArgs.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: 6.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.streamanalytics.kotlin

import com.pulumi.azure.streamanalytics.JobArgs.builder
import com.pulumi.azure.streamanalytics.kotlin.inputs.JobIdentityArgs
import com.pulumi.azure.streamanalytics.kotlin.inputs.JobIdentityArgsBuilder
import com.pulumi.azure.streamanalytics.kotlin.inputs.JobJobStorageAccountArgs
import com.pulumi.azure.streamanalytics.kotlin.inputs.JobJobStorageAccountArgsBuilder
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

/**
 * Manages a Stream Analytics Job.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleJob = new azure.streamanalytics.Job("example", {
 *     name: "example-job",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     compatibilityLevel: "1.2",
 *     dataLocale: "en-GB",
 *     eventsLateArrivalMaxDelayInSeconds: 60,
 *     eventsOutOfOrderMaxDelayInSeconds: 50,
 *     eventsOutOfOrderPolicy: "Adjust",
 *     outputErrorPolicy: "Drop",
 *     streamingUnits: 3,
 *     tags: {
 *         environment: "Example",
 *     },
 *     transformationQuery: `    SELECT *
 *     INTO [YourOutputAlias]
 *     FROM [YourInputAlias]
 * `,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * example = azure.core.ResourceGroup("example",
 *     name="example-resources",
 *     location="West Europe")
 * example_job = azure.streamanalytics.Job("example",
 *     name="example-job",
 *     resource_group_name=example.name,
 *     location=example.location,
 *     compatibility_level="1.2",
 *     data_locale="en-GB",
 *     events_late_arrival_max_delay_in_seconds=60,
 *     events_out_of_order_max_delay_in_seconds=50,
 *     events_out_of_order_policy="Adjust",
 *     output_error_policy="Drop",
 *     streaming_units=3,
 *     tags={
 *         "environment": "Example",
 *     },
 *     transformation_query="""    SELECT *
 *     INTO [YourOutputAlias]
 *     FROM [YourInputAlias]
 * """)
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Azure = Pulumi.Azure;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Azure.Core.ResourceGroup("example", new()
 *     {
 *         Name = "example-resources",
 *         Location = "West Europe",
 *     });
 *     var exampleJob = new Azure.StreamAnalytics.Job("example", new()
 *     {
 *         Name = "example-job",
 *         ResourceGroupName = example.Name,
 *         Location = example.Location,
 *         CompatibilityLevel = "1.2",
 *         DataLocale = "en-GB",
 *         EventsLateArrivalMaxDelayInSeconds = 60,
 *         EventsOutOfOrderMaxDelayInSeconds = 50,
 *         EventsOutOfOrderPolicy = "Adjust",
 *         OutputErrorPolicy = "Drop",
 *         StreamingUnits = 3,
 *         Tags =
 *         {
 *             { "environment", "Example" },
 *         },
 *         TransformationQuery = @"    SELECT *
 *     INTO [YourOutputAlias]
 *     FROM [YourInputAlias]
 * ",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/streamanalytics"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
 * 			Name:     pulumi.String("example-resources"),
 * 			Location: pulumi.String("West Europe"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = streamanalytics.NewJob(ctx, "example", &streamanalytics.JobArgs{
 * 			Name:                               pulumi.String("example-job"),
 * 			ResourceGroupName:                  example.Name,
 * 			Location:                           example.Location,
 * 			CompatibilityLevel:                 pulumi.String("1.2"),
 * 			DataLocale:                         pulumi.String("en-GB"),
 * 			EventsLateArrivalMaxDelayInSeconds: pulumi.Int(60),
 * 			EventsOutOfOrderMaxDelayInSeconds:  pulumi.Int(50),
 * 			EventsOutOfOrderPolicy:             pulumi.String("Adjust"),
 * 			OutputErrorPolicy:                  pulumi.String("Drop"),
 * 			StreamingUnits:                     pulumi.Int(3),
 * 			Tags: pulumi.StringMap{
 * 				"environment": pulumi.String("Example"),
 * 			},
 * 			TransformationQuery: pulumi.String("    SELECT *\n    INTO [YourOutputAlias]\n    FROM [YourInputAlias]\n"),
 * 		})
 * 		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.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.streamanalytics.Job;
 * import com.pulumi.azure.streamanalytics.JobArgs;
 * 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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
 *             .name("example-resources")
 *             .location("West Europe")
 *             .build());
 *         var exampleJob = new Job("exampleJob", JobArgs.builder()
 *             .name("example-job")
 *             .resourceGroupName(example.name())
 *             .location(example.location())
 *             .compatibilityLevel("1.2")
 *             .dataLocale("en-GB")
 *             .eventsLateArrivalMaxDelayInSeconds(60)
 *             .eventsOutOfOrderMaxDelayInSeconds(50)
 *             .eventsOutOfOrderPolicy("Adjust")
 *             .outputErrorPolicy("Drop")
 *             .streamingUnits(3)
 *             .tags(Map.of("environment", "Example"))
 *             .transformationQuery("""
 *     SELECT *
 *     INTO [YourOutputAlias]
 *     FROM [YourInputAlias]
 *             """)
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: example-resources
 *       location: West Europe
 *   exampleJob:
 *     type: azure:streamanalytics:Job
 *     name: example
 *     properties:
 *       name: example-job
 *       resourceGroupName: ${example.name}
 *       location: ${example.location}
 *       compatibilityLevel: '1.2'
 *       dataLocale: en-GB
 *       eventsLateArrivalMaxDelayInSeconds: 60
 *       eventsOutOfOrderMaxDelayInSeconds: 50
 *       eventsOutOfOrderPolicy: Adjust
 *       outputErrorPolicy: Drop
 *       streamingUnits: 3
 *       tags:
 *         environment: Example
 *       transformationQuery: |2
 *             SELECT *
 *             INTO [YourOutputAlias]
 *             FROM [YourInputAlias]
 * ```
 * 
 * ## Import
 * Stream Analytics Job's can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:streamanalytics/job:Job example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StreamAnalytics/streamingJobs/job1
 * ```
 * @property compatibilityLevel Specifies the compatibility level for this job - which controls certain runtime behaviours of the streaming job. Possible values are `1.0`, `1.1` and `1.2`.
 * > **NOTE:** Support for Compatibility Level 1.2 is dependent on a new version of the Stream Analytics API, which [being tracked in this issue](https://github.com/Azure/azure-rest-api-specs/issues/5604).
 * @property contentStoragePolicy The policy for storing stream analytics content. Possible values are `JobStorageAccount`, `SystemAccount`. Defaults to `SystemAccount`.
 * @property dataLocale Specifies the Data Locale of the Job, which [should be a supported .NET Culture](https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx).
 * @property eventsLateArrivalMaxDelayInSeconds Specifies the maximum tolerable delay in seconds where events arriving late could be included. Supported range is `-1` (indefinite) to `1814399` (20d 23h 59m 59s). Default is `5`.
 * @property eventsOutOfOrderMaxDelayInSeconds Specifies the maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order. Supported range is `0` to `599` (9m 59s). Default is `0`.
 * @property eventsOutOfOrderPolicy Specifies the policy which should be applied to events which arrive out of order in the input event stream. Possible values are `Adjust` and `Drop`. Default is `Adjust`.
 * @property identity An `identity` block as defined below.
 * @property jobStorageAccounts The details of the job storage account. A `job_storage_account` block as defined below.
 * @property location The Azure Region in which the Resource Group exists. Changing this forces a new resource to be created.
 * @property name The name of the Stream Analytics Job. Changing this forces a new resource to be created.
 * @property outputErrorPolicy Specifies the policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size). Possible values are `Drop` and `Stop`. Default is `Drop`.
 * @property resourceGroupName The name of the Resource Group where the Stream Analytics Job should exist. Changing this forces a new resource to be created.
 * @property skuName The SKU Name to use for the Stream Analytics Job. Possible values are `Standard`, `StandardV2`. Defaults to `Standard`.
 * @property streamAnalyticsClusterId The ID of an existing Stream Analytics Cluster where the Stream Analytics Job should run.
 * @property streamingUnits Specifies the number of streaming units that the streaming job uses. Supported values are `1`, `3`, `6` and multiples of `6` up to `120`.
 * > **NOTE:** `streaming_units` must be set when `type` is `Cloud`.
 * @property tags
 * @property transformationQuery
 * @property type The type of the Stream Analytics Job. Possible values are `Cloud` and `Edge`. Defaults to `Cloud`. Changing this forces a new resource to be created.
 * > **NOTE:** `Edge` doesn't support `stream_analytics_cluster_id` and `streaming_units`.
 */
public data class JobArgs(
    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 identity: Output? = null,
    public val jobStorageAccounts: Output>? = null,
    public val location: Output? = null,
    public val name: Output? = null,
    public val outputErrorPolicy: Output? = null,
    public val resourceGroupName: Output? = null,
    public val skuName: Output? = null,
    public val streamAnalyticsClusterId: Output? = null,
    public val streamingUnits: Output? = null,
    public val tags: Output>? = null,
    public val transformationQuery: Output? = null,
    public val type: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.streamanalytics.JobArgs =
        com.pulumi.azure.streamanalytics.JobArgs.builder()
            .compatibilityLevel(compatibilityLevel?.applyValue({ args0 -> args0 }))
            .contentStoragePolicy(contentStoragePolicy?.applyValue({ args0 -> args0 }))
            .dataLocale(dataLocale?.applyValue({ args0 -> args0 }))
            .eventsLateArrivalMaxDelayInSeconds(
                eventsLateArrivalMaxDelayInSeconds?.applyValue({ args0 ->
                    args0
                }),
            )
            .eventsOutOfOrderMaxDelayInSeconds(
                eventsOutOfOrderMaxDelayInSeconds?.applyValue({ args0 ->
                    args0
                }),
            )
            .eventsOutOfOrderPolicy(eventsOutOfOrderPolicy?.applyValue({ args0 -> args0 }))
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .jobStorageAccounts(
                jobStorageAccounts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .location(location?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .outputErrorPolicy(outputErrorPolicy?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .skuName(skuName?.applyValue({ args0 -> args0 }))
            .streamAnalyticsClusterId(streamAnalyticsClusterId?.applyValue({ args0 -> args0 }))
            .streamingUnits(streamingUnits?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .transformationQuery(transformationQuery?.applyValue({ args0 -> args0 }))
            .type(type?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [JobArgs].
 */
@PulumiTagMarker
public class JobArgsBuilder internal constructor() {
    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 identity: Output? = null

    private var jobStorageAccounts: Output>? = null

    private var location: Output? = null

    private var name: Output? = null

    private var outputErrorPolicy: Output? = null

    private var resourceGroupName: Output? = null

    private var skuName: Output? = null

    private var streamAnalyticsClusterId: Output? = null

    private var streamingUnits: Output? = null

    private var tags: Output>? = null

    private var transformationQuery: Output? = null

    private var type: Output? = null

    /**
     * @param value Specifies the compatibility level for this job - which controls certain runtime behaviours of the streaming job. Possible values are `1.0`, `1.1` and `1.2`.
     * > **NOTE:** Support for Compatibility Level 1.2 is dependent on a new version of the Stream Analytics API, which [being tracked in this issue](https://github.com/Azure/azure-rest-api-specs/issues/5604).
     */
    @JvmName("kyxfclygnqepolih")
    public suspend fun compatibilityLevel(`value`: Output) {
        this.compatibilityLevel = value
    }

    /**
     * @param value The policy for storing stream analytics content. Possible values are `JobStorageAccount`, `SystemAccount`. Defaults to `SystemAccount`.
     */
    @JvmName("eedmfpsusvyhtojt")
    public suspend fun contentStoragePolicy(`value`: Output) {
        this.contentStoragePolicy = value
    }

    /**
     * @param value Specifies the Data Locale of the Job, which [should be a supported .NET Culture](https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx).
     */
    @JvmName("brorqvrekksvrhcm")
    public suspend fun dataLocale(`value`: Output) {
        this.dataLocale = value
    }

    /**
     * @param value Specifies the maximum tolerable delay in seconds where events arriving late could be included. Supported range is `-1` (indefinite) to `1814399` (20d 23h 59m 59s). Default is `5`.
     */
    @JvmName("nrcnxoighvaxkrkm")
    public suspend fun eventsLateArrivalMaxDelayInSeconds(`value`: Output) {
        this.eventsLateArrivalMaxDelayInSeconds = value
    }

    /**
     * @param value Specifies the maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order. Supported range is `0` to `599` (9m 59s). Default is `0`.
     */
    @JvmName("ttqyjfrwsqdccogd")
    public suspend fun eventsOutOfOrderMaxDelayInSeconds(`value`: Output) {
        this.eventsOutOfOrderMaxDelayInSeconds = value
    }

    /**
     * @param value Specifies the policy which should be applied to events which arrive out of order in the input event stream. Possible values are `Adjust` and `Drop`. Default is `Adjust`.
     */
    @JvmName("esqvveueehlhadwa")
    public suspend fun eventsOutOfOrderPolicy(`value`: Output) {
        this.eventsOutOfOrderPolicy = value
    }

    /**
     * @param value An `identity` block as defined below.
     */
    @JvmName("nkfrinilniifokcx")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("ajovadfwxgrtwvom")
    public suspend fun jobStorageAccounts(`value`: Output>) {
        this.jobStorageAccounts = value
    }

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

    /**
     * @param values The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("aplterxuawfrqxuc")
    public suspend fun jobStorageAccounts(values: List>) {
        this.jobStorageAccounts = Output.all(values)
    }

    /**
     * @param value The Azure Region in which the Resource Group exists. Changing this forces a new resource to be created.
     */
    @JvmName("ufodkfthsaprvxkp")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The name of the Stream Analytics Job. Changing this forces a new resource to be created.
     */
    @JvmName("dkrvfxggyjlkfygg")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Specifies the policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size). Possible values are `Drop` and `Stop`. Default is `Drop`.
     */
    @JvmName("pdvtrdbrjbwiyhyd")
    public suspend fun outputErrorPolicy(`value`: Output) {
        this.outputErrorPolicy = value
    }

    /**
     * @param value The name of the Resource Group where the Stream Analytics Job should exist. Changing this forces a new resource to be created.
     */
    @JvmName("tdyfdronstivkgbu")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The SKU Name to use for the Stream Analytics Job. Possible values are `Standard`, `StandardV2`. Defaults to `Standard`.
     */
    @JvmName("frbhrhgswgvsytsm")
    public suspend fun skuName(`value`: Output) {
        this.skuName = value
    }

    /**
     * @param value The ID of an existing Stream Analytics Cluster where the Stream Analytics Job should run.
     */
    @JvmName("hddekrfmvvoredej")
    public suspend fun streamAnalyticsClusterId(`value`: Output) {
        this.streamAnalyticsClusterId = value
    }

    /**
     * @param value Specifies the number of streaming units that the streaming job uses. Supported values are `1`, `3`, `6` and multiples of `6` up to `120`.
     * > **NOTE:** `streaming_units` must be set when `type` is `Cloud`.
     */
    @JvmName("hgbjyctywxakuggo")
    public suspend fun streamingUnits(`value`: Output) {
        this.streamingUnits = value
    }

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

    /**
     * @param value
     */
    @JvmName("shmviacvetajdimd")
    public suspend fun transformationQuery(`value`: Output) {
        this.transformationQuery = value
    }

    /**
     * @param value The type of the Stream Analytics Job. Possible values are `Cloud` and `Edge`. Defaults to `Cloud`. Changing this forces a new resource to be created.
     * > **NOTE:** `Edge` doesn't support `stream_analytics_cluster_id` and `streaming_units`.
     */
    @JvmName("ivfrtywnemhxgqao")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value Specifies the compatibility level for this job - which controls certain runtime behaviours of the streaming job. Possible values are `1.0`, `1.1` and `1.2`.
     * > **NOTE:** Support for Compatibility Level 1.2 is dependent on a new version of the Stream Analytics API, which [being tracked in this issue](https://github.com/Azure/azure-rest-api-specs/issues/5604).
     */
    @JvmName("ujynikoshevofcek")
    public suspend fun compatibilityLevel(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compatibilityLevel = mapped
    }

    /**
     * @param value The policy for storing stream analytics content. Possible values are `JobStorageAccount`, `SystemAccount`. Defaults to `SystemAccount`.
     */
    @JvmName("sqixsojvvqepiovb")
    public suspend fun contentStoragePolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.contentStoragePolicy = mapped
    }

    /**
     * @param value Specifies the Data Locale of the Job, which [should be a supported .NET Culture](https://msdn.microsoft.com/en-us/library/system.globalization.culturetypes(v=vs.110).aspx).
     */
    @JvmName("smnageltshnetelt")
    public suspend fun dataLocale(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataLocale = mapped
    }

    /**
     * @param value Specifies the maximum tolerable delay in seconds where events arriving late could be included. Supported range is `-1` (indefinite) to `1814399` (20d 23h 59m 59s). Default is `5`.
     */
    @JvmName("hajecuocournrtyo")
    public suspend fun eventsLateArrivalMaxDelayInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventsLateArrivalMaxDelayInSeconds = mapped
    }

    /**
     * @param value Specifies the maximum tolerable delay in seconds where out-of-order events can be adjusted to be back in order. Supported range is `0` to `599` (9m 59s). Default is `0`.
     */
    @JvmName("ihljaceaymlxilul")
    public suspend fun eventsOutOfOrderMaxDelayInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventsOutOfOrderMaxDelayInSeconds = mapped
    }

    /**
     * @param value Specifies the policy which should be applied to events which arrive out of order in the input event stream. Possible values are `Adjust` and `Drop`. Default is `Adjust`.
     */
    @JvmName("tchqacfdqfbjahgh")
    public suspend fun eventsOutOfOrderPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventsOutOfOrderPolicy = mapped
    }

    /**
     * @param value An `identity` block as defined below.
     */
    @JvmName("upfnqmwpyyckclyq")
    public suspend fun identity(`value`: JobIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument An `identity` block as defined below.
     */
    @JvmName("gdruehicxghbhbvs")
    public suspend fun identity(argument: suspend JobIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = JobIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("shfxbfxyekpxygmr")
    public suspend fun jobStorageAccounts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jobStorageAccounts = mapped
    }

    /**
     * @param argument The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("fvvhcqfnhmbbofoo")
    public suspend
    fun jobStorageAccounts(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            JobJobStorageAccountArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.jobStorageAccounts = mapped
    }

    /**
     * @param argument The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("aefdmycvdhdcyrwj")
    public suspend fun jobStorageAccounts(
        vararg
        argument: suspend JobJobStorageAccountArgsBuilder.() -> Unit,
    ) {
        val toBeMapped = argument.toList().map {
            JobJobStorageAccountArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.jobStorageAccounts = mapped
    }

    /**
     * @param argument The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("edblbjucsvkurymn")
    public suspend
    fun jobStorageAccounts(argument: suspend JobJobStorageAccountArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(JobJobStorageAccountArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.jobStorageAccounts = mapped
    }

    /**
     * @param values The details of the job storage account. A `job_storage_account` block as defined below.
     */
    @JvmName("iljrjjgnugnwiqie")
    public suspend fun jobStorageAccounts(vararg values: JobJobStorageAccountArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jobStorageAccounts = mapped
    }

    /**
     * @param value The Azure Region in which the Resource Group exists. Changing this forces a new resource to be created.
     */
    @JvmName("pgxengwmnnmotnfr")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The name of the Stream Analytics Job. Changing this forces a new resource to be created.
     */
    @JvmName("fyticxgykmrilgey")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Specifies the policy which should be applied to events which arrive at the output and cannot be written to the external storage due to being malformed (such as missing column values, column values of wrong type or size). Possible values are `Drop` and `Stop`. Default is `Drop`.
     */
    @JvmName("bnnphpflnsldmdym")
    public suspend fun outputErrorPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputErrorPolicy = mapped
    }

    /**
     * @param value The name of the Resource Group where the Stream Analytics Job should exist. Changing this forces a new resource to be created.
     */
    @JvmName("cllvsehtkbwkouos")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The SKU Name to use for the Stream Analytics Job. Possible values are `Standard`, `StandardV2`. Defaults to `Standard`.
     */
    @JvmName("tabalddixdkqevlc")
    public suspend fun skuName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skuName = mapped
    }

    /**
     * @param value The ID of an existing Stream Analytics Cluster where the Stream Analytics Job should run.
     */
    @JvmName("xqttsrkocybjybbl")
    public suspend fun streamAnalyticsClusterId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.streamAnalyticsClusterId = mapped
    }

    /**
     * @param value Specifies the number of streaming units that the streaming job uses. Supported values are `1`, `3`, `6` and multiples of `6` up to `120`.
     * > **NOTE:** `streaming_units` must be set when `type` is `Cloud`.
     */
    @JvmName("vublcsctjpsjkyjb")
    public suspend fun streamingUnits(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.streamingUnits = mapped
    }

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

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

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

    /**
     * @param value The type of the Stream Analytics Job. Possible values are `Cloud` and `Edge`. Defaults to `Cloud`. Changing this forces a new resource to be created.
     * > **NOTE:** `Edge` doesn't support `stream_analytics_cluster_id` and `streaming_units`.
     */
    @JvmName("oyemjqdhjlpwopud")
    public suspend fun type(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): JobArgs = JobArgs(
        compatibilityLevel = compatibilityLevel,
        contentStoragePolicy = contentStoragePolicy,
        dataLocale = dataLocale,
        eventsLateArrivalMaxDelayInSeconds = eventsLateArrivalMaxDelayInSeconds,
        eventsOutOfOrderMaxDelayInSeconds = eventsOutOfOrderMaxDelayInSeconds,
        eventsOutOfOrderPolicy = eventsOutOfOrderPolicy,
        identity = identity,
        jobStorageAccounts = jobStorageAccounts,
        location = location,
        name = name,
        outputErrorPolicy = outputErrorPolicy,
        resourceGroupName = resourceGroupName,
        skuName = skuName,
        streamAnalyticsClusterId = streamAnalyticsClusterId,
        streamingUnits = streamingUnits,
        tags = tags,
        transformationQuery = transformationQuery,
        type = type,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy