Azure Native

Pulumi Official
Package maintained by Pulumi
v1.64.0 published on Wednesday, May 4, 2022 by Pulumi

Cluster

The HDInsight cluster. API Version: 2018-06-01-preview.

Example Usage

Create HDInsight cluster with Autoscale configuration

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    ComponentVersion = 
                    {
                        { "Hadoop", "2.7" },
                    },
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "hadoop",
                },
                ClusterVersion = "3.6",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        new AzureNative.HDInsight.Inputs.RoleArgs
                        {
                            AutoscaleConfiguration = new AzureNative.HDInsight.Inputs.AutoscaleArgs
                            {
                                Recurrence = new AzureNative.HDInsight.Inputs.AutoscaleRecurrenceArgs
                                {
                                    Schedule = 
                                    {
                                        new AzureNative.HDInsight.Inputs.AutoscaleScheduleArgs
                                        {
                                            Days = 
                                            {
                                                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 = 
                                            {
                                                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 = 
                                            {
                                                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 = 
                                            {
                                                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 = {},
                            TargetInstanceCount = 4,
                        },
                    },
                },
                OsType = AzureNative.HDInsight.OSType.Linux,
                StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
                {
                    Storageaccounts = 
                    {
                        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",
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: hdinsight.DaysOfWeekArray{
												hdinsight.DaysOfWeekMonday,
												hdinsight.DaysOfWeekTuesday,
												hdinsight.DaysOfWeekWednesday,
												hdinsight.DaysOfWeekThursday,
												hdinsight.DaysOfWeekFriday,
											},
											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
												MaxInstanceCount: pulumi.Int(3),
												MinInstanceCount: pulumi.Int(3),
												Time:             pulumi.String("09:00"),
											},
										},
										&hdinsight.AutoscaleScheduleArgs{
											Days: hdinsight.DaysOfWeekArray{
												hdinsight.DaysOfWeekMonday,
												hdinsight.DaysOfWeekTuesday,
												hdinsight.DaysOfWeekWednesday,
												hdinsight.DaysOfWeekThursday,
												hdinsight.DaysOfWeekFriday,
											},
											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
												MaxInstanceCount: pulumi.Int(6),
												MinInstanceCount: pulumi.Int(6),
												Time:             pulumi.String("18:00"),
											},
										},
										&hdinsight.AutoscaleScheduleArgs{
											Days: hdinsight.DaysOfWeekArray{
												hdinsight.DaysOfWeekSaturday,
												hdinsight.DaysOfWeekSunday,
											},
											TimeAndCapacity: &hdinsight.AutoscaleTimeAndCapacityArgs{
												MaxInstanceCount: pulumi.Int(2),
												MinInstanceCount: pulumi.Int(2),
												Time:             pulumi.String("09:00"),
											},
										},
										&hdinsight.AutoscaleScheduleArgs{
											Days: hdinsight.DaysOfWeekArray{
												hdinsight.DaysOfWeekSaturday,
												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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("componentVersion", Map.of("Hadoop", "2.7")),
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "hadoop")
                    )),
                    Map.entry("clusterVersion", "3.6"),
                    Map.entry("computeProfile", Map.of("roles", Map.ofEntries(
                        Map.entry("autoscaleConfiguration", Map.of("recurrence", Map.ofEntries(
                            Map.entry("schedule",                             
                                Map.ofEntries(
                                    Map.entry("days",                                     
                                        "Monday",
                                        "Tuesday",
                                        "Wednesday",
                                        "Thursday",
                                        "Friday"),
                                    Map.entry("timeAndCapacity", Map.ofEntries(
                                        Map.entry("maxInstanceCount", 3),
                                        Map.entry("minInstanceCount", 3),
                                        Map.entry("time", "09:00")
                                    ))
                                ),
                                Map.ofEntries(
                                    Map.entry("days",                                     
                                        "Monday",
                                        "Tuesday",
                                        "Wednesday",
                                        "Thursday",
                                        "Friday"),
                                    Map.entry("timeAndCapacity", Map.ofEntries(
                                        Map.entry("maxInstanceCount", 6),
                                        Map.entry("minInstanceCount", 6),
                                        Map.entry("time", "18:00")
                                    ))
                                ),
                                Map.ofEntries(
                                    Map.entry("days",                                     
                                        "Saturday",
                                        "Sunday"),
                                    Map.entry("timeAndCapacity", Map.ofEntries(
                                        Map.entry("maxInstanceCount", 2),
                                        Map.entry("minInstanceCount", 2),
                                        Map.entry("time", "09:00")
                                    ))
                                ),
                                Map.ofEntries(
                                    Map.entry("days",                                     
                                        "Saturday",
                                        "Sunday"),
                                    Map.entry("timeAndCapacity", Map.ofEntries(
                                        Map.entry("maxInstanceCount", 4),
                                        Map.entry("minInstanceCount", 4),
                                        Map.entry("time", "18:00")
                                    ))
                                )),
                            Map.entry("timeZone", "China Standard Time")
                        ))),
                        Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D4_V2")),
                        Map.entry("name", "workernode"),
                        Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                            Map.entry("password", "**********"),
                            Map.entry("username", "sshuser")
                        ))),
                        Map.entry("scriptActions", ),
                        Map.entry("targetInstanceCount", 4)
                    ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "hdinsight-autoscale-tes-2019-06-18t05-49-16-591z"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            component_version={
                "Hadoop": "2.7",
            },
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="hadoop",
        ),
        cluster_version="3.6",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[azure_native.hdinsight.RoleArgs(
                autoscale_configuration=azure_native.hdinsight.AutoscaleArgs(
                    recurrence=azure_native.hdinsight.AutoscaleRecurrenceArgs(
                        schedule=[
                            azure_native.hdinsight.AutoscaleScheduleArgs(
                                days=[
                                    azure_native.hdinsight.DaysOfWeek.MONDAY,
                                    azure_native.hdinsight.DaysOfWeek.TUESDAY,
                                    azure_native.hdinsight.DaysOfWeek.WEDNESDAY,
                                    azure_native.hdinsight.DaysOfWeek.THURSDAY,
                                    azure_native.hdinsight.DaysOfWeek.FRIDAY,
                                ],
                                time_and_capacity=azure_native.hdinsight.AutoscaleTimeAndCapacityArgs(
                                    max_instance_count=3,
                                    min_instance_count=3,
                                    time="09:00",
                                ),
                            ),
                            azure_native.hdinsight.AutoscaleScheduleArgs(
                                days=[
                                    azure_native.hdinsight.DaysOfWeek.MONDAY,
                                    azure_native.hdinsight.DaysOfWeek.TUESDAY,
                                    azure_native.hdinsight.DaysOfWeek.WEDNESDAY,
                                    azure_native.hdinsight.DaysOfWeek.THURSDAY,
                                    azure_native.hdinsight.DaysOfWeek.FRIDAY,
                                ],
                                time_and_capacity=azure_native.hdinsight.AutoscaleTimeAndCapacityArgs(
                                    max_instance_count=6,
                                    min_instance_count=6,
                                    time="18:00",
                                ),
                            ),
                            azure_native.hdinsight.AutoscaleScheduleArgs(
                                days=[
                                    azure_native.hdinsight.DaysOfWeek.SATURDAY,
                                    azure_native.hdinsight.DaysOfWeek.SUNDAY,
                                ],
                                time_and_capacity=azure_native.hdinsight.AutoscaleTimeAndCapacityArgs(
                                    max_instance_count=2,
                                    min_instance_count=2,
                                    time="09:00",
                                ),
                            ),
                            azure_native.hdinsight.AutoscaleScheduleArgs(
                                days=[
                                    azure_native.hdinsight.DaysOfWeek.SATURDAY,
                                    azure_native.hdinsight.DaysOfWeek.SUNDAY,
                                ],
                                time_and_capacity=azure_native.hdinsight.AutoscaleTimeAndCapacityArgs(
                                    max_instance_count=4,
                                    min_instance_count=4,
                                    time="18:00",
                                ),
                            ),
                        ],
                        time_zone="China Standard Time",
                    ),
                ),
                hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                    vm_size="Standard_D4_V2",
                ),
                name="workernode",
                os_profile=azure_native.hdinsight.OsProfileArgs(
                    linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                        password="**********",
                        username="sshuser",
                    ),
                ),
                script_actions=[],
                target_instance_count=4,
            )],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="hdinsight-autoscale-tes-2019-06-18t05-49-16-591z",
                is_default=True,
                key="storagekey",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1")
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            componentVersion: {
                Hadoop: "2.7",
            },
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "hadoop",
        },
        clusterVersion: "3.6",
        computeProfile: {
            roles: [{
                autoscaleConfiguration: {
                    recurrence: {
                        schedule: [
                            {
                                days: [
                                    azure_native.hdinsight.DaysOfWeek.Monday,
                                    azure_native.hdinsight.DaysOfWeek.Tuesday,
                                    azure_native.hdinsight.DaysOfWeek.Wednesday,
                                    azure_native.hdinsight.DaysOfWeek.Thursday,
                                    azure_native.hdinsight.DaysOfWeek.Friday,
                                ],
                                timeAndCapacity: {
                                    maxInstanceCount: 3,
                                    minInstanceCount: 3,
                                    time: "09:00",
                                },
                            },
                            {
                                days: [
                                    azure_native.hdinsight.DaysOfWeek.Monday,
                                    azure_native.hdinsight.DaysOfWeek.Tuesday,
                                    azure_native.hdinsight.DaysOfWeek.Wednesday,
                                    azure_native.hdinsight.DaysOfWeek.Thursday,
                                    azure_native.hdinsight.DaysOfWeek.Friday,
                                ],
                                timeAndCapacity: {
                                    maxInstanceCount: 6,
                                    minInstanceCount: 6,
                                    time: "18:00",
                                },
                            },
                            {
                                days: [
                                    azure_native.hdinsight.DaysOfWeek.Saturday,
                                    azure_native.hdinsight.DaysOfWeek.Sunday,
                                ],
                                timeAndCapacity: {
                                    maxInstanceCount: 2,
                                    minInstanceCount: 2,
                                    time: "09:00",
                                },
                            },
                            {
                                days: [
                                    azure_native.hdinsight.DaysOfWeek.Saturday,
                                    azure_native.hdinsight.DaysOfWeek.Sunday,
                                ],
                                timeAndCapacity: {
                                    maxInstanceCount: 4,
                                    minInstanceCount: 4,
                                    time: "18:00",
                                },
                            },
                        ],
                        timeZone: "China Standard Time",
                    },
                },
                hardwareProfile: {
                    vmSize: "Standard_D4_V2",
                },
                name: "workernode",
                osProfile: {
                    linuxOperatingSystemProfile: {
                        password: "**********",
                        username: "sshuser",
                    },
                },
                scriptActions: [],
                targetInstanceCount: 4,
            }],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "hdinsight-autoscale-tes-2019-06-18t05-49-16-591z",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          componentVersion:
            Hadoop: 2.7
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: hadoop
        clusterVersion: 3.6
        computeProfile:
          roles:
            - autoscaleConfiguration:
                recurrence:
                  schedule:
                    - days:
                        - Monday
                        - Tuesday
                        - Wednesday
                        - Thursday
                        - Friday
                      timeAndCapacity:
                        maxInstanceCount: 3
                        minInstanceCount: 3
                        time: 09:00
                    - days:
                        - Monday
                        - Tuesday
                        - Wednesday
                        - Thursday
                        - Friday
                      timeAndCapacity:
                        maxInstanceCount: 6
                        minInstanceCount: 6
                        time: 18:00
                    - days:
                        - Saturday
                        - Sunday
                      timeAndCapacity:
                        maxInstanceCount: 2
                        minInstanceCount: 2
                        time: 09:00
                    - days:
                        - Saturday
                        - Sunday
                      timeAndCapacity:
                        maxInstanceCount: 4
                        minInstanceCount: 4
                        time: 18:00
                  timeZone: China Standard Time
              hardwareProfile:
                vmSize: Standard_D4_V2
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              scriptActions: []
              targetInstanceCount: 4
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: hdinsight-autoscale-tes-2019-06-18t05-49-16-591z
              isDefault: true
              key: storagekey
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1

Create Hadoop cluster with Azure Data Lake Storage Gen 2

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", "true" },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.6",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 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" },
            },
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
			Tags: pulumi.StringMap{
				"key1": pulumi.String("val1"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.6"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 4)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("fileSystem", "default"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.dfs.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .tags(Map.of("key1", "val1"))
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": "true",
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.6",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=4,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Small",
                    ),
                    min_instance_count=1,
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
            ],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                file_system="default",
                is_default=True,
                key="storagekey",
                name="mystorage.dfs.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1",
    tags={
        "key1": "val1",
    })
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": "true",
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Hadoop",
        },
        clusterVersion: "3.6",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 4,
                },
                {
                    hardwareProfile: {
                        vmSize: "Small",
                    },
                    minInstanceCount: 1,
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
            ],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                fileSystem: "default",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.dfs.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
    tags: {
        key1: "val1",
    },
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Hadoop
        clusterVersion: 3.6
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 4
            - hardwareProfile:
                vmSize: Small
              minInstanceCount: 1
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
        osType: Linux
        storageProfile:
          storageaccounts:
            - fileSystem: default
              isDefault: true
              key: storagekey
              name: mystorage.dfs.core.windows.net
        tier: Standard
      resourceGroupName: rg1
      tags:
        key1: val1

Create Hadoop on Linux cluster with SSH password

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", "true" },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.5",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 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" },
            },
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
			Tags: pulumi.StringMap{
				"key1": pulumi.String("val1"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.5"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 4)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "containername"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .tags(Map.of("key1", "val1"))
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": "true",
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.5",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=4,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Small",
                    ),
                    min_instance_count=1,
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
            ],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="containername",
                is_default=True,
                key="storagekey",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1",
    tags={
        "key1": "val1",
    })
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": "true",
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Hadoop",
        },
        clusterVersion: "3.5",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 4,
                },
                {
                    hardwareProfile: {
                        vmSize: "Small",
                    },
                    minInstanceCount: 1,
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
            ],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "containername",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
    tags: {
        key1: "val1",
    },
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Hadoop
        clusterVersion: 3.5
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 4
            - hardwareProfile:
                vmSize: Small
              minInstanceCount: 1
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: containername
              isDefault: true
              key: storagekey
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1
      tags:
        key1: val1

Create Hadoop on Linux cluster with SSH public key

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.5",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 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 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" },
            },
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
			Tags: pulumi.StringMap{
				"key1": pulumi.String("val1"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.5"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("sshProfile", Map.of("publicKeys", Map.of("certificateData", "**********"))),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 4)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "containername"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .tags(Map.of("key1", "val1"))
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.5",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            ssh_profile=azure_native.hdinsight.SshProfileArgs(
                                public_keys=[azure_native.hdinsight.SshPublicKeyArgs(
                                    certificate_data="**********",
                                )],
                            ),
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=4,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Small",
                    ),
                    min_instance_count=1,
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
            ],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="containername",
                is_default=True,
                key="storagekey",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1",
    tags={
        "key1": "val1",
    })
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Hadoop",
        },
        clusterVersion: "3.5",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            sshProfile: {
                                publicKeys: [{
                                    certificateData: "**********",
                                }],
                            },
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 4,
                },
                {
                    hardwareProfile: {
                        vmSize: "Small",
                    },
                    minInstanceCount: 1,
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
            ],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "containername",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
    tags: {
        key1: "val1",
    },
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Hadoop
        clusterVersion: 3.5
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  sshProfile:
                    publicKeys:
                      - certificateData: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 4
            - hardwareProfile:
                vmSize: Small
              minInstanceCount: 1
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: containername
              isDefault: true
              key: storagekey
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1
      tags:
        key1: val1

Create Kafka cluster with Kafka Rest Proxy

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    ComponentVersion = 
                    {
                        { "Kafka", "2.1" },
                    },
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "kafka",
                },
                ClusterVersion = "4.0",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 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 AzureNative.HDInsight.Inputs.StorageAccountArgs
                        {
                            Container = "containername",
                            IsDefault = true,
                            Key = "storagekey",
                            Name = "mystorage.blob.core.windows.net",
                        },
                    },
                },
                Tier = AzureNative.HDInsight.Tier.Standard,
            },
            ResourceGroupName = "rg1",
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("componentVersion", Map.of("Kafka", "2.1")),
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "kafka")
                    )),
                    Map.entry("clusterVersion", "4.0"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Large")),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("dataDisksGroups", Map.of("disksPerNode", 8)),
                            Map.entry("hardwareProfile", Map.of("vmSize", "Large")),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D4_v2")),
                            Map.entry("name", "kafkamanagementnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "kafkauser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ))),
                    Map.entry("kafkaRestProperties", Map.of("clientGroupInfo", Map.ofEntries(
                        Map.entry("groupId", "00000000-0000-0000-0000-111111111111"),
                        Map.entry("groupName", "Kafka security group name")
                    ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "containername"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            component_version={
                "Kafka": "2.1",
            },
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="kafka",
        ),
        cluster_version="4.0",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Large",
                    ),
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    data_disks_groups=[azure_native.hdinsight.DataDisksGroupsArgs(
                        disks_per_node=8,
                    )],
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Large",
                    ),
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Small",
                    ),
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D4_v2",
                    ),
                    name="kafkamanagementnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="kafkauser",
                        ),
                    ),
                    target_instance_count=2,
                ),
            ],
        ),
        kafka_rest_properties=azure_native.hdinsight.KafkaRestPropertiesArgs(
            client_group_info=azure_native.hdinsight.ClientGroupInfoArgs(
                group_id="00000000-0000-0000-0000-111111111111",
                group_name="Kafka security group name",
            ),
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="containername",
                is_default=True,
                key="storagekey",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1")
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            componentVersion: {
                Kafka: "2.1",
            },
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "kafka",
        },
        clusterVersion: "4.0",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Large",
                    },
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    dataDisksGroups: [{
                        disksPerNode: 8,
                    }],
                    hardwareProfile: {
                        vmSize: "Large",
                    },
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
                {
                    hardwareProfile: {
                        vmSize: "Small",
                    },
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_D4_v2",
                    },
                    name: "kafkamanagementnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "kafkauser",
                        },
                    },
                    targetInstanceCount: 2,
                },
            ],
        },
        kafkaRestProperties: {
            clientGroupInfo: {
                groupId: "00000000-0000-0000-0000-111111111111",
                groupName: "Kafka security group name",
            },
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "containername",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          componentVersion:
            Kafka: 2.1
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: kafka
        clusterVersion: 4.0
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Large
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - dataDisksGroups:
                - disksPerNode: 8
              hardwareProfile:
                vmSize: Large
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
            - hardwareProfile:
                vmSize: Small
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
            - hardwareProfile:
                vmSize: Standard_D4_v2
              name: kafkamanagementnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: kafkauser
              targetInstanceCount: 2
        kafkaRestProperties:
          clientGroupInfo:
            groupId: 00000000-0000-0000-0000-111111111111
            groupName: Kafka security group name
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: containername
              isDefault: true
              key: storagekey
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1

Create Secure Hadoop cluster

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.5",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 AzureNative.HDInsight.Inputs.SshPublicKeyArgs
                                            {
                                                CertificateData = "**********",
                                            },
                                        },
                                    },
                                    Username = "sshuser",
                                },
                            },
                            ScriptActions = {},
                            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 AzureNative.HDInsight.Inputs.SshPublicKeyArgs
                                            {
                                                CertificateData = "**********",
                                            },
                                        },
                                    },
                                    Username = "sshuser",
                                },
                            },
                            ScriptActions = {},
                            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 AzureNative.HDInsight.Inputs.SshPublicKeyArgs
                                            {
                                                CertificateData = "**********",
                                            },
                                        },
                                    },
                                    Username = "sshuser",
                                },
                            },
                            ScriptActions = {},
                            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 = 
                    {
                        "hdiusers",
                    },
                    DirectoryType = AzureNative.HDInsight.DirectoryType.ActiveDirectory,
                    Domain = "DomainName",
                    DomainUserPassword = "**********",
                    DomainUsername = "DomainUsername",
                    LdapsUrls = 
                    {
                        "ldaps://10.10.0.4:636",
                    },
                    OrganizationalUnitDN = "OU=Hadoop,DC=hdinsight,DC=test",
                },
                StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
                {
                    Storageaccounts = 
                    {
                        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" },
            },
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: hdinsight.OSTypeLinux,
				SecurityProfile: &hdinsight.SecurityProfileArgs{
					ClusterUsersGroupDNs: pulumi.StringArray{
						pulumi.String("hdiusers"),
					},
					DirectoryType:      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: hdinsight.TierPremium,
			},
			ResourceGroupName: pulumi.String("rg1"),
			Tags: pulumi.StringMap{
				"key1": pulumi.String("val1"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.5"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("sshProfile", Map.of("publicKeys", Map.of("certificateData", "**********"))),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("scriptActions", ),
                            Map.entry("targetInstanceCount", 2),
                            Map.entry("virtualNetworkProfile", Map.ofEntries(
                                Map.entry("id", "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
                                Map.entry("subnet", "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
                            ))
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D3_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("sshProfile", Map.of("publicKeys", Map.of("certificateData", "**********"))),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("scriptActions", ),
                            Map.entry("targetInstanceCount", 4),
                            Map.entry("virtualNetworkProfile", Map.ofEntries(
                                Map.entry("id", "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
                                Map.entry("subnet", "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
                            ))
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("sshProfile", Map.of("publicKeys", Map.of("certificateData", "**********"))),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("scriptActions", ),
                            Map.entry("targetInstanceCount", 3),
                            Map.entry("virtualNetworkProfile", Map.ofEntries(
                                Map.entry("id", "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname"),
                                Map.entry("subnet", "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet")
                            ))
                        ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("securityProfile", Map.ofEntries(
                        Map.entry("clusterUsersGroupDNs", "hdiusers"),
                        Map.entry("directoryType", "ActiveDirectory"),
                        Map.entry("domain", "DomainName"),
                        Map.entry("domainUserPassword", "**********"),
                        Map.entry("domainUsername", "DomainUsername"),
                        Map.entry("ldapsUrls", "ldaps://10.10.0.4:636"),
                        Map.entry("organizationalUnitDN", "OU=Hadoop,DC=hdinsight,DC=test")
                    )),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "containername"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storage account key"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Premium")
                ))
                .resourceGroupName("rg1")
                .tags(Map.of("key1", "val1"))
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.5",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            ssh_profile=azure_native.hdinsight.SshProfileArgs(
                                public_keys=[azure_native.hdinsight.SshPublicKeyArgs(
                                    certificate_data="**********",
                                )],
                            ),
                            username="sshuser",
                        ),
                    ),
                    script_actions=[],
                    target_instance_count=2,
                    virtual_network_profile=azure_native.hdinsight.VirtualNetworkProfileArgs(
                        id="/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
                        subnet="/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
                    ),
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D3_V2",
                    ),
                    min_instance_count=1,
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            ssh_profile=azure_native.hdinsight.SshProfileArgs(
                                public_keys=[azure_native.hdinsight.SshPublicKeyArgs(
                                    certificate_data="**********",
                                )],
                            ),
                            username="sshuser",
                        ),
                    ),
                    script_actions=[],
                    target_instance_count=4,
                    virtual_network_profile=azure_native.hdinsight.VirtualNetworkProfileArgs(
                        id="/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
                        subnet="/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
                    ),
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Small",
                    ),
                    min_instance_count=1,
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            ssh_profile=azure_native.hdinsight.SshProfileArgs(
                                public_keys=[azure_native.hdinsight.SshPublicKeyArgs(
                                    certificate_data="**********",
                                )],
                            ),
                            username="sshuser",
                        ),
                    ),
                    script_actions=[],
                    target_instance_count=3,
                    virtual_network_profile=azure_native.hdinsight.VirtualNetworkProfileArgs(
                        id="/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
                        subnet="/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
                    ),
                ),
            ],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        security_profile=azure_native.hdinsight.SecurityProfileArgs(
            cluster_users_group_dns=["hdiusers"],
            directory_type=azure_native.hdinsight.DirectoryType.ACTIVE_DIRECTORY,
            domain="DomainName",
            domain_user_password="**********",
            domain_username="DomainUsername",
            ldaps_urls=["ldaps://10.10.0.4:636"],
            organizational_unit_dn="OU=Hadoop,DC=hdinsight,DC=test",
        ),
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="containername",
                is_default=True,
                key="storage account key",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.PREMIUM,
    ),
    resource_group_name="rg1",
    tags={
        "key1": "val1",
    })
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Hadoop",
        },
        clusterVersion: "3.5",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            sshProfile: {
                                publicKeys: [{
                                    certificateData: "**********",
                                }],
                            },
                            username: "sshuser",
                        },
                    },
                    scriptActions: [],
                    targetInstanceCount: 2,
                    virtualNetworkProfile: {
                        id: "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
                        subnet: "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
                    },
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_D3_V2",
                    },
                    minInstanceCount: 1,
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            sshProfile: {
                                publicKeys: [{
                                    certificateData: "**********",
                                }],
                            },
                            username: "sshuser",
                        },
                    },
                    scriptActions: [],
                    targetInstanceCount: 4,
                    virtualNetworkProfile: {
                        id: "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
                        subnet: "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
                    },
                },
                {
                    hardwareProfile: {
                        vmSize: "Small",
                    },
                    minInstanceCount: 1,
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            sshProfile: {
                                publicKeys: [{
                                    certificateData: "**********",
                                }],
                            },
                            username: "sshuser",
                        },
                    },
                    scriptActions: [],
                    targetInstanceCount: 3,
                    virtualNetworkProfile: {
                        id: "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname",
                        subnet: "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet",
                    },
                },
            ],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        securityProfile: {
            clusterUsersGroupDNs: ["hdiusers"],
            directoryType: azure_native.hdinsight.DirectoryType.ActiveDirectory,
            domain: "DomainName",
            domainUserPassword: "**********",
            domainUsername: "DomainUsername",
            ldapsUrls: ["ldaps://10.10.0.4:636"],
            organizationalUnitDN: "OU=Hadoop,DC=hdinsight,DC=test",
        },
        storageProfile: {
            storageaccounts: [{
                container: "containername",
                isDefault: true,
                key: "storage account key",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Premium,
    },
    resourceGroupName: "rg1",
    tags: {
        key1: "val1",
    },
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Hadoop
        clusterVersion: 3.5
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  sshProfile:
                    publicKeys:
                      - certificateData: '**********'
                  username: sshuser
              scriptActions: []
              targetInstanceCount: 2
              virtualNetworkProfile:
                id: /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname
                subnet: /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet
            - hardwareProfile:
                vmSize: Standard_D3_V2
              minInstanceCount: 1
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  sshProfile:
                    publicKeys:
                      - certificateData: '**********'
                  username: sshuser
              scriptActions: []
              targetInstanceCount: 4
              virtualNetworkProfile:
                id: /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname
                subnet: /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet
            - hardwareProfile:
                vmSize: Small
              minInstanceCount: 1
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  sshProfile:
                    publicKeys:
                      - certificateData: '**********'
                  username: sshuser
              scriptActions: []
              targetInstanceCount: 3
              virtualNetworkProfile:
                id: /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname
                subnet: /subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/vnetsubnet
        osType: Linux
        securityProfile:
          clusterUsersGroupDNs:
            - hdiusers
          directoryType: ActiveDirectory
          domain: DomainName
          domainUserPassword: '**********'
          domainUsername: DomainUsername
          ldapsUrls:
            - ldaps://10.10.0.4:636
          organizationalUnitDN: OU=Hadoop,DC=hdinsight,DC=test
        storageProfile:
          storageaccounts:
            - container: containername
              isDefault: true
              key: storage account key
              name: mystorage.blob.core.windows.net
        tier: Premium
      resourceGroupName: rg1
      tags:
        key1: val1

Create Spark on Linux Cluster with SSH password

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    ComponentVersion = 
                    {
                        { "Spark", "2.0" },
                    },
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Spark",
                },
                ClusterVersion = "3.5",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 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" },
            },
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
			Tags: pulumi.StringMap{
				"key1": pulumi.String("val1"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("componentVersion", Map.of("Spark", "2.0")),
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Spark")
                    )),
                    Map.entry("clusterVersion", "3.5"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D12_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_D4_V2")),
                            Map.entry("minInstanceCount", 1),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 4)
                        ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "containername"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storageapikey*"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .tags(Map.of("key1", "val1"))
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            component_version={
                "Spark": "2.0",
            },
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Spark",
        ),
        cluster_version="3.5",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D12_V2",
                    ),
                    min_instance_count=1,
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_D4_V2",
                    ),
                    min_instance_count=1,
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=4,
                ),
            ],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="containername",
                is_default=True,
                key="storageapikey*",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1",
    tags={
        "key1": "val1",
    })
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            componentVersion: {
                Spark: "2.0",
            },
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Spark",
        },
        clusterVersion: "3.5",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Standard_D12_V2",
                    },
                    minInstanceCount: 1,
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_D4_V2",
                    },
                    minInstanceCount: 1,
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 4,
                },
            ],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "containername",
                isDefault: true,
                key: "storageapikey*",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
    tags: {
        key1: "val1",
    },
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          componentVersion:
            Spark: 2.0
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Spark
        clusterVersion: 3.5
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Standard_D12_V2
              minInstanceCount: 1
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: Standard_D4_V2
              minInstanceCount: 1
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 4
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: containername
              isDefault: true
              key: storageapikey*
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1
      tags:
        key1: val1

Create cluster with TLS 1.2

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.6",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 AzureNative.HDInsight.Inputs.StorageAccountArgs
                        {
                            Container = "default8525",
                            IsDefault = true,
                            Key = "storagekey",
                            Name = "mystorage.blob.core.windows.net",
                        },
                    },
                },
                Tier = AzureNative.HDInsight.Tier.Standard,
            },
            ResourceGroupName = "rg1",
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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:                 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.6"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Large")),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Large")),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ))),
                    Map.entry("minSupportedTlsVersion", "1.2"),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "default8525"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.6",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Large",
                    ),
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Large",
                    ),
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Small",
                    ),
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
            ],
        ),
        min_supported_tls_version="1.2",
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="default8525",
                is_default=True,
                key="storagekey",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1")
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Hadoop",
        },
        clusterVersion: "3.6",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Large",
                    },
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "Large",
                    },
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
                {
                    hardwareProfile: {
                        vmSize: "Small",
                    },
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
            ],
        },
        minSupportedTlsVersion: "1.2",
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "default8525",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Hadoop
        clusterVersion: 3.6
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Large
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: Large
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
            - hardwareProfile:
                vmSize: Small
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
        minSupportedTlsVersion: 1.2
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: default8525
              isDefault: true
              key: storagekey
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1

Create cluster with compute isolation properties

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "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 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 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 AzureNative.HDInsight.Inputs.SshPublicKeyArgs
                                            {
                                                CertificateData = "**********",
                                            },
                                        },
                                    },
                                    Username = "sshuser",
                                },
                            },
                            TargetInstanceCount = 2,
                        },
                    },
                },
                OsType = AzureNative.HDInsight.OSType.Linux,
                StorageProfile = new AzureNative.HDInsight.Inputs.StorageProfileArgs
                {
                    Storageaccounts = 
                    {
                        new AzureNative.HDInsight.Inputs.StorageAccountArgs
                        {
                            Container = "containername",
                            IsDefault = true,
                            Key = "storage account key",
                            Name = "mystorage",
                        },
                    },
                },
            },
            ResourceGroupName = "rg1",
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "hadoop")
                    )),
                    Map.entry("clusterVersion", "3.6"),
                    Map.entry("computeIsolationProperties", Map.of("enableComputeIsolation", true)),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "standard_d3")),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("sshProfile", Map.of("publicKeys", Map.of("certificateData", "**********"))),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "standard_d3")),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("sshProfile", Map.of("publicKeys", Map.of("certificateData", "**********"))),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ))),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "containername"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storage account key"),
                        Map.entry("name", "mystorage")
                    )))
                ))
                .resourceGroupName("rg1")
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="hadoop",
        ),
        cluster_version="3.6",
        compute_isolation_properties=azure_native.hdinsight.ComputeIsolationPropertiesArgs(
            enable_compute_isolation=True,
        ),
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="standard_d3",
                    ),
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            ssh_profile=azure_native.hdinsight.SshProfileArgs(
                                public_keys=[azure_native.hdinsight.SshPublicKeyArgs(
                                    certificate_data="**********",
                                )],
                            ),
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="standard_d3",
                    ),
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            ssh_profile=azure_native.hdinsight.SshProfileArgs(
                                public_keys=[azure_native.hdinsight.SshPublicKeyArgs(
                                    certificate_data="**********",
                                )],
                            ),
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
            ],
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="containername",
                is_default=True,
                key="storage account key",
                name="mystorage",
            )],
        ),
    ),
    resource_group_name="rg1")
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "hadoop",
        },
        clusterVersion: "3.6",
        computeIsolationProperties: {
            enableComputeIsolation: true,
        },
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "standard_d3",
                    },
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            sshProfile: {
                                publicKeys: [{
                                    certificateData: "**********",
                                }],
                            },
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "standard_d3",
                    },
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            sshProfile: {
                                publicKeys: [{
                                    certificateData: "**********",
                                }],
                            },
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
            ],
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "containername",
                isDefault: true,
                key: "storage account key",
                name: "mystorage",
            }],
        },
    },
    resourceGroupName: "rg1",
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: hadoop
        clusterVersion: 3.6
        computeIsolationProperties:
          enableComputeIsolation: true
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: standard_d3
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  sshProfile:
                    publicKeys:
                      - certificateData: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: standard_d3
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  sshProfile:
                    publicKeys:
                      - certificateData: '**********'
                  username: sshuser
              targetInstanceCount: 2
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: containername
              isDefault: true
              key: storage account key
              name: mystorage
      resourceGroupName: rg1

Create cluster with encryption at host

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.6",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 AzureNative.HDInsight.Inputs.StorageAccountArgs
                        {
                            Container = "default8525",
                            IsDefault = true,
                            Key = "storagekey",
                            Name = "mystorage.blob.core.windows.net",
                        },
                    },
                },
                Tier = AzureNative.HDInsight.Tier.Standard,
            },
            ResourceGroupName = "rg1",
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.6"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_DS14_v2")),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_DS14_v2")),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Standard_DS14_v2")),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ))),
                    Map.entry("diskEncryptionProperties", Map.of("encryptionAtHost", true)),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "default8525"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.6",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_DS14_v2",
                    ),
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_DS14_v2",
                    ),
                    name="workernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Standard_DS14_v2",
                    ),
                    name="zookeepernode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=3,
                ),
            ],
        ),
        disk_encryption_properties=azure_native.hdinsight.DiskEncryptionPropertiesArgs(
            encryption_at_host=True,
        ),
        os_type=azure_native.hdinsight.OSType.LINUX,
        storage_profile=azure_native.hdinsight.StorageProfileArgs(
            storageaccounts=[azure_native.hdinsight.StorageAccountArgs(
                container="default8525",
                is_default=True,
                key="storagekey",
                name="mystorage.blob.core.windows.net",
            )],
        ),
        tier=azure_native.hdinsight.Tier.STANDARD,
    ),
    resource_group_name="rg1")
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const cluster = new azure_native.hdinsight.Cluster("cluster", {
    clusterName: "cluster1",
    properties: {
        clusterDefinition: {
            configurations: {
                gateway: {
                    "restAuthCredential.isEnabled": true,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind: "Hadoop",
        },
        clusterVersion: "3.6",
        computeProfile: {
            roles: [
                {
                    hardwareProfile: {
                        vmSize: "Standard_DS14_v2",
                    },
                    name: "headnode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 2,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_DS14_v2",
                    },
                    name: "workernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
                {
                    hardwareProfile: {
                        vmSize: "Standard_DS14_v2",
                    },
                    name: "zookeepernode",
                    osProfile: {
                        linuxOperatingSystemProfile: {
                            password: "**********",
                            username: "sshuser",
                        },
                    },
                    targetInstanceCount: 3,
                },
            ],
        },
        diskEncryptionProperties: {
            encryptionAtHost: true,
        },
        osType: azure_native.hdinsight.OSType.Linux,
        storageProfile: {
            storageaccounts: [{
                container: "default8525",
                isDefault: true,
                key: "storagekey",
                name: "mystorage.blob.core.windows.net",
            }],
        },
        tier: azure_native.hdinsight.Tier.Standard,
    },
    resourceGroupName: "rg1",
});
resources:
  cluster:
    type: azure-native:hdinsight:Cluster
    properties:
      clusterName: cluster1
      properties:
        clusterDefinition:
          configurations:
            gateway:
              restAuthCredential.isEnabled: true
              restAuthCredential.password: '**********'
              restAuthCredential.username: admin
          kind: Hadoop
        clusterVersion: 3.6
        computeProfile:
          roles:
            - hardwareProfile:
                vmSize: Standard_DS14_v2
              name: headnode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 2
            - hardwareProfile:
                vmSize: Standard_DS14_v2
              name: workernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
            - hardwareProfile:
                vmSize: Standard_DS14_v2
              name: zookeepernode
              osProfile:
                linuxOperatingSystemProfile:
                  password: '**********'
                  username: sshuser
              targetInstanceCount: 3
        diskEncryptionProperties:
          encryptionAtHost: true
        osType: Linux
        storageProfile:
          storageaccounts:
            - container: default8525
              isDefault: true
              key: storagekey
              name: mystorage.blob.core.windows.net
        tier: Standard
      resourceGroupName: rg1

Create cluster with encryption in transit

using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var cluster = new AzureNative.HDInsight.Cluster("cluster", new AzureNative.HDInsight.ClusterArgs
        {
            ClusterName = "cluster1",
            Properties = new AzureNative.HDInsight.Inputs.ClusterCreatePropertiesArgs
            {
                ClusterDefinition = new AzureNative.HDInsight.Inputs.ClusterDefinitionArgs
                {
                    Configurations = 
                    {
                        { "gateway", 
                        {
                            { "restAuthCredential.isEnabled", true },
                            { "restAuthCredential.password", "**********" },
                            { "restAuthCredential.username", "admin" },
                        } },
                    },
                    Kind = "Hadoop",
                },
                ClusterVersion = "3.6",
                ComputeProfile = new AzureNative.HDInsight.Inputs.ComputeProfileArgs
                {
                    Roles = 
                    {
                        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 AzureNative.HDInsight.Inputs.StorageAccountArgs
                        {
                            Container = "default8525",
                            IsDefault = true,
                            Key = "storagekey",
                            Name = "mystorage.blob.core.windows.net",
                        },
                    },
                },
                Tier = AzureNative.HDInsight.Tier.Standard,
            },
            ResourceGroupName = "rg1",
        });
    }

}
package main

import (
	hdinsight "github.com/pulumi/pulumi-azure-native/sdk/go/azure/hdinsight"
	"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{
						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: 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: hdinsight.TierStandard,
			},
			ResourceGroupName: pulumi.String("rg1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

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(Map.ofEntries(
                Map.entry("clusterDefinition", Map.ofEntries(
                    Map.entry("configurations", Map.of("gateway", ClusterCreateProperties.builder()
%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))),
                        Map.entry("kind", "Hadoop")
                    )),
                    Map.entry("clusterVersion", "3.6"),
                    Map.entry("computeProfile", Map.of("roles",                     
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Large")),
                            Map.entry("name", "headnode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 2)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Large")),
                            Map.entry("name", "workernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ),
                        Map.ofEntries(
                            Map.entry("hardwareProfile", Map.of("vmSize", "Small")),
                            Map.entry("name", "zookeepernode"),
                            Map.entry("osProfile", Map.of("linuxOperatingSystemProfile", Map.ofEntries(
                                Map.entry("password", "**********"),
                                Map.entry("username", "sshuser")
                            ))),
                            Map.entry("targetInstanceCount", 3)
                        ))),
                    Map.entry("encryptionInTransitProperties", Map.of("isEncryptionInTransitEnabled", true)),
                    Map.entry("osType", "Linux"),
                    Map.entry("storageProfile", Map.of("storageaccounts", Map.ofEntries(
                        Map.entry("container", "default8525"),
                        Map.entry("isDefault", true),
                        Map.entry("key", "storagekey"),
                        Map.entry("name", "mystorage.blob.core.windows.net")
                    ))),
                    Map.entry("tier", "Standard")
                ))
                .resourceGroupName("rg1")
                .build());

                }
}
import pulumi
import pulumi_azure_native as azure_native

cluster = azure_native.hdinsight.Cluster("cluster",
    cluster_name="cluster1",
    properties=azure_native.hdinsight.ClusterCreatePropertiesArgs(
        cluster_definition=azure_native.hdinsight.ClusterDefinitionArgs(
            configurations={
                "gateway": {
                    "restAuthCredential.isEnabled": True,
                    "restAuthCredential.password": "**********",
                    "restAuthCredential.username": "admin",
                },
            },
            kind="Hadoop",
        ),
        cluster_version="3.6",
        compute_profile=azure_native.hdinsight.ComputeProfileArgs(
            roles=[
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size="Large",
                    ),
                    name="headnode",
                    os_profile=azure_native.hdinsight.OsProfileArgs(
                        linux_operating_system_profile=azure_native.hdinsight.LinuxOperatingSystemProfileArgs(
                            password="**********",
                            username="sshuser",
                        ),
                    ),
                    target_instance_count=2,
                ),
                azure_native.hdinsight.RoleArgs(
                    hardware_profile=azure_native.hdinsight.HardwareProfileArgs(
                        vm_size