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

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

package com.pulumi.azure.machinelearning.kotlin

import com.pulumi.azure.machinelearning.ComputeInstanceArgs.builder
import com.pulumi.azure.machinelearning.kotlin.inputs.ComputeInstanceAssignToUserArgs
import com.pulumi.azure.machinelearning.kotlin.inputs.ComputeInstanceAssignToUserArgsBuilder
import com.pulumi.azure.machinelearning.kotlin.inputs.ComputeInstanceIdentityArgs
import com.pulumi.azure.machinelearning.kotlin.inputs.ComputeInstanceIdentityArgsBuilder
import com.pulumi.azure.machinelearning.kotlin.inputs.ComputeInstanceSshArgs
import com.pulumi.azure.machinelearning.kotlin.inputs.ComputeInstanceSshArgsBuilder
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.Deprecated
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Manages a Machine Learning Compute Instance.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const current = azure.core.getClientConfig({});
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-rg",
 *     location: "west europe",
 *     tags: {
 *         stage: "example",
 *     },
 * });
 * const exampleInsights = new azure.appinsights.Insights("example", {
 *     name: "example-ai",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     applicationType: "web",
 * });
 * const exampleKeyVault = new azure.keyvault.KeyVault("example", {
 *     name: "example-kv",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     tenantId: current.then(current => current.tenantId),
 *     skuName: "standard",
 *     purgeProtectionEnabled: true,
 * });
 * const exampleAccount = new azure.storage.Account("example", {
 *     name: "examplesa",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     accountTier: "Standard",
 *     accountReplicationType: "LRS",
 * });
 * const exampleWorkspace = new azure.machinelearning.Workspace("example", {
 *     name: "example-mlw",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     applicationInsightsId: exampleInsights.id,
 *     keyVaultId: exampleKeyVault.id,
 *     storageAccountId: exampleAccount.id,
 *     identity: {
 *         type: "SystemAssigned",
 *     },
 * });
 * const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
 *     name: "example-vnet",
 *     addressSpaces: ["10.1.0.0/16"],
 *     location: example.location,
 *     resourceGroupName: example.name,
 * });
 * const exampleSubnet = new azure.network.Subnet("example", {
 *     name: "example-subnet",
 *     resourceGroupName: example.name,
 *     virtualNetworkName: exampleVirtualNetwork.name,
 *     addressPrefixes: ["10.1.0.0/24"],
 * });
 * const config = new pulumi.Config();
 * const sshKey = config.get("sshKey") || "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt [email protected]";
 * const exampleComputeInstance = new azure.machinelearning.ComputeInstance("example", {
 *     name: "example",
 *     machineLearningWorkspaceId: exampleWorkspace.id,
 *     virtualMachineSize: "STANDARD_DS2_V2",
 *     authorizationType: "personal",
 *     ssh: {
 *         publicKey: sshKey,
 *     },
 *     subnetResourceId: exampleSubnet.id,
 *     description: "foo",
 *     tags: {
 *         foo: "bar",
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * current = azure.core.get_client_config()
 * example = azure.core.ResourceGroup("example",
 *     name="example-rg",
 *     location="west europe",
 *     tags={
 *         "stage": "example",
 *     })
 * example_insights = azure.appinsights.Insights("example",
 *     name="example-ai",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     application_type="web")
 * example_key_vault = azure.keyvault.KeyVault("example",
 *     name="example-kv",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     tenant_id=current.tenant_id,
 *     sku_name="standard",
 *     purge_protection_enabled=True)
 * example_account = azure.storage.Account("example",
 *     name="examplesa",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     account_tier="Standard",
 *     account_replication_type="LRS")
 * example_workspace = azure.machinelearning.Workspace("example",
 *     name="example-mlw",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     application_insights_id=example_insights.id,
 *     key_vault_id=example_key_vault.id,
 *     storage_account_id=example_account.id,
 *     identity={
 *         "type": "SystemAssigned",
 *     })
 * example_virtual_network = azure.network.VirtualNetwork("example",
 *     name="example-vnet",
 *     address_spaces=["10.1.0.0/16"],
 *     location=example.location,
 *     resource_group_name=example.name)
 * example_subnet = azure.network.Subnet("example",
 *     name="example-subnet",
 *     resource_group_name=example.name,
 *     virtual_network_name=example_virtual_network.name,
 *     address_prefixes=["10.1.0.0/24"])
 * config = pulumi.Config()
 * ssh_key = config.get("sshKey")
 * if ssh_key is None:
 *     ssh_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt [email protected]"
 * example_compute_instance = azure.machinelearning.ComputeInstance("example",
 *     name="example",
 *     machine_learning_workspace_id=example_workspace.id,
 *     virtual_machine_size="STANDARD_DS2_V2",
 *     authorization_type="personal",
 *     ssh={
 *         "public_key": ssh_key,
 *     },
 *     subnet_resource_id=example_subnet.id,
 *     description="foo",
 *     tags={
 *         "foo": "bar",
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Azure = Pulumi.Azure;
 * return await Deployment.RunAsync(() =>
 * {
 *     var current = Azure.Core.GetClientConfig.Invoke();
 *     var example = new Azure.Core.ResourceGroup("example", new()
 *     {
 *         Name = "example-rg",
 *         Location = "west europe",
 *         Tags =
 *         {
 *             { "stage", "example" },
 *         },
 *     });
 *     var exampleInsights = new Azure.AppInsights.Insights("example", new()
 *     {
 *         Name = "example-ai",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         ApplicationType = "web",
 *     });
 *     var exampleKeyVault = new Azure.KeyVault.KeyVault("example", new()
 *     {
 *         Name = "example-kv",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         TenantId = current.Apply(getClientConfigResult => getClientConfigResult.TenantId),
 *         SkuName = "standard",
 *         PurgeProtectionEnabled = true,
 *     });
 *     var exampleAccount = new Azure.Storage.Account("example", new()
 *     {
 *         Name = "examplesa",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         AccountTier = "Standard",
 *         AccountReplicationType = "LRS",
 *     });
 *     var exampleWorkspace = new Azure.MachineLearning.Workspace("example", new()
 *     {
 *         Name = "example-mlw",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         ApplicationInsightsId = exampleInsights.Id,
 *         KeyVaultId = exampleKeyVault.Id,
 *         StorageAccountId = exampleAccount.Id,
 *         Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs
 *         {
 *             Type = "SystemAssigned",
 *         },
 *     });
 *     var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
 *     {
 *         Name = "example-vnet",
 *         AddressSpaces = new[]
 *         {
 *             "10.1.0.0/16",
 *         },
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *     });
 *     var exampleSubnet = new Azure.Network.Subnet("example", new()
 *     {
 *         Name = "example-subnet",
 *         ResourceGroupName = example.Name,
 *         VirtualNetworkName = exampleVirtualNetwork.Name,
 *         AddressPrefixes = new[]
 *         {
 *             "10.1.0.0/24",
 *         },
 *     });
 *     var config = new Config();
 *     var sshKey = config.Get("sshKey") ?? "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt [email protected]";
 *     var exampleComputeInstance = new Azure.MachineLearning.ComputeInstance("example", new()
 *     {
 *         Name = "example",
 *         MachineLearningWorkspaceId = exampleWorkspace.Id,
 *         VirtualMachineSize = "STANDARD_DS2_V2",
 *         AuthorizationType = "personal",
 *         Ssh = new Azure.MachineLearning.Inputs.ComputeInstanceSshArgs
 *         {
 *             PublicKey = sshKey,
 *         },
 *         SubnetResourceId = exampleSubnet.Id,
 *         Description = "foo",
 *         Tags =
 *         {
 *             { "foo", "bar" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/machinelearning"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		current, err := core.GetClientConfig(ctx, nil, nil)
 * 		if err != nil {
 * 			return err
 * 		}
 * 		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
 * 			Name:     pulumi.String("example-rg"),
 * 			Location: pulumi.String("west europe"),
 * 			Tags: pulumi.StringMap{
 * 				"stage": pulumi.String("example"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleInsights, err := appinsights.NewInsights(ctx, "example", &appinsights.InsightsArgs{
 * 			Name:              pulumi.String("example-ai"),
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 			ApplicationType:   pulumi.String("web"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleKeyVault, err := keyvault.NewKeyVault(ctx, "example", &keyvault.KeyVaultArgs{
 * 			Name:                   pulumi.String("example-kv"),
 * 			Location:               example.Location,
 * 			ResourceGroupName:      example.Name,
 * 			TenantId:               pulumi.String(current.TenantId),
 * 			SkuName:                pulumi.String("standard"),
 * 			PurgeProtectionEnabled: pulumi.Bool(true),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
 * 			Name:                   pulumi.String("examplesa"),
 * 			Location:               example.Location,
 * 			ResourceGroupName:      example.Name,
 * 			AccountTier:            pulumi.String("Standard"),
 * 			AccountReplicationType: pulumi.String("LRS"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleWorkspace, err := machinelearning.NewWorkspace(ctx, "example", &machinelearning.WorkspaceArgs{
 * 			Name:                  pulumi.String("example-mlw"),
 * 			Location:              example.Location,
 * 			ResourceGroupName:     example.Name,
 * 			ApplicationInsightsId: exampleInsights.ID(),
 * 			KeyVaultId:            exampleKeyVault.ID(),
 * 			StorageAccountId:      exampleAccount.ID(),
 * 			Identity: &machinelearning.WorkspaceIdentityArgs{
 * 				Type: pulumi.String("SystemAssigned"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
 * 			Name: pulumi.String("example-vnet"),
 * 			AddressSpaces: pulumi.StringArray{
 * 				pulumi.String("10.1.0.0/16"),
 * 			},
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
 * 			Name:               pulumi.String("example-subnet"),
 * 			ResourceGroupName:  example.Name,
 * 			VirtualNetworkName: exampleVirtualNetwork.Name,
 * 			AddressPrefixes: pulumi.StringArray{
 * 				pulumi.String("10.1.0.0/24"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		cfg := config.New(ctx, "")
 * 		sshKey := "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt [email protected]"
 * 		if param := cfg.Get("sshKey"); param != "" {
 * 			sshKey = param
 * 		}
 * 		_, err = machinelearning.NewComputeInstance(ctx, "example", &machinelearning.ComputeInstanceArgs{
 * 			Name:                       pulumi.String("example"),
 * 			MachineLearningWorkspaceId: exampleWorkspace.ID(),
 * 			VirtualMachineSize:         pulumi.String("STANDARD_DS2_V2"),
 * 			AuthorizationType:          pulumi.String("personal"),
 * 			Ssh: &machinelearning.ComputeInstanceSshArgs{
 * 				PublicKey: pulumi.String(sshKey),
 * 			},
 * 			SubnetResourceId: exampleSubnet.ID(),
 * 			Description:      pulumi.String("foo"),
 * 			Tags: pulumi.StringMap{
 * 				"foo": pulumi.String("bar"),
 * 			},
 * 		})
 * 		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.CoreFunctions;
 * import com.pulumi.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.appinsights.Insights;
 * import com.pulumi.azure.appinsights.InsightsArgs;
 * import com.pulumi.azure.keyvault.KeyVault;
 * import com.pulumi.azure.keyvault.KeyVaultArgs;
 * import com.pulumi.azure.storage.Account;
 * import com.pulumi.azure.storage.AccountArgs;
 * import com.pulumi.azure.machinelearning.Workspace;
 * import com.pulumi.azure.machinelearning.WorkspaceArgs;
 * import com.pulumi.azure.machinelearning.inputs.WorkspaceIdentityArgs;
 * import com.pulumi.azure.network.VirtualNetwork;
 * import com.pulumi.azure.network.VirtualNetworkArgs;
 * import com.pulumi.azure.network.Subnet;
 * import com.pulumi.azure.network.SubnetArgs;
 * import com.pulumi.azure.machinelearning.ComputeInstance;
 * import com.pulumi.azure.machinelearning.ComputeInstanceArgs;
 * import com.pulumi.azure.machinelearning.inputs.ComputeInstanceSshArgs;
 * 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) {
 *         final var config = ctx.config();
 *         final var current = CoreFunctions.getClientConfig();
 *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
 *             .name("example-rg")
 *             .location("west europe")
 *             .tags(Map.of("stage", "example"))
 *             .build());
 *         var exampleInsights = new Insights("exampleInsights", InsightsArgs.builder()
 *             .name("example-ai")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .applicationType("web")
 *             .build());
 *         var exampleKeyVault = new KeyVault("exampleKeyVault", KeyVaultArgs.builder()
 *             .name("example-kv")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
 *             .skuName("standard")
 *             .purgeProtectionEnabled(true)
 *             .build());
 *         var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
 *             .name("examplesa")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .accountTier("Standard")
 *             .accountReplicationType("LRS")
 *             .build());
 *         var exampleWorkspace = new Workspace("exampleWorkspace", WorkspaceArgs.builder()
 *             .name("example-mlw")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .applicationInsightsId(exampleInsights.id())
 *             .keyVaultId(exampleKeyVault.id())
 *             .storageAccountId(exampleAccount.id())
 *             .identity(WorkspaceIdentityArgs.builder()
 *                 .type("SystemAssigned")
 *                 .build())
 *             .build());
 *         var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
 *             .name("example-vnet")
 *             .addressSpaces("10.1.0.0/16")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .build());
 *         var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
 *             .name("example-subnet")
 *             .resourceGroupName(example.name())
 *             .virtualNetworkName(exampleVirtualNetwork.name())
 *             .addressPrefixes("10.1.0.0/24")
 *             .build());
 *         final var sshKey = config.get("sshKey").orElse("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt [email protected]");
 *         var exampleComputeInstance = new ComputeInstance("exampleComputeInstance", ComputeInstanceArgs.builder()
 *             .name("example")
 *             .machineLearningWorkspaceId(exampleWorkspace.id())
 *             .virtualMachineSize("STANDARD_DS2_V2")
 *             .authorizationType("personal")
 *             .ssh(ComputeInstanceSshArgs.builder()
 *                 .publicKey(sshKey)
 *                 .build())
 *             .subnetResourceId(exampleSubnet.id())
 *             .description("foo")
 *             .tags(Map.of("foo", "bar"))
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * configuration:
 *   sshKey:
 *     type: string
 *     default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt [email protected]
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: example-rg
 *       location: west europe
 *       tags:
 *         stage: example
 *   exampleInsights:
 *     type: azure:appinsights:Insights
 *     name: example
 *     properties:
 *       name: example-ai
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       applicationType: web
 *   exampleKeyVault:
 *     type: azure:keyvault:KeyVault
 *     name: example
 *     properties:
 *       name: example-kv
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       tenantId: ${current.tenantId}
 *       skuName: standard
 *       purgeProtectionEnabled: true
 *   exampleAccount:
 *     type: azure:storage:Account
 *     name: example
 *     properties:
 *       name: examplesa
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       accountTier: Standard
 *       accountReplicationType: LRS
 *   exampleWorkspace:
 *     type: azure:machinelearning:Workspace
 *     name: example
 *     properties:
 *       name: example-mlw
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       applicationInsightsId: ${exampleInsights.id}
 *       keyVaultId: ${exampleKeyVault.id}
 *       storageAccountId: ${exampleAccount.id}
 *       identity:
 *         type: SystemAssigned
 *   exampleVirtualNetwork:
 *     type: azure:network:VirtualNetwork
 *     name: example
 *     properties:
 *       name: example-vnet
 *       addressSpaces:
 *         - 10.1.0.0/16
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *   exampleSubnet:
 *     type: azure:network:Subnet
 *     name: example
 *     properties:
 *       name: example-subnet
 *       resourceGroupName: ${example.name}
 *       virtualNetworkName: ${exampleVirtualNetwork.name}
 *       addressPrefixes:
 *         - 10.1.0.0/24
 *   exampleComputeInstance:
 *     type: azure:machinelearning:ComputeInstance
 *     name: example
 *     properties:
 *       name: example
 *       machineLearningWorkspaceId: ${exampleWorkspace.id}
 *       virtualMachineSize: STANDARD_DS2_V2
 *       authorizationType: personal
 *       ssh:
 *         publicKey: ${sshKey}
 *       subnetResourceId: ${exampleSubnet.id}
 *       description: foo
 *       tags:
 *         foo: bar
 * variables:
 *   current:
 *     fn::invoke:
 *       Function: azure:core:getClientConfig
 *       Arguments: {}
 * ```
 * 
 * ## Import
 * Machine Learning Compute Instances can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:machinelearning/computeInstance:ComputeInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.MachineLearningServices/workspaces/workspace1/computes/compute1
 * ```
 * @property assignToUser A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property authorizationType The Compute Instance Authorization type. Possible values include: `personal`. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property description The description of the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property identity An `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property localAuthEnabled Whether local authentication methods is enabled. Defaults to `true`. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property location The Azure Region where the Machine Learning Compute Instance should exist.
 * > **Note:** The `location` field is not supported for Machine Learning Compute Instances and has no effect so as such will be removed in v4.0 of the AzureRM provider. For more information, please see the product [documentation](https://learn.microsoft.com/azure/machine-learning/how-to-create-attach-compute-cluster?view=azureml-api-2&tabs=python).
 * @property machineLearningWorkspaceId The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property name The name which should be used for this Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property nodePublicIpEnabled Whether the compute instance will have a public ip. To set this to false a `subnet_resource_id` needs to be set. Defaults to `true`. Changing this forces a new Machine Learning Compute Cluster to be created.
 * @property ssh A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property subnetResourceId Virtual network subnet resource ID the compute nodes belong to. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property tags A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
 * @property virtualMachineSize The Virtual Machine Size. Changing this forces a new Machine Learning Compute Instance to be created.
 */
public data class ComputeInstanceArgs(
    public val assignToUser: Output? = null,
    public val authorizationType: Output? = null,
    public val description: Output? = null,
    public val identity: Output? = null,
    public val localAuthEnabled: Output? = null,
    @Deprecated(
        message = """
  The `azure.machinelearning.ComputeInstance` must be deployed to the same location as the
      associated `azure.machinelearning.Workspace` resource, as the `location` fields must be the
      same the `location` field no longer has any effect and will be removed in version 4.0 of the
      AzureRM Provider
  """,
    )
    public val location: Output? = null,
    public val machineLearningWorkspaceId: Output? = null,
    public val name: Output? = null,
    public val nodePublicIpEnabled: Output? = null,
    public val ssh: Output? = null,
    public val subnetResourceId: Output? = null,
    public val tags: Output>? = null,
    public val virtualMachineSize: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.machinelearning.ComputeInstanceArgs =
        com.pulumi.azure.machinelearning.ComputeInstanceArgs.builder()
            .assignToUser(assignToUser?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .authorizationType(authorizationType?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .localAuthEnabled(localAuthEnabled?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .machineLearningWorkspaceId(machineLearningWorkspaceId?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .nodePublicIpEnabled(nodePublicIpEnabled?.applyValue({ args0 -> args0 }))
            .ssh(ssh?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .subnetResourceId(subnetResourceId?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .virtualMachineSize(virtualMachineSize?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ComputeInstanceArgs].
 */
@PulumiTagMarker
public class ComputeInstanceArgsBuilder internal constructor() {
    private var assignToUser: Output? = null

    private var authorizationType: Output? = null

    private var description: Output? = null

    private var identity: Output? = null

    private var localAuthEnabled: Output? = null

    private var location: Output? = null

    private var machineLearningWorkspaceId: Output? = null

    private var name: Output? = null

    private var nodePublicIpEnabled: Output? = null

    private var ssh: Output? = null

    private var subnetResourceId: Output? = null

    private var tags: Output>? = null

    private var virtualMachineSize: Output? = null

    /**
     * @param value A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("xqlokkmrjjxhakwu")
    public suspend fun assignToUser(`value`: Output) {
        this.assignToUser = value
    }

    /**
     * @param value The Compute Instance Authorization type. Possible values include: `personal`. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("xexmnixsioxdvcru")
    public suspend fun authorizationType(`value`: Output) {
        this.authorizationType = value
    }

    /**
     * @param value The description of the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("gwysdjtuknterqfb")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value An `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("snahiodndwemhtyp")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value Whether local authentication methods is enabled. Defaults to `true`. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("wwxltyoqmbcgramu")
    public suspend fun localAuthEnabled(`value`: Output) {
        this.localAuthEnabled = value
    }

    /**
     * @param value The Azure Region where the Machine Learning Compute Instance should exist.
     * > **Note:** The `location` field is not supported for Machine Learning Compute Instances and has no effect so as such will be removed in v4.0 of the AzureRM provider. For more information, please see the product [documentation](https://learn.microsoft.com/azure/machine-learning/how-to-create-attach-compute-cluster?view=azureml-api-2&tabs=python).
     */
    @Deprecated(
        message = """
  The `azure.machinelearning.ComputeInstance` must be deployed to the same location as the
      associated `azure.machinelearning.Workspace` resource, as the `location` fields must be the
      same the `location` field no longer has any effect and will be removed in version 4.0 of the
      AzureRM Provider
  """,
    )
    @JvmName("uvainvwdllmnglfy")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("lsvndlpgpbjikypd")
    public suspend fun machineLearningWorkspaceId(`value`: Output) {
        this.machineLearningWorkspaceId = value
    }

    /**
     * @param value The name which should be used for this Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("gyjrccfuyltiewxx")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Whether the compute instance will have a public ip. To set this to false a `subnet_resource_id` needs to be set. Defaults to `true`. Changing this forces a new Machine Learning Compute Cluster to be created.
     */
    @JvmName("hbgbcjwlrebgemii")
    public suspend fun nodePublicIpEnabled(`value`: Output) {
        this.nodePublicIpEnabled = value
    }

    /**
     * @param value A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("gkngrcdhfbunmste")
    public suspend fun ssh(`value`: Output) {
        this.ssh = value
    }

    /**
     * @param value Virtual network subnet resource ID the compute nodes belong to. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("aldkrrjtmreeigct")
    public suspend fun subnetResourceId(`value`: Output) {
        this.subnetResourceId = value
    }

    /**
     * @param value A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("ocbpyehdqoduhkuu")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value The Virtual Machine Size. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("dggvgiowrnwgkvhj")
    public suspend fun virtualMachineSize(`value`: Output) {
        this.virtualMachineSize = value
    }

    /**
     * @param value A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("tefeslambbeaejmp")
    public suspend fun assignToUser(`value`: ComputeInstanceAssignToUserArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assignToUser = mapped
    }

    /**
     * @param argument A `assign_to_user` block as defined below. A user explicitly assigned to a personal compute instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("tyjftfvrwdgcagqt")
    public suspend fun assignToUser(argument: suspend ComputeInstanceAssignToUserArgsBuilder.() -> Unit) {
        val toBeMapped = ComputeInstanceAssignToUserArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.assignToUser = mapped
    }

    /**
     * @param value The Compute Instance Authorization type. Possible values include: `personal`. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("ptyvbtrqcxsxeigl")
    public suspend fun authorizationType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authorizationType = mapped
    }

    /**
     * @param value The description of the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("vfofktopsrrqdbmw")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value An `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("jywqaphxrlaltldk")
    public suspend fun identity(`value`: ComputeInstanceIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument An `identity` block as defined below. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("akktffsvioxrsjha")
    public suspend fun identity(argument: suspend ComputeInstanceIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = ComputeInstanceIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value Whether local authentication methods is enabled. Defaults to `true`. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("orewabtifqjnvrsn")
    public suspend fun localAuthEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.localAuthEnabled = mapped
    }

    /**
     * @param value The Azure Region where the Machine Learning Compute Instance should exist.
     * > **Note:** The `location` field is not supported for Machine Learning Compute Instances and has no effect so as such will be removed in v4.0 of the AzureRM provider. For more information, please see the product [documentation](https://learn.microsoft.com/azure/machine-learning/how-to-create-attach-compute-cluster?view=azureml-api-2&tabs=python).
     */
    @Deprecated(
        message = """
  The `azure.machinelearning.ComputeInstance` must be deployed to the same location as the
      associated `azure.machinelearning.Workspace` resource, as the `location` fields must be the
      same the `location` field no longer has any effect and will be removed in version 4.0 of the
      AzureRM Provider
  """,
    )
    @JvmName("tajuwvfanmufelxx")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The ID of the Machine Learning Workspace. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("ncuknteoeeiwbbyx")
    public suspend fun machineLearningWorkspaceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.machineLearningWorkspaceId = mapped
    }

    /**
     * @param value The name which should be used for this Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("aipcujchevosyiiy")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Whether the compute instance will have a public ip. To set this to false a `subnet_resource_id` needs to be set. Defaults to `true`. Changing this forces a new Machine Learning Compute Cluster to be created.
     */
    @JvmName("frshyehcroqahbsm")
    public suspend fun nodePublicIpEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodePublicIpEnabled = mapped
    }

    /**
     * @param value A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("vlynnynmmlxxsycs")
    public suspend fun ssh(`value`: ComputeInstanceSshArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ssh = mapped
    }

    /**
     * @param argument A `ssh` block as defined below. Specifies policy and settings for SSH access. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("rqdahdfqtcmvgpwj")
    public suspend fun ssh(argument: suspend ComputeInstanceSshArgsBuilder.() -> Unit) {
        val toBeMapped = ComputeInstanceSshArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.ssh = mapped
    }

    /**
     * @param value Virtual network subnet resource ID the compute nodes belong to. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("dxhbbfaoykslcaiw")
    public suspend fun subnetResourceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetResourceId = mapped
    }

    /**
     * @param value A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("xamccteicpyqgxal")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("citywicymmnmnced")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The Virtual Machine Size. Changing this forces a new Machine Learning Compute Instance to be created.
     */
    @JvmName("uyulhfqntbvknrwg")
    public suspend fun virtualMachineSize(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.virtualMachineSize = mapped
    }

    internal fun build(): ComputeInstanceArgs = ComputeInstanceArgs(
        assignToUser = assignToUser,
        authorizationType = authorizationType,
        description = description,
        identity = identity,
        localAuthEnabled = localAuthEnabled,
        location = location,
        machineLearningWorkspaceId = machineLearningWorkspaceId,
        name = name,
        nodePublicIpEnabled = nodePublicIpEnabled,
        ssh = ssh,
        subnetResourceId = subnetResourceId,
        tags = tags,
        virtualMachineSize = virtualMachineSize,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy