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

com.pulumi.azurenative.hdinsight.kotlin.ClusterArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.hdinsight.kotlin

import com.pulumi.azurenative.hdinsight.ClusterArgs.builder
import com.pulumi.azurenative.hdinsight.kotlin.inputs.ClusterCreatePropertiesArgs
import com.pulumi.azurenative.hdinsight.kotlin.inputs.ClusterCreatePropertiesArgsBuilder
import com.pulumi.azurenative.hdinsight.kotlin.inputs.ClusterIdentityArgs
import com.pulumi.azurenative.hdinsight.kotlin.inputs.ClusterIdentityArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * The HDInsight cluster.
 * Azure REST API version: 2021-06-01. Prior API version in Azure Native 1.x: 2018-06-01-preview.
 * Other available API versions: 2023-04-15-preview, 2023-06-01-preview, 2023-08-15-preview, 2023-11-01-preview, 2024-05-01-preview, 2024-08-01-preview.
 * ## Example Usage
 * ### Create HDInsight cluster with Autoscale configuration
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 ComponentVersion =
 *                 {
 *                     { "Hadoop", "2.7" },
 *                 },
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         AutoscaleConfiguration = new AzureNative.HDInsight.Inputs.AutoscaleArgs
 *                         {
 *                             Recurrence = new AzureNative.HDInsight.Inputs.AutoscaleRecurrenceArgs
 *                             {
 *                                 Schedule = new[]
 *                                 {
 *                                     new AzureNative.HDInsight.Inputs.AutoscaleScheduleArgs
 *                                     {
 *                                         Days = new[]
 *                                         {
 *                                             AzureNative.HDInsight.DaysOfWeek.Monday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Tuesday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Wednesday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Thursday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Friday,
 *                                         },
 *                                         TimeAndCapacity = new AzureNative.HDInsight.Inputs.AutoscaleTimeAndCapacityArgs
 *                                         {
 *                                             MaxInstanceCount = 3,
 *                                             MinInstanceCount = 3,
 *                                             Time = "09:00",
 *                                         },
 *                                     },
 *                                     new AzureNative.HDInsight.Inputs.AutoscaleScheduleArgs
 *                                     {
 *                                         Days = new[]
 *                                         {
 *                                             AzureNative.HDInsight.DaysOfWeek.Monday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Tuesday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Wednesday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Thursday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Friday,
 *                                         },
 *                                         TimeAndCapacity = new AzureNative.HDInsight.Inputs.AutoscaleTimeAndCapacityArgs
 *                                         {
 *                                             MaxInstanceCount = 6,
 *                                             MinInstanceCount = 6,
 *                                             Time = "18:00",
 *                                         },
 *                                     },
 *                                     new AzureNative.HDInsight.Inputs.AutoscaleScheduleArgs
 *                                     {
 *                                         Days = new[]
 *                                         {
 *                                             AzureNative.HDInsight.DaysOfWeek.Saturday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Sunday,
 *                                         },
 *                                         TimeAndCapacity = new AzureNative.HDInsight.Inputs.AutoscaleTimeAndCapacityArgs
 *                                         {
 *                                             MaxInstanceCount = 2,
 *                                             MinInstanceCount = 2,
 *                                             Time = "09:00",
 *                                         },
 *                                     },
 *                                     new AzureNative.HDInsight.Inputs.AutoscaleScheduleArgs
 *                                     {
 *                                         Days = new[]
 *                                         {
 *                                             AzureNative.HDInsight.DaysOfWeek.Saturday,
 *                                             AzureNative.HDInsight.DaysOfWeek.Sunday,
 *                                         },
 *                                         TimeAndCapacity = new AzureNative.HDInsight.Inputs.AutoscaleTimeAndCapacityArgs
 *                                         {
 *                                             MaxInstanceCount = 4,
 *                                             MinInstanceCount = 4,
 *                                             Time = "18:00",
 *                                         },
 *                                     },
 *                                 },
 *                                 TimeZone = "China Standard Time",
 *                             },
 *                         },
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D4_V2",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         ScriptActions = new() { },
 *                         TargetInstanceCount = 4,
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "hdinsight-autoscale-tes-2019-06-18t05-49-16-591z",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					ComponentVersion: pulumi.StringMap{
 * 						"Hadoop": pulumi.String("2.7"),
 * 					},
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							AutoscaleConfiguration: &hdinsight.AutoscaleArgs{
 * 								Recurrence: &hdinsight.AutoscaleRecurrenceArgs{
 * 									Schedule: hdinsight.AutoscaleScheduleArray{
 * 										&hdinsight.AutoscaleScheduleArgs{
 * 											Days: pulumi.StringArray{
 * 												pulumi.String(hdinsight.DaysOfWeekMonday),
 * 												pulumi.String(hdinsight.DaysOfWeekTuesday),
 * 												pulumi.String(hdinsight.DaysOfWeekWednesday),
 * 												pulumi.String(hdinsight.DaysOfWeekThursday),
 * 												pulumi.String(hdinsight.DaysOfWeekFriday),
 * 											},
 * 											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
 * 												MaxInstanceCount: pulumi.Int(3),
 * 												MinInstanceCount: pulumi.Int(3),
 * 												Time:             pulumi.String("09:00"),
 * 											},
 * 										},
 * 										&hdinsight.AutoscaleScheduleArgs{
 * 											Days: pulumi.StringArray{
 * 												pulumi.String(hdinsight.DaysOfWeekMonday),
 * 												pulumi.String(hdinsight.DaysOfWeekTuesday),
 * 												pulumi.String(hdinsight.DaysOfWeekWednesday),
 * 												pulumi.String(hdinsight.DaysOfWeekThursday),
 * 												pulumi.String(hdinsight.DaysOfWeekFriday),
 * 											},
 * 											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
 * 												MaxInstanceCount: pulumi.Int(6),
 * 												MinInstanceCount: pulumi.Int(6),
 * 												Time:             pulumi.String("18:00"),
 * 											},
 * 										},
 * 										&hdinsight.AutoscaleScheduleArgs{
 * 											Days: pulumi.StringArray{
 * 												pulumi.String(hdinsight.DaysOfWeekSaturday),
 * 												pulumi.String(hdinsight.DaysOfWeekSunday),
 * 											},
 * 											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
 * 												MaxInstanceCount: pulumi.Int(2),
 * 												MinInstanceCount: pulumi.Int(2),
 * 												Time:             pulumi.String("09:00"),
 * 											},
 * 										},
 * 										&hdinsight.AutoscaleScheduleArgs{
 * 											Days: pulumi.StringArray{
 * 												pulumi.String(hdinsight.DaysOfWeekSaturday),
 * 												pulumi.String(hdinsight.DaysOfWeekSunday),
 * 											},
 * 											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
 * 												MaxInstanceCount: pulumi.Int(4),
 * 												MinInstanceCount: pulumi.Int(4),
 * 												Time:             pulumi.String("18:00"),
 * 											},
 * 										},
 * 									},
 * 									TimeZone: pulumi.String("China Standard Time"),
 * 								},
 * 							},
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D4_V2"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							ScriptActions:       hdinsight.ScriptActionArray{},
 * 							TargetInstanceCount: pulumi.Int(4),
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("hdinsight-autoscale-tes-2019-06-18t05-49-16-591z"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .componentVersion(Map.of("Hadoop", "2.7"))
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(RoleArgs.builder()
 *                         .autoscaleConfiguration(AutoscaleArgs.builder()
 *                             .recurrence(AutoscaleRecurrenceArgs.builder()
 *                                 .schedule(
 *                                     AutoscaleScheduleArgs.builder()
 *                                         .days(
 *                                             "Monday",
 *                                             "Tuesday",
 *                                             "Wednesday",
 *                                             "Thursday",
 *                                             "Friday")
 *                                         .timeAndCapacity(AutoscaleTimeAndCapacityArgs.builder()
 *                                             .maxInstanceCount(3)
 *                                             .minInstanceCount(3)
 *                                             .time("09:00")
 *                                             .build())
 *                                         .build(),
 *                                     AutoscaleScheduleArgs.builder()
 *                                         .days(
 *                                             "Monday",
 *                                             "Tuesday",
 *                                             "Wednesday",
 *                                             "Thursday",
 *                                             "Friday")
 *                                         .timeAndCapacity(AutoscaleTimeAndCapacityArgs.builder()
 *                                             .maxInstanceCount(6)
 *                                             .minInstanceCount(6)
 *                                             .time("18:00")
 *                                             .build())
 *                                         .build(),
 *                                     AutoscaleScheduleArgs.builder()
 *                                         .days(
 *                                             "Saturday",
 *                                             "Sunday")
 *                                         .timeAndCapacity(AutoscaleTimeAndCapacityArgs.builder()
 *                                             .maxInstanceCount(2)
 *                                             .minInstanceCount(2)
 *                                             .time("09:00")
 *                                             .build())
 *                                         .build(),
 *                                     AutoscaleScheduleArgs.builder()
 *                                         .days(
 *                                             "Saturday",
 *                                             "Sunday")
 *                                         .timeAndCapacity(AutoscaleTimeAndCapacityArgs.builder()
 *                                             .maxInstanceCount(4)
 *                                             .minInstanceCount(4)
 *                                             .time("18:00")
 *                                             .build())
 *                                         .build())
 *                                 .timeZone("China Standard Time")
 *                                 .build())
 *                             .build())
 *                         .hardwareProfile(HardwareProfileArgs.builder()
 *                             .vmSize("Standard_D4_V2")
 *                             .build())
 *                         .name("workernode")
 *                         .osProfile(OsProfileArgs.builder()
 *                             .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                 .password("**********")
 *                                 .username("sshuser")
 *                                 .build())
 *                             .build())
 *                         .scriptActions()
 *                         .targetInstanceCount(4)
 *                         .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("hdinsight-autoscale-tes-2019-06-18t05-49-16-591z")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create Hadoop cluster with Azure Data Lake Storage Gen 2
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = "true",
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 4,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         FileSystem = "default",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.dfs.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *         Tags =
 *         {
 *             { "key1", "val1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": "true",
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(4),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							FileSystem: pulumi.String("default"),
 * 							IsDefault:  pulumi.Bool(true),
 * 							Key:        pulumi.String("storagekey"),
 * 							Name:       pulumi.String("mystorage.dfs.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 			Tags: pulumi.StringMap{
 * 				"key1": pulumi.String("val1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", "true"),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(4)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .fileSystem("default")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.dfs.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .tags(Map.of("key1", "val1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create Hadoop on Linux cluster with SSH password
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = "true",
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.5",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 4,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *         Tags =
 *         {
 *             { "key1", "val1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": "true",
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.5"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(4),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 			Tags: pulumi.StringMap{
 * 				"key1": pulumi.String("val1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", "true"),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.5")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(4)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .tags(Map.of("key1", "val1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create Hadoop on Linux cluster with SSH public key
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.5",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 4,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *         Tags =
 *         {
 *             { "key1", "val1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.5"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(4),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 			Tags: pulumi.StringMap{
 * 				"key1": pulumi.String("val1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.5")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(4)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .tags(Map.of("key1", "val1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create Kafka cluster with Kafka Rest Proxy
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 ComponentVersion =
 *                 {
 *                     { "Kafka", "2.1" },
 *                 },
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "kafka",
 *             },
 *             ClusterVersion = "4.0",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Large",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         DataDisksGroups = new[]
 *                         {
 *                             new AzureNative.HDInsight.Inputs.DataDisksGroupsArgs
 *                             {
 *                                 DisksPerNode = 8,
 *                             },
 *                         },
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Large",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D4_v2",
 *                         },
 *                         Name = "kafkamanagementnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "kafkauser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                 },
 *             },
 *             KafkaRestProperties = new AzureNative.HDInsight.Inputs.KafkaRestPropertiesArgs
 *             {
 *                 ClientGroupInfo = new AzureNative.HDInsight.Inputs.ClientGroupInfoArgs
 *                 {
 *                     GroupId = "00000000-0000-0000-0000-111111111111",
 *                     GroupName = "Kafka security group name",
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					ComponentVersion: pulumi.StringMap{
 * 						"Kafka": pulumi.String("2.1"),
 * 					},
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("kafka"),
 * 				},
 * 				ClusterVersion: pulumi.String("4.0"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Large"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							DataDisksGroups: hdinsight.DataDisksGroupsArray{
 * 								&hdinsight.DataDisksGroupsArgs{
 * 									DisksPerNode: pulumi.Int(8),
 * 								},
 * 							},
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Large"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							Name: pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D4_v2"),
 * 							},
 * 							Name: pulumi.String("kafkamanagementnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("kafkauser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 					},
 * 				},
 * 				KafkaRestProperties: &hdinsight.KafkaRestPropertiesArgs{
 * 					ClientGroupInfo: &hdinsight.ClientGroupInfoArgs{
 * 						GroupId:   pulumi.String("00000000-0000-0000-0000-111111111111"),
 * 						GroupName: pulumi.String("Kafka security group name"),
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.KafkaRestPropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClientGroupInfoArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .componentVersion(Map.of("Kafka", "2.1"))
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("kafka")
 *                     .build())
 *                 .clusterVersion("4.0")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Large")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .dataDisksGroups(DataDisksGroupsArgs.builder()
 *                                 .disksPerNode(8)
 *                                 .build())
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Large")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D4_v2")
 *                                 .build())
 *                             .name("kafkamanagementnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("kafkauser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build())
 *                     .build())
 *                 .kafkaRestProperties(KafkaRestPropertiesArgs.builder()
 *                     .clientGroupInfo(ClientGroupInfoArgs.builder()
 *                         .groupId("00000000-0000-0000-0000-111111111111")
 *                         .groupName("Kafka security group name")
 *                         .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create Secure Hadoop cluster
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.5",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         ScriptActions = new() { },
 *                         TargetInstanceCount = 2,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D3_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         ScriptActions = new() { },
 *                         TargetInstanceCount = 4,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         ScriptActions = new() { },
 *                         TargetInstanceCount = 3,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             SecurityProfile = new AzureNative.HDInsight.Inputs.SecurityProfileArgs
 *             {
 *                 ClusterUsersGroupDNs = new[]
 *                 {
 *                     "hdiusers",
 *                 },
 *                 DirectoryType = AzureNative.HDInsight.DirectoryType.ActiveDirectory,
 *                 Domain = "DomainName",
 *                 DomainUserPassword = "**********",
 *                 DomainUsername = "DomainUsername",
 *                 LdapsUrls = new[]
 *                 {
 *                     "ldaps://10.10.0.4:636",
 *                 },
 *                 OrganizationalUnitDN = "OU=Hadoop,DC=hdinsight,DC=test",
 *             },
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storage account key",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Premium,
 *         },
 *         ResourceGroupName = "rg1",
 *         Tags =
 *         {
 *             { "key1", "val1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.5"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							ScriptActions:       hdinsight.ScriptActionArray{},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D3_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							ScriptActions:       hdinsight.ScriptActionArray{},
 * 							TargetInstanceCount: pulumi.Int(4),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							ScriptActions:       hdinsight.ScriptActionArray{},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				SecurityProfile: &hdinsight.SecurityProfileArgs{
 * 					ClusterUsersGroupDNs: pulumi.StringArray{
 * 						pulumi.String("hdiusers"),
 * 					},
 * 					DirectoryType:      pulumi.String(hdinsight.DirectoryTypeActiveDirectory),
 * 					Domain:             pulumi.String("DomainName"),
 * 					DomainUserPassword: pulumi.String("**********"),
 * 					DomainUsername:     pulumi.String("DomainUsername"),
 * 					LdapsUrls: pulumi.StringArray{
 * 						pulumi.String("ldaps://10.10.0.4:636"),
 * 					},
 * 					OrganizationalUnitDN: pulumi.String("OU=Hadoop,DC=hdinsight,DC=test"),
 * 				},
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storage account key"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierPremium),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 			Tags: pulumi.StringMap{
 * 				"key1": pulumi.String("val1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.SecurityProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.5")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .scriptActions()
 *                             .targetInstanceCount(2)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D3_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .scriptActions()
 *                             .targetInstanceCount(4)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .scriptActions()
 *                             .targetInstanceCount(3)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .securityProfile(SecurityProfileArgs.builder()
 *                     .clusterUsersGroupDNs("hdiusers")
 *                     .directoryType("ActiveDirectory")
 *                     .domain("DomainName")
 *                     .domainUserPassword("**********")
 *                     .domainUsername("DomainUsername")
 *                     .ldapsUrls("ldaps://10.10.0.4:636")
 *                     .organizationalUnitDN("OU=Hadoop,DC=hdinsight,DC=test")
 *                     .build())
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storage account key")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Premium")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .tags(Map.of("key1", "val1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create Spark on Linux Cluster with SSH password
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 ComponentVersion =
 *                 {
 *                     { "Spark", "2.0" },
 *                 },
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Spark",
 *             },
 *             ClusterVersion = "3.5",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D12_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_D4_V2",
 *                         },
 *                         MinInstanceCount = 1,
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 4,
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storageapikey*",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *         Tags =
 *         {
 *             { "key1", "val1" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					ComponentVersion: pulumi.StringMap{
 * 						"Spark": pulumi.String("2.0"),
 * 					},
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Spark"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.5"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D12_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_D4_V2"),
 * 							},
 * 							MinInstanceCount: pulumi.Int(1),
 * 							Name:             pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(4),
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storageapikey*"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 			Tags: pulumi.StringMap{
 * 				"key1": pulumi.String("val1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .componentVersion(Map.of("Spark", "2.0"))
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Spark")
 *                     .build())
 *                 .clusterVersion("3.5")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D12_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_D4_V2")
 *                                 .build())
 *                             .minInstanceCount(1)
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(4)
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storageapikey*")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .tags(Map.of("key1", "val1"))
 *             .build());
 *     }
 * }
 * ```
 * ### Create cluster with TLS 1.2
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Large",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Large",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                 },
 *             },
 *             MinSupportedTlsVersion = "1.2",
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "default8525",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Large"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Large"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							Name: pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 					},
 * 				},
 * 				MinSupportedTlsVersion: pulumi.String("1.2"),
 * 				OsType:                 pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("default8525"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Large")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Large")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build())
 *                     .build())
 *                 .minSupportedTlsVersion("1.2")
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("default8525")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create cluster with availability zones
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["ambari-conf"] = new Dictionary
 *                     {
 *                         ["database-name"] = "{ambari database name}",
 *                         ["database-server"] = "{sql server name}.database.windows.net",
 *                         ["database-user-name"] = "**********",
 *                         ["database-user-password"] = "**********",
 *                     },
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                     ["hive-env"] = new Dictionary
 *                     {
 *                         ["hive_database"] = "Existing MSSQL Server database with SQL authentication",
 *                         ["hive_database_name"] = "{hive metastore name}",
 *                         ["hive_database_type"] = "mssql",
 *                         ["hive_existing_mssql_server_database"] = "{hive metastore name}",
 *                         ["hive_existing_mssql_server_host"] = "{sql server name}.database.windows.net",
 *                         ["hive_hostname"] = "{sql server name}.database.windows.net",
 *                     },
 *                     ["hive-site"] = new Dictionary
 *                     {
 *                         ["javax.jdo.option.ConnectionDriverName"] = "com.microsoft.sqlserver.jdbc.SQLServerDriver",
 *                         ["javax.jdo.option.ConnectionPassword"] = "**********!",
 *                         ["javax.jdo.option.ConnectionURL"] = "jdbc:sqlserver://{sql server name}.database.windows.net;database={hive metastore name};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=300;sendStringParametersAsUnicode=true;prepareSQL=0",
 *                         ["javax.jdo.option.ConnectionUserName"] = "**********",
 *                     },
 *                     ["oozie-env"] = new Dictionary
 *                     {
 *                         ["oozie_database"] = "Existing MSSQL Server database with SQL authentication",
 *                         ["oozie_database_name"] = "{oozie metastore name}",
 *                         ["oozie_database_type"] = "mssql",
 *                         ["oozie_existing_mssql_server_database"] = "{oozie metastore name}",
 *                         ["oozie_existing_mssql_server_host"] = "{sql server name}.database.windows.net",
 *                         ["oozie_hostname"] = "{sql server name}.database.windows.net",
 *                     },
 *                     ["oozie-site"] = new Dictionary
 *                     {
 *                         ["oozie.db.schema.name"] = "oozie",
 *                         ["oozie.service.JPAService.jdbc.driver"] = "com.microsoft.sqlserver.jdbc.SQLServerDriver",
 *                         ["oozie.service.JPAService.jdbc.password"] = "**********",
 *                         ["oozie.service.JPAService.jdbc.url"] = "jdbc:sqlserver://{sql server name}.database.windows.net;database={oozie metastore name};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=300;sendStringParametersAsUnicode=true;prepareSQL=0",
 *                         ["oozie.service.JPAService.jdbc.username"] = "**********",
 *                     },
 *                 },
 *                 Kind = "hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "standard_d3",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "standard_d3",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storage account key",
 *                         Name = "mystorage",
 *                     },
 *                 },
 *             },
 *         },
 *         ResourceGroupName = "rg1",
 *         Zones = new[]
 *         {
 *             "1",
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"ambari-conf": map[string]interface{}{
 * 							"database-name":          "{ambari database name}",
 * 							"database-server":        "{sql server name}.database.windows.net",
 * 							"database-user-name":     "**********",
 * 							"database-user-password": "**********",
 * 						},
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 						"hive-env": map[string]interface{}{
 * 							"hive_database":                       "Existing MSSQL Server database with SQL authentication",
 * 							"hive_database_name":                  "{hive metastore name}",
 * 							"hive_database_type":                  "mssql",
 * 							"hive_existing_mssql_server_database": "{hive metastore name}",
 * 							"hive_existing_mssql_server_host":     "{sql server name}.database.windows.net",
 * 							"hive_hostname":                       "{sql server name}.database.windows.net",
 * 						},
 * 						"hive-site": map[string]interface{}{
 * 							"javax.jdo.option.ConnectionDriverName": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
 * 							"javax.jdo.option.ConnectionPassword":   "**********!",
 * 							"javax.jdo.option.ConnectionURL":        "jdbc:sqlserver://{sql server name}.database.windows.net;database={hive metastore name};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=300;sendStringParametersAsUnicode=true;prepareSQL=0",
 * 							"javax.jdo.option.ConnectionUserName":   "**********",
 * 						},
 * 						"oozie-env": map[string]interface{}{
 * 							"oozie_database":                       "Existing MSSQL Server database with SQL authentication",
 * 							"oozie_database_name":                  "{oozie metastore name}",
 * 							"oozie_database_type":                  "mssql",
 * 							"oozie_existing_mssql_server_database": "{oozie metastore name}",
 * 							"oozie_existing_mssql_server_host":     "{sql server name}.database.windows.net",
 * 							"oozie_hostname":                       "{sql server name}.database.windows.net",
 * 						},
 * 						"oozie-site": map[string]interface{}{
 * 							"oozie.db.schema.name":                   "oozie",
 * 							"oozie.service.JPAService.jdbc.driver":   "com.microsoft.sqlserver.jdbc.SQLServerDriver",
 * 							"oozie.service.JPAService.jdbc.password": "**********",
 * 							"oozie.service.JPAService.jdbc.url":      "jdbc:sqlserver://{sql server name}.database.windows.net;database={oozie metastore name};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=300;sendStringParametersAsUnicode=true;prepareSQL=0",
 * 							"oozie.service.JPAService.jdbc.username": "**********",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("standard_d3"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("standard_d3"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storage account key"),
 * 							Name:      pulumi.String("mystorage"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 			Zones: pulumi.StringArray{
 * 				pulumi.String("1"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.ofEntries(
 *                         Map.entry("ambari-conf", Map.ofEntries(
 *                             Map.entry("database-name", "{ambari database name}"),
 *                             Map.entry("database-server", "{sql server name}.database.windows.net"),
 *                             Map.entry("database-user-name", "**********"),
 *                             Map.entry("database-user-password", "**********")
 *                         )),
 *                         Map.entry("gateway", Map.ofEntries(
 *                             Map.entry("restAuthCredential.isEnabled", true),
 *                             Map.entry("restAuthCredential.password", "**********"),
 *                             Map.entry("restAuthCredential.username", "admin")
 *                         )),
 *                         Map.entry("hive-env", Map.ofEntries(
 *                             Map.entry("hive_database", "Existing MSSQL Server database with SQL authentication"),
 *                             Map.entry("hive_database_name", "{hive metastore name}"),
 *                             Map.entry("hive_database_type", "mssql"),
 *                             Map.entry("hive_existing_mssql_server_database", "{hive metastore name}"),
 *                             Map.entry("hive_existing_mssql_server_host", "{sql server name}.database.windows.net"),
 *                             Map.entry("hive_hostname", "{sql server name}.database.windows.net")
 *                         )),
 *                         Map.entry("hive-site", Map.ofEntries(
 *                             Map.entry("javax.jdo.option.ConnectionDriverName", "com.microsoft.sqlserver.jdbc.SQLServerDriver"),
 *                             Map.entry("javax.jdo.option.ConnectionPassword", "**********!"),
 *                             Map.entry("javax.jdo.option.ConnectionURL", "jdbc:sqlserver://{sql server name}.database.windows.net;database={hive metastore name};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=300;sendStringParametersAsUnicode=true;prepareSQL=0"),
 *                             Map.entry("javax.jdo.option.ConnectionUserName", "**********")
 *                         )),
 *                         Map.entry("oozie-env", Map.ofEntries(
 *                             Map.entry("oozie_database", "Existing MSSQL Server database with SQL authentication"),
 *                             Map.entry("oozie_database_name", "{oozie metastore name}"),
 *                             Map.entry("oozie_database_type", "mssql"),
 *                             Map.entry("oozie_existing_mssql_server_database", "{oozie metastore name}"),
 *                             Map.entry("oozie_existing_mssql_server_host", "{sql server name}.database.windows.net"),
 *                             Map.entry("oozie_hostname", "{sql server name}.database.windows.net")
 *                         )),
 *                         Map.entry("oozie-site", Map.ofEntries(
 *                             Map.entry("oozie.db.schema.name", "oozie"),
 *                             Map.entry("oozie.service.JPAService.jdbc.driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver"),
 *                             Map.entry("oozie.service.JPAService.jdbc.password", "**********"),
 *                             Map.entry("oozie.service.JPAService.jdbc.url", "jdbc:sqlserver://{sql server name}.database.windows.net;database={oozie metastore name};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=300;sendStringParametersAsUnicode=true;prepareSQL=0"),
 *                             Map.entry("oozie.service.JPAService.jdbc.username", "**********")
 *                         ))
 *                     ))
 *                     .kind("hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("standard_d3")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("standard_d3")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storage account key")
 *                         .name("mystorage")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .zones("1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create cluster with compute isolation properties
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeIsolationProperties = new AzureNative.HDInsight.Inputs.ComputeIsolationPropertiesArgs
 *             {
 *                 EnableComputeIsolation = true,
 *             },
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "standard_d3",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "standard_d3",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                 },
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storage account key",
 *                         Name = "mystorage",
 *                     },
 *                 },
 *             },
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeIsolationProperties: &hdinsight.ComputeIsolationPropertiesArgs{
 * 					EnableComputeIsolation: pulumi.Bool(true),
 * 				},
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("standard_d3"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("standard_d3"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 					},
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storage account key"),
 * 							Name:      pulumi.String("mystorage"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeIsolationPropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeIsolationProperties(ComputeIsolationPropertiesArgs.builder()
 *                     .enableComputeIsolation(true)
 *                     .build())
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("standard_d3")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("standard_d3")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build())
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storage account key")
 *                         .name("mystorage")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create cluster with encryption at host
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_DS14_v2",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_DS14_v2",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Standard_DS14_v2",
 *                         },
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                 },
 *             },
 *             DiskEncryptionProperties = new AzureNative.HDInsight.Inputs.DiskEncryptionPropertiesArgs
 *             {
 *                 EncryptionAtHost = true,
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "default8525",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_DS14_v2"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_DS14_v2"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Standard_DS14_v2"),
 * 							},
 * 							Name: pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 					},
 * 				},
 * 				DiskEncryptionProperties: &hdinsight.DiskEncryptionPropertiesArgs{
 * 					EncryptionAtHost: pulumi.Bool(true),
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("default8525"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.DiskEncryptionPropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_DS14_v2")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_DS14_v2")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Standard_DS14_v2")
 *                                 .build())
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build())
 *                     .build())
 *                 .diskEncryptionProperties(DiskEncryptionPropertiesArgs.builder()
 *                     .encryptionAtHost(true)
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("default8525")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create cluster with encryption in transit
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "Hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Large",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Large",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "Small",
 *                         },
 *                         Name = "zookeepernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 3,
 *                     },
 *                 },
 *             },
 *             EncryptionInTransitProperties = new AzureNative.HDInsight.Inputs.EncryptionInTransitPropertiesArgs
 *             {
 *                 IsEncryptionInTransitEnabled = true,
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "default8525",
 *                         IsDefault = true,
 *                         Key = "storagekey",
 *                         Name = "mystorage.blob.core.windows.net",
 *                     },
 *                 },
 *             },
 *             Tier = AzureNative.HDInsight.Tier.Standard,
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("Hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Large"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Large"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("Small"),
 * 							},
 * 							Name: pulumi.String("zookeepernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(3),
 * 						},
 * 					},
 * 				},
 * 				EncryptionInTransitProperties: &hdinsight.EncryptionInTransitPropertiesArgs{
 * 					IsEncryptionInTransitEnabled: pulumi.Bool(true),
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("default8525"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storagekey"),
 * 							Name:      pulumi.String("mystorage.blob.core.windows.net"),
 * 						},
 * 					},
 * 				},
 * 				Tier: pulumi.String(hdinsight.TierStandard),
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.EncryptionInTransitPropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("Hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Large")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Large")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("Small")
 *                                 .build())
 *                             .name("zookeepernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(3)
 *                             .build())
 *                     .build())
 *                 .encryptionInTransitProperties(EncryptionInTransitPropertiesArgs.builder()
 *                     .isEncryptionInTransitEnabled(true)
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("default8525")
 *                         .isDefault(true)
 *                         .key("storagekey")
 *                         .name("mystorage.blob.core.windows.net")
 *                         .build())
 *                     .build())
 *                 .tier("Standard")
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ### Create cluster with network properties
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var cluster = new AzureNative.HDInsight.Cluster("cluster", new()
 *     {
 *         ClusterName = "cluster1",
 *         Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
 *         {
 *             ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
 *             {
 *                 Configurations = new Dictionary
 *                 {
 *                     ["gateway"] = new Dictionary
 *                     {
 *                         ["restAuthCredential.isEnabled"] = true,
 *                         ["restAuthCredential.password"] = "**********",
 *                         ["restAuthCredential.username"] = "admin",
 *                     },
 *                 },
 *                 Kind = "hadoop",
 *             },
 *             ClusterVersion = "3.6",
 *             ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
 *             {
 *                 Roles = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "standard_d3",
 *                         },
 *                         Name = "headnode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                     new AzureNative.HDInsight.Inputs.RoleArgs
 *                     {
 *                         HardwareProfile = new AzureNative.HDInsight.Inputs.HardwareProfileArgs
 *                         {
 *                             VmSize = "standard_d3",
 *                         },
 *                         Name = "workernode",
 *                         OsProfile = new AzureNative.HDInsight.Inputs.OsProfileArgs
 *                         {
 *                             LinuxOperatingSystemProfile = new AzureNative.HDInsight.Inputs.LinuxOperatingSystemProfileArgs
 *                             {
 *                                 Password = "**********",
 *                                 SshProfile = new AzureNative.HDInsight.Inputs.SshProfileArgs
 *                                 {
 *                                     PublicKeys = new[]
 *                                     {
 *                                         new AzureNative.HDInsight.Inputs.SshPublicKeyArgs
 *                                         {
 *                                             CertificateData = "**********",
 *                                         },
 *                                     },
 *                                 },
 *                                 Username = "sshuser",
 *                             },
 *                         },
 *                         TargetInstanceCount = 2,
 *                         VirtualNetworkProfile = new AzureNative.HDInsight.Inputs.VirtualNetworkProfileArgs
 *                         {
 *                             Id = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
 *                             Subnet = "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
 *                         },
 *                     },
 *                 },
 *             },
 *             NetworkProperties = new AzureNative.HDInsight.Inputs.NetworkPropertiesArgs
 *             {
 *                 PrivateLink = AzureNative.HDInsight.PrivateLink.Enabled,
 *                 ResourceProviderConnection = AzureNative.HDInsight.ResourceProviderConnection.Outbound,
 *             },
 *             OsType = AzureNative.HDInsight.OSType.Linux,
 *             StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
 *             {
 *                 Storageaccounts = new[]
 *                 {
 *                     new AzureNative.HDInsight.Inputs.StorageAccountArgs
 *                     {
 *                         Container = "containername",
 *                         IsDefault = true,
 *                         Key = "storage account key",
 *                         Name = "mystorage",
 *                     },
 *                 },
 *             },
 *         },
 *         ResourceGroupName = "rg1",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	hdinsight "github.com/pulumi/pulumi-azure-native-sdk/hdinsight/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := hdinsight.NewCluster(ctx, "cluster", &hdinsight.ClusterArgs{
 * 			ClusterName: pulumi.String("cluster1"),
 * 			Properties: &hdinsight.ClusterCreatePropertiesArgs{
 * 				ClusterDefinition: &hdinsight.ClusterDefinitionArgs{
 * 					Configurations: pulumi.Any(map[string]interface{}{
 * 						"gateway": map[string]interface{}{
 * 							"restAuthCredential.isEnabled": true,
 * 							"restAuthCredential.password":  "**********",
 * 							"restAuthCredential.username":  "admin",
 * 						},
 * 					}),
 * 					Kind: pulumi.String("hadoop"),
 * 				},
 * 				ClusterVersion: pulumi.String("3.6"),
 * 				ComputeProfile: &hdinsight.ComputeProfileArgs{
 * 					Roles: hdinsight.RoleArray{
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("standard_d3"),
 * 							},
 * 							Name: pulumi.String("headnode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 						&hdinsight.RoleArgs{
 * 							HardwareProfile: &hdinsight.HardwareProfileArgs{
 * 								VmSize: pulumi.String("standard_d3"),
 * 							},
 * 							Name: pulumi.String("workernode"),
 * 							OsProfile: &hdinsight.OsProfileArgs{
 * 								LinuxOperatingSystemProfile: &hdinsight.LinuxOperatingSystemProfileArgs{
 * 									Password: pulumi.String("**********"),
 * 									SshProfile: &hdinsight.SshProfileArgs{
 * 										PublicKeys: hdinsight.SshPublicKeyArray{
 * 											&hdinsight.SshPublicKeyArgs{
 * 												CertificateData: pulumi.String("**********"),
 * 											},
 * 										},
 * 									},
 * 									Username: pulumi.String("sshuser"),
 * 								},
 * 							},
 * 							TargetInstanceCount: pulumi.Int(2),
 * 							VirtualNetworkProfile: &hdinsight.VirtualNetworkProfileArgs{
 * 								Id:     pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
 * 								Subnet: pulumi.String("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet"),
 * 							},
 * 						},
 * 					},
 * 				},
 * 				NetworkProperties: &hdinsight.NetworkPropertiesArgs{
 * 					PrivateLink:                pulumi.String(hdinsight.PrivateLinkEnabled),
 * 					ResourceProviderConnection: pulumi.String(hdinsight.ResourceProviderConnectionOutbound),
 * 				},
 * 				OsType: pulumi.String(hdinsight.OSTypeLinux),
 * 				StorageProfile: &hdinsight.StorageProfileArgs{
 * 					Storageaccounts: hdinsight.StorageAccountArray{
 * 						&hdinsight.StorageAccountArgs{
 * 							Container: pulumi.String("containername"),
 * 							IsDefault: pulumi.Bool(true),
 * 							Key:       pulumi.String("storage account key"),
 * 							Name:      pulumi.String("mystorage"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			ResourceGroupName: pulumi.String("rg1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.hdinsight.Cluster;
 * import com.pulumi.azurenative.hdinsight.ClusterArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterCreatePropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ClusterDefinitionArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.ComputeProfileArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.NetworkPropertiesArgs;
 * import com.pulumi.azurenative.hdinsight.inputs.StorageProfileArgs;
 * 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 cluster = new Cluster("cluster", ClusterArgs.builder()
 *             .clusterName("cluster1")
 *             .properties(ClusterCreatePropertiesArgs.builder()
 *                 .clusterDefinition(ClusterDefinitionArgs.builder()
 *                     .configurations(Map.of("gateway", Map.ofEntries(
 *                         Map.entry("restAuthCredential.isEnabled", true),
 *                         Map.entry("restAuthCredential.password", "**********"),
 *                         Map.entry("restAuthCredential.username", "admin")
 *                     )))
 *                     .kind("hadoop")
 *                     .build())
 *                 .clusterVersion("3.6")
 *                 .computeProfile(ComputeProfileArgs.builder()
 *                     .roles(
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("standard_d3")
 *                                 .build())
 *                             .name("headnode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build(),
 *                         RoleArgs.builder()
 *                             .hardwareProfile(HardwareProfileArgs.builder()
 *                                 .vmSize("standard_d3")
 *                                 .build())
 *                             .name("workernode")
 *                             .osProfile(OsProfileArgs.builder()
 *                                 .linuxOperatingSystemProfile(LinuxOperatingSystemProfileArgs.builder()
 *                                     .password("**********")
 *                                     .sshProfile(SshProfileArgs.builder()
 *                                         .publicKeys(SshPublicKeyArgs.builder()
 *                                             .certificateData("**********")
 *                                             .build())
 *                                         .build())
 *                                     .username("sshuser")
 *                                     .build())
 *                                 .build())
 *                             .targetInstanceCount(2)
 *                             .virtualNetworkProfile(VirtualNetworkProfileArgs.builder()
 *                                 .id("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname")
 *                                 .subnet("/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
 *                                 .build())
 *                             .build())
 *                     .build())
 *                 .networkProperties(NetworkPropertiesArgs.builder()
 *                     .privateLink("Enabled")
 *                     .resourceProviderConnection("Outbound")
 *                     .build())
 *                 .osType("Linux")
 *                 .storageProfile(StorageProfileArgs.builder()
 *                     .storageaccounts(StorageAccountArgs.builder()
 *                         .container("containername")
 *                         .isDefault(true)
 *                         .key("storage account key")
 *                         .name("mystorage")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .resourceGroupName("rg1")
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:hdinsight:Cluster cluster1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}
 * ```
 * @property clusterName The name of the cluster.
 * @property identity The identity of the cluster, if configured.
 * @property location The location of the cluster.
 * @property properties The cluster create parameters.
 * @property resourceGroupName The name of the resource group.
 * @property tags The resource tags.
 * @property zones The availability zones.
 */
public data class ClusterArgs(
    public val clusterName: Output? = null,
    public val identity: Output? = null,
    public val location: Output? = null,
    public val properties: Output? = null,
    public val resourceGroupName: Output? = null,
    public val tags: Output>? = null,
    public val zones: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.hdinsight.ClusterArgs =
        com.pulumi.azurenative.hdinsight.ClusterArgs.builder()
            .clusterName(clusterName?.applyValue({ args0 -> args0 }))
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .location(location?.applyValue({ args0 -> args0 }))
            .properties(properties?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .zones(zones?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [ClusterArgs].
 */
@PulumiTagMarker
public class ClusterArgsBuilder internal constructor() {
    private var clusterName: Output? = null

    private var identity: Output? = null

    private var location: Output? = null

    private var properties: Output? = null

    private var resourceGroupName: Output? = null

    private var tags: Output>? = null

    private var zones: Output>? = null

    /**
     * @param value The name of the cluster.
     */
    @JvmName("hekyatjijqenvvsi")
    public suspend fun clusterName(`value`: Output) {
        this.clusterName = value
    }

    /**
     * @param value The identity of the cluster, if configured.
     */
    @JvmName("bdspyjnhqsekmpvc")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value The location of the cluster.
     */
    @JvmName("hcbexkucaooymxbx")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The cluster create parameters.
     */
    @JvmName("ixfnktjkwliyqhom")
    public suspend fun properties(`value`: Output) {
        this.properties = value
    }

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

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

    /**
     * @param value The availability zones.
     */
    @JvmName("ftdyqiaylkcwlsyt")
    public suspend fun zones(`value`: Output>) {
        this.zones = value
    }

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

    /**
     * @param values The availability zones.
     */
    @JvmName("ksjymstwfjbhspix")
    public suspend fun zones(values: List>) {
        this.zones = Output.all(values)
    }

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

    /**
     * @param value The identity of the cluster, if configured.
     */
    @JvmName("mxsxyftdndwftkgb")
    public suspend fun identity(`value`: ClusterIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument The identity of the cluster, if configured.
     */
    @JvmName("qmubsdbqpkdbweph")
    public suspend fun identity(argument: suspend ClusterIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

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

    /**
     * @param value The cluster create parameters.
     */
    @JvmName("hrpdrjqhooseauxd")
    public suspend fun properties(`value`: ClusterCreatePropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.properties = mapped
    }

    /**
     * @param argument The cluster create parameters.
     */
    @JvmName("qsnxemywkaglcgtv")
    public suspend fun properties(argument: suspend ClusterCreatePropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterCreatePropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.properties = mapped
    }

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

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

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

    /**
     * @param value The availability zones.
     */
    @JvmName("edroghxyneappeyd")
    public suspend fun zones(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.zones = mapped
    }

    /**
     * @param values The availability zones.
     */
    @JvmName("pahjxdvjhqwfdlqt")
    public suspend fun zones(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.zones = mapped
    }

    internal fun build(): ClusterArgs = ClusterArgs(
        clusterName = clusterName,
        identity = identity,
        location = location,
        properties = properties,
        resourceGroupName = resourceGroupName,
        tags = tags,
        zones = zones,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy