Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.batch.kotlin.PoolArgs.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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.batch.kotlin
import com.pulumi.azure.batch.PoolArgs.builder
import com.pulumi.azure.batch.kotlin.inputs.PoolAutoScaleArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolAutoScaleArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolCertificateArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolCertificateArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolContainerConfigurationArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolContainerConfigurationArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolDataDiskArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolDataDiskArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolDiskEncryptionArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolDiskEncryptionArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolExtensionArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolExtensionArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolFixedScaleArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolFixedScaleArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolIdentityArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolIdentityArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolMountArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolMountArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolNetworkConfigurationArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolNetworkConfigurationArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolNodePlacementArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolNodePlacementArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolStartTaskArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolStartTaskArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolStorageImageReferenceArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolStorageImageReferenceArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolTaskSchedulingPolicyArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolTaskSchedulingPolicyArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolUserAccountArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolUserAccountArgsBuilder
import com.pulumi.azure.batch.kotlin.inputs.PoolWindowArgs
import com.pulumi.azure.batch.kotlin.inputs.PoolWindowArgsBuilder
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.Boolean
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 an Azure Batch pool.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as azure from "@pulumi/azure";
* import * as std from "@pulumi/std";
* const example = new azure.core.ResourceGroup("example", {
* name: "testaccbatch",
* location: "West Europe",
* });
* const exampleAccount = new azure.storage.Account("example", {
* name: "testaccsa",
* resourceGroupName: example.name,
* location: example.location,
* accountTier: "Standard",
* accountReplicationType: "LRS",
* });
* const exampleAccount2 = new azure.batch.Account("example", {
* name: "testaccbatch",
* resourceGroupName: example.name,
* location: example.location,
* poolAllocationMode: "BatchService",
* storageAccountId: exampleAccount.id,
* storageAccountAuthenticationMode: "StorageKeys",
* tags: {
* env: "test",
* },
* });
* const exampleCertificate = new azure.batch.Certificate("example", {
* resourceGroupName: example.name,
* accountName: exampleAccount2.name,
* certificate: std.filebase64({
* input: "certificate.cer",
* }).then(invoke => invoke.result),
* format: "Cer",
* thumbprint: "312d31a79fa0cef49c00f769afc2b73e9f4edf34",
* thumbprintAlgorithm: "SHA1",
* });
* const examplePool = new azure.batch.Pool("example", {
* name: "testaccpool",
* resourceGroupName: example.name,
* accountName: exampleAccount2.name,
* displayName: "Test Acc Pool Auto",
* vmSize: "Standard_A1",
* nodeAgentSkuId: "batch.node.ubuntu 20.04",
* autoScale: {
* evaluationInterval: "PT15M",
* formula: ` startingNumberOfVMs = 1;
* maxNumberofVMs = 25;
* pendingTaskSamplePercent = PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
* pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg(PendingTasks.GetSample(180 * TimeInterval_Second));
* TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);
* `,
* },
* storageImageReference: {
* publisher: "microsoft-azure-batch",
* offer: "ubuntu-server-container",
* sku: "20-04-lts",
* version: "latest",
* },
* containerConfiguration: {
* type: "DockerCompatible",
* containerRegistries: [{
* registryServer: "docker.io",
* userName: "login",
* password: "apassword",
* }],
* },
* startTask: {
* commandLine: "echo 'Hello World from $env'",
* taskRetryMaximum: 1,
* waitForSuccess: true,
* commonEnvironmentProperties: {
* env: "TEST",
* },
* userIdentity: {
* autoUser: {
* elevationLevel: "NonAdmin",
* scope: "Task",
* },
* },
* },
* certificates: [{
* id: exampleCertificate.id,
* storeLocation: "CurrentUser",
* visibilities: ["StartTask"],
* }],
* });
* ```
* ```python
* import pulumi
* import pulumi_azure as azure
* import pulumi_std as std
* example = azure.core.ResourceGroup("example",
* name="testaccbatch",
* location="West Europe")
* example_account = azure.storage.Account("example",
* name="testaccsa",
* resource_group_name=example.name,
* location=example.location,
* account_tier="Standard",
* account_replication_type="LRS")
* example_account2 = azure.batch.Account("example",
* name="testaccbatch",
* resource_group_name=example.name,
* location=example.location,
* pool_allocation_mode="BatchService",
* storage_account_id=example_account.id,
* storage_account_authentication_mode="StorageKeys",
* tags={
* "env": "test",
* })
* example_certificate = azure.batch.Certificate("example",
* resource_group_name=example.name,
* account_name=example_account2.name,
* certificate=std.filebase64(input="certificate.cer").result,
* format="Cer",
* thumbprint="312d31a79fa0cef49c00f769afc2b73e9f4edf34",
* thumbprint_algorithm="SHA1")
* example_pool = azure.batch.Pool("example",
* name="testaccpool",
* resource_group_name=example.name,
* account_name=example_account2.name,
* display_name="Test Acc Pool Auto",
* vm_size="Standard_A1",
* node_agent_sku_id="batch.node.ubuntu 20.04",
* auto_scale=azure.batch.PoolAutoScaleArgs(
* evaluation_interval="PT15M",
* formula=""" startingNumberOfVMs = 1;
* maxNumberofVMs = 25;
* pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
* pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
* $TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);
* """,
* ),
* storage_image_reference=azure.batch.PoolStorageImageReferenceArgs(
* publisher="microsoft-azure-batch",
* offer="ubuntu-server-container",
* sku="20-04-lts",
* version="latest",
* ),
* container_configuration=azure.batch.PoolContainerConfigurationArgs(
* type="DockerCompatible",
* container_registries=[azure.batch.PoolContainerConfigurationContainerRegistryArgs(
* registry_server="docker.io",
* user_name="login",
* password="apassword",
* )],
* ),
* start_task=azure.batch.PoolStartTaskArgs(
* command_line="echo 'Hello World from $env'",
* task_retry_maximum=1,
* wait_for_success=True,
* common_environment_properties={
* "env": "TEST",
* },
* user_identity=azure.batch.PoolStartTaskUserIdentityArgs(
* auto_user=azure.batch.PoolStartTaskUserIdentityAutoUserArgs(
* elevation_level="NonAdmin",
* scope="Task",
* ),
* ),
* ),
* certificates=[azure.batch.PoolCertificateArgs(
* id=example_certificate.id,
* store_location="CurrentUser",
* visibilities=["StartTask"],
* )])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Azure = Pulumi.Azure;
* using Std = Pulumi.Std;
* return await Deployment.RunAsync(() =>
* {
* var example = new Azure.Core.ResourceGroup("example", new()
* {
* Name = "testaccbatch",
* Location = "West Europe",
* });
* var exampleAccount = new Azure.Storage.Account("example", new()
* {
* Name = "testaccsa",
* ResourceGroupName = example.Name,
* Location = example.Location,
* AccountTier = "Standard",
* AccountReplicationType = "LRS",
* });
* var exampleAccount2 = new Azure.Batch.Account("example", new()
* {
* Name = "testaccbatch",
* ResourceGroupName = example.Name,
* Location = example.Location,
* PoolAllocationMode = "BatchService",
* StorageAccountId = exampleAccount.Id,
* StorageAccountAuthenticationMode = "StorageKeys",
* Tags =
* {
* { "env", "test" },
* },
* });
* var exampleCertificate = new Azure.Batch.Certificate("example", new()
* {
* ResourceGroupName = example.Name,
* AccountName = exampleAccount2.Name,
* BatchCertificate = Std.Filebase64.Invoke(new()
* {
* Input = "certificate.cer",
* }).Apply(invoke => invoke.Result),
* Format = "Cer",
* Thumbprint = "312d31a79fa0cef49c00f769afc2b73e9f4edf34",
* ThumbprintAlgorithm = "SHA1",
* });
* var examplePool = new Azure.Batch.Pool("example", new()
* {
* Name = "testaccpool",
* ResourceGroupName = example.Name,
* AccountName = exampleAccount2.Name,
* DisplayName = "Test Acc Pool Auto",
* VmSize = "Standard_A1",
* NodeAgentSkuId = "batch.node.ubuntu 20.04",
* AutoScale = new Azure.Batch.Inputs.PoolAutoScaleArgs
* {
* EvaluationInterval = "PT15M",
* Formula = @" startingNumberOfVMs = 1;
* maxNumberofVMs = 25;
* pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
* pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
* $TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);
* ",
* },
* StorageImageReference = new Azure.Batch.Inputs.PoolStorageImageReferenceArgs
* {
* Publisher = "microsoft-azure-batch",
* Offer = "ubuntu-server-container",
* Sku = "20-04-lts",
* Version = "latest",
* },
* ContainerConfiguration = new Azure.Batch.Inputs.PoolContainerConfigurationArgs
* {
* Type = "DockerCompatible",
* ContainerRegistries = new[]
* {
* new Azure.Batch.Inputs.PoolContainerConfigurationContainerRegistryArgs
* {
* RegistryServer = "docker.io",
* UserName = "login",
* Password = "apassword",
* },
* },
* },
* StartTask = new Azure.Batch.Inputs.PoolStartTaskArgs
* {
* CommandLine = "echo 'Hello World from $env'",
* TaskRetryMaximum = 1,
* WaitForSuccess = true,
* CommonEnvironmentProperties =
* {
* { "env", "TEST" },
* },
* UserIdentity = new Azure.Batch.Inputs.PoolStartTaskUserIdentityArgs
* {
* AutoUser = new Azure.Batch.Inputs.PoolStartTaskUserIdentityAutoUserArgs
* {
* ElevationLevel = "NonAdmin",
* Scope = "Task",
* },
* },
* },
* Certificates = new[]
* {
* new Azure.Batch.Inputs.PoolCertificateArgs
* {
* Id = exampleCertificate.Id,
* StoreLocation = "CurrentUser",
* Visibilities = new[]
* {
* "StartTask",
* },
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/batch"
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
* "github.com/pulumi/pulumi-std/sdk/go/std"
* "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("testaccbatch"),
* Location: pulumi.String("West Europe"),
* })
* if err != nil {
* return err
* }
* exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
* Name: pulumi.String("testaccsa"),
* ResourceGroupName: example.Name,
* Location: example.Location,
* AccountTier: pulumi.String("Standard"),
* AccountReplicationType: pulumi.String("LRS"),
* })
* if err != nil {
* return err
* }
* exampleAccount2, err := batch.NewAccount(ctx, "example", &batch.AccountArgs{
* Name: pulumi.String("testaccbatch"),
* ResourceGroupName: example.Name,
* Location: example.Location,
* PoolAllocationMode: pulumi.String("BatchService"),
* StorageAccountId: exampleAccount.ID(),
* StorageAccountAuthenticationMode: pulumi.String("StorageKeys"),
* Tags: pulumi.StringMap{
* "env": pulumi.String("test"),
* },
* })
* if err != nil {
* return err
* }
* invokeFilebase64, err := std.Filebase64(ctx, &std.Filebase64Args{
* Input: "certificate.cer",
* }, nil)
* if err != nil {
* return err
* }
* exampleCertificate, err := batch.NewCertificate(ctx, "example", &batch.CertificateArgs{
* ResourceGroupName: example.Name,
* AccountName: exampleAccount2.Name,
* Certificate: invokeFilebase64.Result,
* Format: pulumi.String("Cer"),
* Thumbprint: pulumi.String("312d31a79fa0cef49c00f769afc2b73e9f4edf34"),
* ThumbprintAlgorithm: pulumi.String("SHA1"),
* })
* if err != nil {
* return err
* }
* _, err = batch.NewPool(ctx, "example", &batch.PoolArgs{
* Name: pulumi.String("testaccpool"),
* ResourceGroupName: example.Name,
* AccountName: exampleAccount2.Name,
* DisplayName: pulumi.String("Test Acc Pool Auto"),
* VmSize: pulumi.String("Standard_A1"),
* NodeAgentSkuId: pulumi.String("batch.node.ubuntu 20.04"),
* AutoScale: &batch.PoolAutoScaleArgs{
* EvaluationInterval: pulumi.String("PT15M"),
* Formula: pulumi.String(` startingNumberOfVMs = 1;
* maxNumberofVMs = 25;
* pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
* pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
* $TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);
* `),
* },
* StorageImageReference: &batch.PoolStorageImageReferenceArgs{
* Publisher: pulumi.String("microsoft-azure-batch"),
* Offer: pulumi.String("ubuntu-server-container"),
* Sku: pulumi.String("20-04-lts"),
* Version: pulumi.String("latest"),
* },
* ContainerConfiguration: &batch.PoolContainerConfigurationArgs{
* Type: pulumi.String("DockerCompatible"),
* ContainerRegistries: batch.PoolContainerConfigurationContainerRegistryArray{
* &batch.PoolContainerConfigurationContainerRegistryArgs{
* RegistryServer: pulumi.String("docker.io"),
* UserName: pulumi.String("login"),
* Password: pulumi.String("apassword"),
* },
* },
* },
* StartTask: &batch.PoolStartTaskArgs{
* CommandLine: pulumi.String("echo 'Hello World from $env'"),
* TaskRetryMaximum: pulumi.Int(1),
* WaitForSuccess: pulumi.Bool(true),
* CommonEnvironmentProperties: pulumi.StringMap{
* "env": pulumi.String("TEST"),
* },
* UserIdentity: &batch.PoolStartTaskUserIdentityArgs{
* AutoUser: &batch.PoolStartTaskUserIdentityAutoUserArgs{
* ElevationLevel: pulumi.String("NonAdmin"),
* Scope: pulumi.String("Task"),
* },
* },
* },
* Certificates: batch.PoolCertificateArray{
* &batch.PoolCertificateArgs{
* Id: exampleCertificate.ID(),
* StoreLocation: pulumi.String("CurrentUser"),
* Visibilities: pulumi.StringArray{
* pulumi.String("StartTask"),
* },
* },
* },
* })
* 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.storage.Account;
* import com.pulumi.azure.storage.AccountArgs;
* import com.pulumi.azure.batch.Account;
* import com.pulumi.azure.batch.AccountArgs;
* import com.pulumi.azure.batch.Certificate;
* import com.pulumi.azure.batch.CertificateArgs;
* import com.pulumi.azure.batch.Pool;
* import com.pulumi.azure.batch.PoolArgs;
* import com.pulumi.azure.batch.inputs.PoolAutoScaleArgs;
* import com.pulumi.azure.batch.inputs.PoolStorageImageReferenceArgs;
* import com.pulumi.azure.batch.inputs.PoolContainerConfigurationArgs;
* import com.pulumi.azure.batch.inputs.PoolStartTaskArgs;
* import com.pulumi.azure.batch.inputs.PoolStartTaskUserIdentityArgs;
* import com.pulumi.azure.batch.inputs.PoolStartTaskUserIdentityAutoUserArgs;
* import com.pulumi.azure.batch.inputs.PoolCertificateArgs;
* 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("testaccbatch")
* .location("West Europe")
* .build());
* var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
* .name("testaccsa")
* .resourceGroupName(example.name())
* .location(example.location())
* .accountTier("Standard")
* .accountReplicationType("LRS")
* .build());
* var exampleAccount2 = new Account("exampleAccount2", AccountArgs.builder()
* .name("testaccbatch")
* .resourceGroupName(example.name())
* .location(example.location())
* .poolAllocationMode("BatchService")
* .storageAccountId(exampleAccount.id())
* .storageAccountAuthenticationMode("StorageKeys")
* .tags(Map.of("env", "test"))
* .build());
* var exampleCertificate = new Certificate("exampleCertificate", CertificateArgs.builder()
* .resourceGroupName(example.name())
* .accountName(exampleAccount2.name())
* .certificate(StdFunctions.filebase64(Filebase64Args.builder()
* .input("certificate.cer")
* .build()).result())
* .format("Cer")
* .thumbprint("312d31a79fa0cef49c00f769afc2b73e9f4edf34")
* .thumbprintAlgorithm("SHA1")
* .build());
* var examplePool = new Pool("examplePool", PoolArgs.builder()
* .name("testaccpool")
* .resourceGroupName(example.name())
* .accountName(exampleAccount2.name())
* .displayName("Test Acc Pool Auto")
* .vmSize("Standard_A1")
* .nodeAgentSkuId("batch.node.ubuntu 20.04")
* .autoScale(PoolAutoScaleArgs.builder()
* .evaluationInterval("PT15M")
* .formula("""
* startingNumberOfVMs = 1;
* maxNumberofVMs = 25;
* pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
* pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
* $TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);
* """)
* .build())
* .storageImageReference(PoolStorageImageReferenceArgs.builder()
* .publisher("microsoft-azure-batch")
* .offer("ubuntu-server-container")
* .sku("20-04-lts")
* .version("latest")
* .build())
* .containerConfiguration(PoolContainerConfigurationArgs.builder()
* .type("DockerCompatible")
* .containerRegistries(PoolContainerConfigurationContainerRegistryArgs.builder()
* .registryServer("docker.io")
* .userName("login")
* .password("apassword")
* .build())
* .build())
* .startTask(PoolStartTaskArgs.builder()
* .commandLine("echo 'Hello World from $env'")
* .taskRetryMaximum(1)
* .waitForSuccess(true)
* .commonEnvironmentProperties(Map.of("env", "TEST"))
* .userIdentity(PoolStartTaskUserIdentityArgs.builder()
* .autoUser(PoolStartTaskUserIdentityAutoUserArgs.builder()
* .elevationLevel("NonAdmin")
* .scope("Task")
* .build())
* .build())
* .build())
* .certificates(PoolCertificateArgs.builder()
* .id(exampleCertificate.id())
* .storeLocation("CurrentUser")
* .visibilities("StartTask")
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: azure:core:ResourceGroup
* properties:
* name: testaccbatch
* location: West Europe
* exampleAccount:
* type: azure:storage:Account
* name: example
* properties:
* name: testaccsa
* resourceGroupName: ${example.name}
* location: ${example.location}
* accountTier: Standard
* accountReplicationType: LRS
* exampleAccount2:
* type: azure:batch:Account
* name: example
* properties:
* name: testaccbatch
* resourceGroupName: ${example.name}
* location: ${example.location}
* poolAllocationMode: BatchService
* storageAccountId: ${exampleAccount.id}
* storageAccountAuthenticationMode: StorageKeys
* tags:
* env: test
* exampleCertificate:
* type: azure:batch:Certificate
* name: example
* properties:
* resourceGroupName: ${example.name}
* accountName: ${exampleAccount2.name}
* certificate:
* fn::invoke:
* Function: std:filebase64
* Arguments:
* input: certificate.cer
* Return: result
* format: Cer
* thumbprint: 312d31a79fa0cef49c00f769afc2b73e9f4edf34
* thumbprintAlgorithm: SHA1
* examplePool:
* type: azure:batch:Pool
* name: example
* properties:
* name: testaccpool
* resourceGroupName: ${example.name}
* accountName: ${exampleAccount2.name}
* displayName: Test Acc Pool Auto
* vmSize: Standard_A1
* nodeAgentSkuId: batch.node.ubuntu 20.04
* autoScale:
* evaluationInterval: PT15M
* formula: |2
* startingNumberOfVMs = 1;
* maxNumberofVMs = 25;
* pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second);
* pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));
* $TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples);
* storageImageReference:
* publisher: microsoft-azure-batch
* offer: ubuntu-server-container
* sku: 20-04-lts
* version: latest
* containerConfiguration:
* type: DockerCompatible
* containerRegistries:
* - registryServer: docker.io
* userName: login
* password: apassword
* startTask:
* commandLine: echo 'Hello World from $env'
* taskRetryMaximum: 1
* waitForSuccess: true
* commonEnvironmentProperties:
* env: TEST
* userIdentity:
* autoUser:
* elevationLevel: NonAdmin
* scope: Task
* certificates:
* - id: ${exampleCertificate.id}
* storeLocation: CurrentUser
* visibilities:
* - StartTask
* ```
*
* ## Import
* Batch Pools can be imported using the `resource id`, e.g.
* ```sh
* $ pulumi import azure:batch/pool:Pool example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup1/providers/Microsoft.Batch/batchAccounts/myBatchAccount1/pools/myBatchPool1
* ```
* @property accountName Specifies the name of the Batch account in which the pool will be created. Changing this forces a new resource to be created.
* @property autoScale A `auto_scale` block that describes the scale settings when using auto scale as defined below.
* @property certificates One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
* @property containerConfiguration The container configuration used in the pool's VMs. One `container_configuration` block as defined below.
* @property dataDisks A `data_disks` block describes the data disk settings as defined below.
* @property diskEncryptions A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
* @property displayName Specifies the display name of the Batch pool. Changing this forces a new resource to be created.
* @property extensions An `extensions` block as defined below.
* @property fixedScale A `fixed_scale` block that describes the scale settings when using fixed scale as defined below.
* @property identity An `identity` block as defined below.
* @property interNodeCommunication Whether the pool permits direct communication between nodes. This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. Values allowed are `Disabled` and `Enabled`. Defaults to `Enabled`.
* @property licenseType The type of on-premises license to be used when deploying the operating system. This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are: "Windows_Server" - The on-premises license is for Windows Server. "Windows_Client" - The on-premises license is for Windows Client.
* @property maxTasksPerNode Specifies the maximum number of tasks that can run concurrently on a single compute node in the pool. Defaults to `1`. Changing this forces a new resource to be created.
* @property metadata A map of custom batch pool metadata.
* @property mounts A `mount` block defined as below.
* @property name Specifies the name of the Batch pool. Changing this forces a new resource to be created.
* @property networkConfiguration A `network_configuration` block that describes the network configurations for the Batch pool as defined below. Changing this forces a new resource to be created.
* @property nodeAgentSkuId Specifies the SKU of the node agents that will be created in the Batch pool. Changing this forces a new resource to be created.
* @property nodePlacements A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
* @property osDiskPlacement Specifies the ephemeral disk placement for operating system disk for all VMs in the pool. This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at and Linux VMs at . The only possible value is `CacheDisk`.
* @property resourceGroupName The name of the resource group in which to create the Batch pool. Changing this forces a new resource to be created.
* @property startTask A `start_task` block that describes the start task settings for the Batch pool as defined below.
* @property stopPendingResizeOperation Whether to stop if there is a pending resize operation on this pool.
* @property storageImageReference A `storage_image_reference` block for the virtual machines that will compose the Batch pool as defined below. Changing this forces a new resource to be created.
* @property targetNodeCommunicationMode The desired node communication mode for the pool. Possible values are `Classic`, `Default` and `Simplified`.
* @property taskSchedulingPolicies A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
* @property userAccounts A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
* @property vmSize Specifies the size of the VM created in the Batch pool. Changing this forces a new resource to be created.
* @property windows A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
public data class PoolArgs(
public val accountName: Output? = null,
public val autoScale: Output? = null,
public val certificates: Output>? = null,
public val containerConfiguration: Output? = null,
public val dataDisks: Output>? = null,
public val diskEncryptions: Output>? = null,
public val displayName: Output? = null,
public val extensions: Output>? = null,
public val fixedScale: Output? = null,
public val identity: Output? = null,
public val interNodeCommunication: Output? = null,
public val licenseType: Output? = null,
public val maxTasksPerNode: Output? = null,
public val metadata: Output>? = null,
public val mounts: Output>? = null,
public val name: Output? = null,
public val networkConfiguration: Output? = null,
public val nodeAgentSkuId: Output? = null,
public val nodePlacements: Output>? = null,
public val osDiskPlacement: Output? = null,
public val resourceGroupName: Output? = null,
public val startTask: Output? = null,
public val stopPendingResizeOperation: Output? = null,
public val storageImageReference: Output? = null,
public val targetNodeCommunicationMode: Output? = null,
public val taskSchedulingPolicies: Output>? = null,
public val userAccounts: Output>? = null,
public val vmSize: Output? = null,
public val windows: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azure.batch.PoolArgs = com.pulumi.azure.batch.PoolArgs.builder()
.accountName(accountName?.applyValue({ args0 -> args0 }))
.autoScale(autoScale?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.certificates(
certificates?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.containerConfiguration(
containerConfiguration?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.dataDisks(
dataDisks?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.diskEncryptions(
diskEncryptions?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.displayName(displayName?.applyValue({ args0 -> args0 }))
.extensions(
extensions?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.fixedScale(fixedScale?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.interNodeCommunication(interNodeCommunication?.applyValue({ args0 -> args0 }))
.licenseType(licenseType?.applyValue({ args0 -> args0 }))
.maxTasksPerNode(maxTasksPerNode?.applyValue({ args0 -> args0 }))
.metadata(
metadata?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
)
.mounts(mounts?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.name(name?.applyValue({ args0 -> args0 }))
.networkConfiguration(
networkConfiguration?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.nodeAgentSkuId(nodeAgentSkuId?.applyValue({ args0 -> args0 }))
.nodePlacements(
nodePlacements?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.osDiskPlacement(osDiskPlacement?.applyValue({ args0 -> args0 }))
.resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
.startTask(startTask?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.stopPendingResizeOperation(stopPendingResizeOperation?.applyValue({ args0 -> args0 }))
.storageImageReference(
storageImageReference?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.targetNodeCommunicationMode(targetNodeCommunicationMode?.applyValue({ args0 -> args0 }))
.taskSchedulingPolicies(
taskSchedulingPolicies?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.userAccounts(
userAccounts?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.vmSize(vmSize?.applyValue({ args0 -> args0 }))
.windows(
windows?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
).build()
}
/**
* Builder for [PoolArgs].
*/
@PulumiTagMarker
public class PoolArgsBuilder internal constructor() {
private var accountName: Output? = null
private var autoScale: Output? = null
private var certificates: Output>? = null
private var containerConfiguration: Output? = null
private var dataDisks: Output>? = null
private var diskEncryptions: Output>? = null
private var displayName: Output? = null
private var extensions: Output>? = null
private var fixedScale: Output? = null
private var identity: Output? = null
private var interNodeCommunication: Output? = null
private var licenseType: Output? = null
private var maxTasksPerNode: Output? = null
private var metadata: Output>? = null
private var mounts: Output>? = null
private var name: Output? = null
private var networkConfiguration: Output? = null
private var nodeAgentSkuId: Output? = null
private var nodePlacements: Output>? = null
private var osDiskPlacement: Output? = null
private var resourceGroupName: Output? = null
private var startTask: Output? = null
private var stopPendingResizeOperation: Output? = null
private var storageImageReference: Output? = null
private var targetNodeCommunicationMode: Output? = null
private var taskSchedulingPolicies: Output>? = null
private var userAccounts: Output>? = null
private var vmSize: Output? = null
private var windows: Output>? = null
/**
* @param value Specifies the name of the Batch account in which the pool will be created. Changing this forces a new resource to be created.
*/
@JvmName("lnegwvcyxgveehmh")
public suspend fun accountName(`value`: Output) {
this.accountName = value
}
/**
* @param value A `auto_scale` block that describes the scale settings when using auto scale as defined below.
*/
@JvmName("nujyeuvnsxnsivfw")
public suspend fun autoScale(`value`: Output) {
this.autoScale = value
}
/**
* @param value One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("lgesrdjaplbsigmk")
public suspend fun certificates(`value`: Output>) {
this.certificates = value
}
@JvmName("gniqesmiwtjrrkpa")
public suspend fun certificates(vararg values: Output) {
this.certificates = Output.all(values.asList())
}
/**
* @param values One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("qoutwemuxpqokxqp")
public suspend fun certificates(values: List>) {
this.certificates = Output.all(values)
}
/**
* @param value The container configuration used in the pool's VMs. One `container_configuration` block as defined below.
*/
@JvmName("gpncefisfleruunm")
public suspend fun containerConfiguration(`value`: Output) {
this.containerConfiguration = value
}
/**
* @param value A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("nsyufkqudprdiwqx")
public suspend fun dataDisks(`value`: Output>) {
this.dataDisks = value
}
@JvmName("vocyqjkxkyehiphg")
public suspend fun dataDisks(vararg values: Output) {
this.dataDisks = Output.all(values.asList())
}
/**
* @param values A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("clrcpltnjmhwnyah")
public suspend fun dataDisks(values: List>) {
this.dataDisks = Output.all(values)
}
/**
* @param value A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("jquvnsltimdedkgf")
public suspend fun diskEncryptions(`value`: Output>) {
this.diskEncryptions = value
}
@JvmName("jschckklhxujidhj")
public suspend fun diskEncryptions(vararg values: Output) {
this.diskEncryptions = Output.all(values.asList())
}
/**
* @param values A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("rjcclvcufrqmjnjw")
public suspend fun diskEncryptions(values: List>) {
this.diskEncryptions = Output.all(values)
}
/**
* @param value Specifies the display name of the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("aptrxinhvchhijrn")
public suspend fun displayName(`value`: Output) {
this.displayName = value
}
/**
* @param value An `extensions` block as defined below.
*/
@JvmName("jwbenexhscyhrnnb")
public suspend fun extensions(`value`: Output>) {
this.extensions = value
}
@JvmName("vpebwstyinnsvhyg")
public suspend fun extensions(vararg values: Output) {
this.extensions = Output.all(values.asList())
}
/**
* @param values An `extensions` block as defined below.
*/
@JvmName("lqkhdqbqsvflngfx")
public suspend fun extensions(values: List>) {
this.extensions = Output.all(values)
}
/**
* @param value A `fixed_scale` block that describes the scale settings when using fixed scale as defined below.
*/
@JvmName("gevgaqenkuuicrrb")
public suspend fun fixedScale(`value`: Output) {
this.fixedScale = value
}
/**
* @param value An `identity` block as defined below.
*/
@JvmName("ljfnshsrxlrurkob")
public suspend fun identity(`value`: Output) {
this.identity = value
}
/**
* @param value Whether the pool permits direct communication between nodes. This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. Values allowed are `Disabled` and `Enabled`. Defaults to `Enabled`.
*/
@JvmName("haxdwvktlfmetkki")
public suspend fun interNodeCommunication(`value`: Output) {
this.interNodeCommunication = value
}
/**
* @param value The type of on-premises license to be used when deploying the operating system. This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are: "Windows_Server" - The on-premises license is for Windows Server. "Windows_Client" - The on-premises license is for Windows Client.
*/
@JvmName("tkgbxdaoftepagkr")
public suspend fun licenseType(`value`: Output) {
this.licenseType = value
}
/**
* @param value Specifies the maximum number of tasks that can run concurrently on a single compute node in the pool. Defaults to `1`. Changing this forces a new resource to be created.
*/
@JvmName("lblkuxclvlvgdqvl")
public suspend fun maxTasksPerNode(`value`: Output) {
this.maxTasksPerNode = value
}
/**
* @param value A map of custom batch pool metadata.
*/
@JvmName("easrbvleenhwpnwu")
public suspend fun metadata(`value`: Output>) {
this.metadata = value
}
/**
* @param value A `mount` block defined as below.
*/
@JvmName("duymmeaocjiqdanf")
public suspend fun mounts(`value`: Output>) {
this.mounts = value
}
@JvmName("oydsflndradvjpdt")
public suspend fun mounts(vararg values: Output) {
this.mounts = Output.all(values.asList())
}
/**
* @param values A `mount` block defined as below.
*/
@JvmName("xvbawmbbyiyvdqtc")
public suspend fun mounts(values: List>) {
this.mounts = Output.all(values)
}
/**
* @param value Specifies the name of the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("jeeawltdmtkkuhpg")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value A `network_configuration` block that describes the network configurations for the Batch pool as defined below. Changing this forces a new resource to be created.
*/
@JvmName("ujsbxtphefjworvc")
public suspend fun networkConfiguration(`value`: Output) {
this.networkConfiguration = value
}
/**
* @param value Specifies the SKU of the node agents that will be created in the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("hktjalehvjgkveme")
public suspend fun nodeAgentSkuId(`value`: Output) {
this.nodeAgentSkuId = value
}
/**
* @param value A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("uxlbidrmmpjqcjwu")
public suspend fun nodePlacements(`value`: Output>) {
this.nodePlacements = value
}
@JvmName("morfydixxkqxlncc")
public suspend fun nodePlacements(vararg values: Output) {
this.nodePlacements = Output.all(values.asList())
}
/**
* @param values A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("hfaknpxalamcfiby")
public suspend fun nodePlacements(values: List>) {
this.nodePlacements = Output.all(values)
}
/**
* @param value Specifies the ephemeral disk placement for operating system disk for all VMs in the pool. This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at and Linux VMs at . The only possible value is `CacheDisk`.
*/
@JvmName("lbamrcjvncwwpdms")
public suspend fun osDiskPlacement(`value`: Output) {
this.osDiskPlacement = value
}
/**
* @param value The name of the resource group in which to create the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("ikxkcurnxrryryxk")
public suspend fun resourceGroupName(`value`: Output) {
this.resourceGroupName = value
}
/**
* @param value A `start_task` block that describes the start task settings for the Batch pool as defined below.
*/
@JvmName("mjjbbenmbqdxbgch")
public suspend fun startTask(`value`: Output) {
this.startTask = value
}
/**
* @param value Whether to stop if there is a pending resize operation on this pool.
*/
@JvmName("yyybfrufcehctvea")
public suspend fun stopPendingResizeOperation(`value`: Output) {
this.stopPendingResizeOperation = value
}
/**
* @param value A `storage_image_reference` block for the virtual machines that will compose the Batch pool as defined below. Changing this forces a new resource to be created.
*/
@JvmName("nwjdxufabvbhjkpw")
public suspend fun storageImageReference(`value`: Output) {
this.storageImageReference = value
}
/**
* @param value The desired node communication mode for the pool. Possible values are `Classic`, `Default` and `Simplified`.
*/
@JvmName("srjchhthaqnphxcy")
public suspend fun targetNodeCommunicationMode(`value`: Output) {
this.targetNodeCommunicationMode = value
}
/**
* @param value A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("jlphuhnkihqjrhsh")
public suspend fun taskSchedulingPolicies(`value`: Output>) {
this.taskSchedulingPolicies = value
}
@JvmName("gpmndjbhpqojhdom")
public suspend fun taskSchedulingPolicies(vararg values: Output) {
this.taskSchedulingPolicies = Output.all(values.asList())
}
/**
* @param values A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("slayhhqnccfklugv")
public suspend fun taskSchedulingPolicies(values: List>) {
this.taskSchedulingPolicies = Output.all(values)
}
/**
* @param value A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("rcocndfellsqtege")
public suspend fun userAccounts(`value`: Output>) {
this.userAccounts = value
}
@JvmName("ewrxhldveblojanu")
public suspend fun userAccounts(vararg values: Output) {
this.userAccounts = Output.all(values.asList())
}
/**
* @param values A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("prwvgnkgnjscifvj")
public suspend fun userAccounts(values: List>) {
this.userAccounts = Output.all(values)
}
/**
* @param value Specifies the size of the VM created in the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("esakqonoixnehnkg")
public suspend fun vmSize(`value`: Output) {
this.vmSize = value
}
/**
* @param value A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("gdnxtuhaeskaghid")
public suspend fun windows(`value`: Output>) {
this.windows = value
}
@JvmName("jpuqmhvumxhgpuct")
public suspend fun windows(vararg values: Output) {
this.windows = Output.all(values.asList())
}
/**
* @param values A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("jicymacvvtiukmxv")
public suspend fun windows(values: List>) {
this.windows = Output.all(values)
}
/**
* @param value Specifies the name of the Batch account in which the pool will be created. Changing this forces a new resource to be created.
*/
@JvmName("pfufypyxrpljjsxm")
public suspend fun accountName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.accountName = mapped
}
/**
* @param value A `auto_scale` block that describes the scale settings when using auto scale as defined below.
*/
@JvmName("krityynnparinwjw")
public suspend fun autoScale(`value`: PoolAutoScaleArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.autoScale = mapped
}
/**
* @param argument A `auto_scale` block that describes the scale settings when using auto scale as defined below.
*/
@JvmName("retgshkassndymvl")
public suspend fun autoScale(argument: suspend PoolAutoScaleArgsBuilder.() -> Unit) {
val toBeMapped = PoolAutoScaleArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.autoScale = mapped
}
/**
* @param value One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("uifewgsjxhvyglfa")
public suspend fun certificates(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.certificates = mapped
}
/**
* @param argument One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("arhgytsfjvkqmlel")
public suspend fun certificates(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolCertificateArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.certificates = mapped
}
/**
* @param argument One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("bqtqhstgytapprph")
public suspend fun certificates(vararg argument: suspend PoolCertificateArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
PoolCertificateArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.certificates = mapped
}
/**
* @param argument One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("vlhkwagiytlpibki")
public suspend fun certificates(argument: suspend PoolCertificateArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolCertificateArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.certificates = mapped
}
/**
* @param values One or more `certificate` blocks that describe the certificates to be installed on each compute node in the pool as defined below.
*/
@JvmName("etusnnaubmdtlira")
public suspend fun certificates(vararg values: PoolCertificateArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.certificates = mapped
}
/**
* @param value The container configuration used in the pool's VMs. One `container_configuration` block as defined below.
*/
@JvmName("khdlurmwruuytnnx")
public suspend fun containerConfiguration(`value`: PoolContainerConfigurationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.containerConfiguration = mapped
}
/**
* @param argument The container configuration used in the pool's VMs. One `container_configuration` block as defined below.
*/
@JvmName("xvhcwclgnuwequun")
public suspend
fun containerConfiguration(argument: suspend PoolContainerConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = PoolContainerConfigurationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.containerConfiguration = mapped
}
/**
* @param value A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("jkvgmbijmpgpucge")
public suspend fun dataDisks(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.dataDisks = mapped
}
/**
* @param argument A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("cargafcyhweporjy")
public suspend fun dataDisks(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolDataDiskArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.dataDisks = mapped
}
/**
* @param argument A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("exobfijvdwwnecdq")
public suspend fun dataDisks(vararg argument: suspend PoolDataDiskArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
PoolDataDiskArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.dataDisks = mapped
}
/**
* @param argument A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("kyycfxvuwueakius")
public suspend fun dataDisks(argument: suspend PoolDataDiskArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolDataDiskArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.dataDisks = mapped
}
/**
* @param values A `data_disks` block describes the data disk settings as defined below.
*/
@JvmName("wlnstnljbxbuqtgd")
public suspend fun dataDisks(vararg values: PoolDataDiskArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.dataDisks = mapped
}
/**
* @param value A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("omewtklddtylpiwg")
public suspend fun diskEncryptions(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.diskEncryptions = mapped
}
/**
* @param argument A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("xbcmcbpfluitpdyr")
public suspend
fun diskEncryptions(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolDiskEncryptionArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.diskEncryptions = mapped
}
/**
* @param argument A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("nqcybmpohalffavt")
public suspend fun diskEncryptions(
vararg
argument: suspend PoolDiskEncryptionArgsBuilder.() -> Unit,
) {
val toBeMapped = argument.toList().map {
PoolDiskEncryptionArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.diskEncryptions = mapped
}
/**
* @param argument A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("uxvrlwewpgpuumqu")
public suspend fun diskEncryptions(argument: suspend PoolDiskEncryptionArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolDiskEncryptionArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.diskEncryptions = mapped
}
/**
* @param values A `disk_encryption` block, as defined below, describes the disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image.
*/
@JvmName("ohrdtscokgdnxser")
public suspend fun diskEncryptions(vararg values: PoolDiskEncryptionArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.diskEncryptions = mapped
}
/**
* @param value Specifies the display name of the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("lpksapwangxqgnxt")
public suspend fun displayName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.displayName = mapped
}
/**
* @param value An `extensions` block as defined below.
*/
@JvmName("wxtepofnhwkbyjws")
public suspend fun extensions(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.extensions = mapped
}
/**
* @param argument An `extensions` block as defined below.
*/
@JvmName("mywyqqhjrvfujvvq")
public suspend fun extensions(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolExtensionArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.extensions = mapped
}
/**
* @param argument An `extensions` block as defined below.
*/
@JvmName("qkbpjcpnpdeueqxv")
public suspend fun extensions(vararg argument: suspend PoolExtensionArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
PoolExtensionArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.extensions = mapped
}
/**
* @param argument An `extensions` block as defined below.
*/
@JvmName("abytbyrhyavsvdle")
public suspend fun extensions(argument: suspend PoolExtensionArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolExtensionArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.extensions = mapped
}
/**
* @param values An `extensions` block as defined below.
*/
@JvmName("bkmcouilokqiggnr")
public suspend fun extensions(vararg values: PoolExtensionArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.extensions = mapped
}
/**
* @param value A `fixed_scale` block that describes the scale settings when using fixed scale as defined below.
*/
@JvmName("nlgtweiuupvkmmnm")
public suspend fun fixedScale(`value`: PoolFixedScaleArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.fixedScale = mapped
}
/**
* @param argument A `fixed_scale` block that describes the scale settings when using fixed scale as defined below.
*/
@JvmName("yvxxqqhdcovaampl")
public suspend fun fixedScale(argument: suspend PoolFixedScaleArgsBuilder.() -> Unit) {
val toBeMapped = PoolFixedScaleArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.fixedScale = mapped
}
/**
* @param value An `identity` block as defined below.
*/
@JvmName("mgxpeqddtqqdhera")
public suspend fun identity(`value`: PoolIdentityArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.identity = mapped
}
/**
* @param argument An `identity` block as defined below.
*/
@JvmName("cisvnhurtvjruwfd")
public suspend fun identity(argument: suspend PoolIdentityArgsBuilder.() -> Unit) {
val toBeMapped = PoolIdentityArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.identity = mapped
}
/**
* @param value Whether the pool permits direct communication between nodes. This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. Values allowed are `Disabled` and `Enabled`. Defaults to `Enabled`.
*/
@JvmName("ffegdialaexqrylp")
public suspend fun interNodeCommunication(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.interNodeCommunication = mapped
}
/**
* @param value The type of on-premises license to be used when deploying the operating system. This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are: "Windows_Server" - The on-premises license is for Windows Server. "Windows_Client" - The on-premises license is for Windows Client.
*/
@JvmName("drfavvuwhluvgjya")
public suspend fun licenseType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.licenseType = mapped
}
/**
* @param value Specifies the maximum number of tasks that can run concurrently on a single compute node in the pool. Defaults to `1`. Changing this forces a new resource to be created.
*/
@JvmName("tjsctnwyjouvpmqu")
public suspend fun maxTasksPerNode(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.maxTasksPerNode = mapped
}
/**
* @param value A map of custom batch pool metadata.
*/
@JvmName("dttopvsvhggejerp")
public suspend fun metadata(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.metadata = mapped
}
/**
* @param values A map of custom batch pool metadata.
*/
@JvmName("hraaehhruevdvshg")
public fun metadata(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.metadata = mapped
}
/**
* @param value A `mount` block defined as below.
*/
@JvmName("rplbrgtmyyhgcrvs")
public suspend fun mounts(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.mounts = mapped
}
/**
* @param argument A `mount` block defined as below.
*/
@JvmName("afynbvvoafcrxllg")
public suspend fun mounts(argument: List Unit>) {
val toBeMapped = argument.toList().map { PoolMountArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.mounts = mapped
}
/**
* @param argument A `mount` block defined as below.
*/
@JvmName("voxsmrcailbmtseq")
public suspend fun mounts(vararg argument: suspend PoolMountArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map { PoolMountArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.mounts = mapped
}
/**
* @param argument A `mount` block defined as below.
*/
@JvmName("ptadjgvtgksrfxmh")
public suspend fun mounts(argument: suspend PoolMountArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolMountArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.mounts = mapped
}
/**
* @param values A `mount` block defined as below.
*/
@JvmName("vwnqnjlduixjjpxw")
public suspend fun mounts(vararg values: PoolMountArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.mounts = mapped
}
/**
* @param value Specifies the name of the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("hbytenssthgmfnmj")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value A `network_configuration` block that describes the network configurations for the Batch pool as defined below. Changing this forces a new resource to be created.
*/
@JvmName("eetdcxwsmnboggtp")
public suspend fun networkConfiguration(`value`: PoolNetworkConfigurationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkConfiguration = mapped
}
/**
* @param argument A `network_configuration` block that describes the network configurations for the Batch pool as defined below. Changing this forces a new resource to be created.
*/
@JvmName("arkydcpuivhtsfve")
public suspend
fun networkConfiguration(argument: suspend PoolNetworkConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = PoolNetworkConfigurationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.networkConfiguration = mapped
}
/**
* @param value Specifies the SKU of the node agents that will be created in the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("absljtpuktfbhftq")
public suspend fun nodeAgentSkuId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodeAgentSkuId = mapped
}
/**
* @param value A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("vxxpehvwjdyrnulg")
public suspend fun nodePlacements(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.nodePlacements = mapped
}
/**
* @param argument A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("lsijocmirgbcjrox")
public suspend
fun nodePlacements(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolNodePlacementArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.nodePlacements = mapped
}
/**
* @param argument A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("ljnpqrwwvropxxpv")
public suspend fun nodePlacements(
vararg
argument: suspend PoolNodePlacementArgsBuilder.() -> Unit,
) {
val toBeMapped = argument.toList().map {
PoolNodePlacementArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.nodePlacements = mapped
}
/**
* @param argument A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("nrnqapckogvtjsrd")
public suspend fun nodePlacements(argument: suspend PoolNodePlacementArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolNodePlacementArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.nodePlacements = mapped
}
/**
* @param values A `node_placement` block that describes the placement policy for allocating nodes in the pool as defined below.
*/
@JvmName("cgmdejriidsjgxwj")
public suspend fun nodePlacements(vararg values: PoolNodePlacementArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.nodePlacements = mapped
}
/**
* @param value Specifies the ephemeral disk placement for operating system disk for all VMs in the pool. This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at and Linux VMs at . The only possible value is `CacheDisk`.
*/
@JvmName("tnqtinbbxohxqrfo")
public suspend fun osDiskPlacement(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.osDiskPlacement = mapped
}
/**
* @param value The name of the resource group in which to create the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("akqfwaypoillkxhy")
public suspend fun resourceGroupName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceGroupName = mapped
}
/**
* @param value A `start_task` block that describes the start task settings for the Batch pool as defined below.
*/
@JvmName("xgnnkklltxjotooo")
public suspend fun startTask(`value`: PoolStartTaskArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.startTask = mapped
}
/**
* @param argument A `start_task` block that describes the start task settings for the Batch pool as defined below.
*/
@JvmName("waqyaxvyaedrunef")
public suspend fun startTask(argument: suspend PoolStartTaskArgsBuilder.() -> Unit) {
val toBeMapped = PoolStartTaskArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.startTask = mapped
}
/**
* @param value Whether to stop if there is a pending resize operation on this pool.
*/
@JvmName("akhwatgxrijiupay")
public suspend fun stopPendingResizeOperation(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.stopPendingResizeOperation = mapped
}
/**
* @param value A `storage_image_reference` block for the virtual machines that will compose the Batch pool as defined below. Changing this forces a new resource to be created.
*/
@JvmName("mjmpsjadaaikfxtx")
public suspend fun storageImageReference(`value`: PoolStorageImageReferenceArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.storageImageReference = mapped
}
/**
* @param argument A `storage_image_reference` block for the virtual machines that will compose the Batch pool as defined below. Changing this forces a new resource to be created.
*/
@JvmName("pnntkaqovcxehfvv")
public suspend
fun storageImageReference(argument: suspend PoolStorageImageReferenceArgsBuilder.() -> Unit) {
val toBeMapped = PoolStorageImageReferenceArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.storageImageReference = mapped
}
/**
* @param value The desired node communication mode for the pool. Possible values are `Classic`, `Default` and `Simplified`.
*/
@JvmName("tumollsgebmkbgaa")
public suspend fun targetNodeCommunicationMode(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.targetNodeCommunicationMode = mapped
}
/**
* @param value A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("etueuxqcqwcypwnh")
public suspend fun taskSchedulingPolicies(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.taskSchedulingPolicies = mapped
}
/**
* @param argument A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("ctbaxniqiaqpsrjc")
public suspend
fun taskSchedulingPolicies(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolTaskSchedulingPolicyArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.taskSchedulingPolicies = mapped
}
/**
* @param argument A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("trgidbuefiqudxds")
public suspend fun taskSchedulingPolicies(
vararg
argument: suspend PoolTaskSchedulingPolicyArgsBuilder.() -> Unit,
) {
val toBeMapped = argument.toList().map {
PoolTaskSchedulingPolicyArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.taskSchedulingPolicies = mapped
}
/**
* @param argument A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("twigouqmiqqmtcsw")
public suspend
fun taskSchedulingPolicies(argument: suspend PoolTaskSchedulingPolicyArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
PoolTaskSchedulingPolicyArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.taskSchedulingPolicies = mapped
}
/**
* @param values A `task_scheduling_policy` block that describes how tasks are distributed across compute nodes in a pool as defined below. If not specified, the default is spread as defined below.
*/
@JvmName("tjcqhibfsrlaykmf")
public suspend fun taskSchedulingPolicies(vararg values: PoolTaskSchedulingPolicyArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.taskSchedulingPolicies = mapped
}
/**
* @param value A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("wtgwihomamqttcln")
public suspend fun userAccounts(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.userAccounts = mapped
}
/**
* @param argument A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("herhpinojuyarnpt")
public suspend fun userAccounts(argument: List Unit>) {
val toBeMapped = argument.toList().map {
PoolUserAccountArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.userAccounts = mapped
}
/**
* @param argument A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("ancrhnctbqllhcpm")
public suspend fun userAccounts(vararg argument: suspend PoolUserAccountArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
PoolUserAccountArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.userAccounts = mapped
}
/**
* @param argument A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("jnbnakeifaukyjtm")
public suspend fun userAccounts(argument: suspend PoolUserAccountArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolUserAccountArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.userAccounts = mapped
}
/**
* @param values A `user_accounts` block that describes the list of user accounts to be created on each node in the pool as defined below.
*/
@JvmName("kykjkrpoiohegkls")
public suspend fun userAccounts(vararg values: PoolUserAccountArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.userAccounts = mapped
}
/**
* @param value Specifies the size of the VM created in the Batch pool. Changing this forces a new resource to be created.
*/
@JvmName("voskkacnxfcedkfy")
public suspend fun vmSize(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.vmSize = mapped
}
/**
* @param value A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("auyqedforggmmhfg")
public suspend fun windows(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.windows = mapped
}
/**
* @param argument A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("ppbochqebqbrjaii")
public suspend fun windows(argument: List Unit>) {
val toBeMapped = argument.toList().map { PoolWindowArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.windows = mapped
}
/**
* @param argument A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("pgloqgfienxssvnm")
public suspend fun windows(vararg argument: suspend PoolWindowArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map { PoolWindowArgsBuilder().applySuspend { it() }.build() }
val mapped = of(toBeMapped)
this.windows = mapped
}
/**
* @param argument A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("kykkvjhjdbegflmk")
public suspend fun windows(argument: suspend PoolWindowArgsBuilder.() -> Unit) {
val toBeMapped = listOf(PoolWindowArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.windows = mapped
}
/**
* @param values A `windows` block that describes the Windows configuration in the pool as defined below.
* > **NOTE:** For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable `AZ_BATCH_CERTIFICATES_DIR` is supplied to the task to query for this location. For certificates with visibility of `remoteUser`, a `certs` directory is created in the user's home directory (e.g., `/home/{user-name}/certs`) and certificates are placed in that directory.
* > **Please Note:** `fixed_scale` and `auto_scale` blocks cannot be used both at the same time.
*/
@JvmName("sqqjtbabbajlxnof")
public suspend fun windows(vararg values: PoolWindowArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.windows = mapped
}
internal fun build(): PoolArgs = PoolArgs(
accountName = accountName,
autoScale = autoScale,
certificates = certificates,
containerConfiguration = containerConfiguration,
dataDisks = dataDisks,
diskEncryptions = diskEncryptions,
displayName = displayName,
extensions = extensions,
fixedScale = fixedScale,
identity = identity,
interNodeCommunication = interNodeCommunication,
licenseType = licenseType,
maxTasksPerNode = maxTasksPerNode,
metadata = metadata,
mounts = mounts,
name = name,
networkConfiguration = networkConfiguration,
nodeAgentSkuId = nodeAgentSkuId,
nodePlacements = nodePlacements,
osDiskPlacement = osDiskPlacement,
resourceGroupName = resourceGroupName,
startTask = startTask,
stopPendingResizeOperation = stopPendingResizeOperation,
storageImageReference = storageImageReference,
targetNodeCommunicationMode = targetNodeCommunicationMode,
taskSchedulingPolicies = taskSchedulingPolicies,
userAccounts = userAccounts,
vmSize = vmSize,
windows = windows,
)
}