spotinst.StatefulNodeAzure
Explore with Pulumi AI
Provides a Spotinst stateful node Azure resource.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as spotinst from "@pulumi/spotinst";
const testStatefulNodeAzure = new spotinst.StatefulNodeAzure("test_stateful_node_azure", {
    name: "example_stateful_node_azure",
    region: "eastus",
    resourceGroupName: "spotinst-azure",
    description: "example_stateful_node_azure_description",
    strategy: {
        drainingTimeout: 30,
        fallbackToOnDemand: true,
        optimizationWindows: ["Tue:19:46-Tue:20:46"],
        odWindows: ["Wed:19:46-Wed:21:46"],
        availabilityVsCost: 100,
        vmAdmins: [
            "UbuntuUser",
            "TestUser",
        ],
        revertToSpot: {
            performAt: "timeWindow",
        },
        preferredLifeCycle: "od",
        capacityReservations: [{
            shouldUtilize: true,
            utilizationStrategy: "utilizeOverOD",
            capacityReservationGroups: [{
                crgName: "crg name",
                crgResourceGroupName: "resourceGroupName",
                crgShouldPrioritize: true,
            }],
        }],
    },
    os: "Linux",
    vmSizes: {
        odSizes: [
            "standard_ds1_v2",
            "standard_ds2_v2",
        ],
        spotSizes: [
            "standard_ds1_v2",
            "standard_ds2_v2",
        ],
        preferredSpotSizes: ["standard_ds1_v2"],
        excludedVmSizes: ["standard_ds2_v3"],
        spotSizeAttributes: {
            maxCpu: 16,
            minCpu: 2,
            maxMemory: 48,
            minMemory: 2,
            maxStorage: 1000,
            minStorage: 50,
        },
    },
    zones: [
        "1",
        "3",
    ],
    preferredZone: "1",
    customData: "",
    shutdownScript: "",
    userData: "",
    vmName: "VMName",
    vmNamePrefix: "VMNamePrefix",
    licenseType: "SLES_BYOS",
    bootDiagnostics: [{
        isEnabled: true,
        storageUrl: "https://.blob.core.windows.net/test",
        type: "unmanaged",
    }],
    dataDisks: [
        {
            sizeGb: 1,
            lun: 1,
            type: "Standard_LRS",
        },
        {
            sizeGb: 10,
            lun: 2,
            type: "Standard_LRS",
        },
    ],
    extensions: [{
        name: "extensionName",
        type: "customScript",
        publisher: "Microsoft.Azure.Extensions",
        apiVersion: "2.0",
        minorVersionAutoUpgrade: true,
        protectedSettings: {
            script: "IyEvYmluL2Jhc2gKZWNobyAibmlyIiA+IC9ob29uaXIudHh0Cg==",
        },
        publicSettings: {
            fileUris: "https://testspot/Azuretest.sh",
        },
    }],
    image: {
        marketplaceImages: [{
            publisher: "Canonical",
            offer: "UbuntuServer",
            sku: "16.04-LTS",
            version: "latest",
        }],
        customImages: [{
            customImageResourceGroupName: "resourceGroupName",
            name: "imageName",
        }],
        galleries: [{
            galleryResourceGroupName: "resourceGroupName",
            galleryName: "galleryName",
            imageName: "imageName",
            versionName: "1.1.0",
            spotAccountId: "act-123456",
        }],
    },
    loadBalancers: [{
        type: "loadBalancer",
        resourceGroupName: "testResourceGroup",
        name: "testLoadBalancer",
        sku: "Standard",
        backendPoolNames: [
            "testBackendPool1",
            "testBackendPool2",
        ],
    }],
    login: {
        userName: "admin",
        sshPublicKey: "33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==",
    },
    managedServiceIdentities: [{
        name: "mySI2",
        resourceGroupName: "myResourceGroup",
    }],
    network: {
        networkResourceGroupName: "subnetResourceGroup",
        virtualNetworkName: "vname",
        networkInterfaces: [{
            isPrimary: true,
            subnetName: "testSubnet",
            assignPublicIp: true,
            publicIpSku: "Standard",
            networkSecurityGroups: [{
                networkResourceGroupName: "test",
                name: "test",
            }],
            enableIpForwarding: true,
            privateIpAddresses: ["172.23.4.20"],
            additionalIpConfigurations: [{
                name: "test",
                privateIpAddressVersion: "IPv4",
            }],
            publicIps: [{
                networkResourceGroupName: "resourceGroup",
                name: "test",
            }],
            applicationSecurityGroups: [{
                networkResourceGroupName: "AsgResourceGroup",
                name: "AsgName",
            }],
        }],
    },
    osDisk: {
        sizeGb: 30,
        type: "Standard_LRS",
        caching: "ReadOnly",
    },
    secrets: [{
        sourceVaults: [{
            name: "string",
            resourceGroupName: "string",
        }],
        vaultCertificates: [{
            certificateUrl: "string",
            certificateStore: "string",
        }],
    }],
    security: {
        securityType: "ConfidentialVM",
        secureBootEnabled: true,
        vtpmEnabled: true,
        encryptionAtHost: false,
        confidentialOsDiskEncryption: true,
    },
    tags: [{
        tagKey: "Creator",
        tagValue: "string",
    }],
    health: {
        healthCheckTypes: ["vmState"],
        unhealthyDuration: 300,
        gracePeriod: 120,
        autoHealing: true,
    },
    shouldPersistOsDisk: false,
    osDiskPersistenceMode: "reattach",
    shouldPersistDataDisks: true,
    dataDisksPersistenceMode: "reattach",
    shouldPersistNetwork: true,
    schedulingTasks: [
        {
            isEnabled: true,
            type: "pause",
            cronExpression: "44 10 * * *",
        },
        {
            isEnabled: true,
            type: "resume",
            cronExpression: "48 10 * * *",
        },
        {
            isEnabled: true,
            type: "recycle",
            cronExpression: "52 10 * * *",
        },
    ],
    signals: [
        {
            type: "vmReady",
            timeout: 20,
        },
        {
            type: "vmReady",
            timeout: 40,
        },
    ],
    proximityPlacementGroups: [{
        name: "TestPPG",
        resourceGroupName: "TestResourceGroup",
    }],
    deletes: [{
        shouldTerminateVm: true,
        networkShouldDeallocate: true,
        networkTtlInHours: 0,
        diskShouldDeallocate: true,
        diskTtlInHours: 0,
        snapshotShouldDeallocate: true,
        snapshotTtlInHours: 0,
        publicIpShouldDeallocate: true,
        publicIpTtlInHours: 0,
        shouldDeregisterFromLb: true,
        shouldRevertToOd: false,
    }],
});
import pulumi
import pulumi_spotinst as spotinst
test_stateful_node_azure = spotinst.StatefulNodeAzure("test_stateful_node_azure",
    name="example_stateful_node_azure",
    region="eastus",
    resource_group_name="spotinst-azure",
    description="example_stateful_node_azure_description",
    strategy={
        "draining_timeout": 30,
        "fallback_to_on_demand": True,
        "optimization_windows": ["Tue:19:46-Tue:20:46"],
        "od_windows": ["Wed:19:46-Wed:21:46"],
        "availability_vs_cost": 100,
        "vm_admins": [
            "UbuntuUser",
            "TestUser",
        ],
        "revert_to_spot": {
            "perform_at": "timeWindow",
        },
        "preferred_life_cycle": "od",
        "capacity_reservations": [{
            "should_utilize": True,
            "utilization_strategy": "utilizeOverOD",
            "capacity_reservation_groups": [{
                "crg_name": "crg name",
                "crg_resource_group_name": "resourceGroupName",
                "crg_should_prioritize": True,
            }],
        }],
    },
    os="Linux",
    vm_sizes={
        "od_sizes": [
            "standard_ds1_v2",
            "standard_ds2_v2",
        ],
        "spot_sizes": [
            "standard_ds1_v2",
            "standard_ds2_v2",
        ],
        "preferred_spot_sizes": ["standard_ds1_v2"],
        "excluded_vm_sizes": ["standard_ds2_v3"],
        "spot_size_attributes": {
            "max_cpu": 16,
            "min_cpu": 2,
            "max_memory": 48,
            "min_memory": 2,
            "max_storage": 1000,
            "min_storage": 50,
        },
    },
    zones=[
        "1",
        "3",
    ],
    preferred_zone="1",
    custom_data="",
    shutdown_script="",
    user_data="",
    vm_name="VMName",
    vm_name_prefix="VMNamePrefix",
    license_type="SLES_BYOS",
    boot_diagnostics=[{
        "is_enabled": True,
        "storage_url": "https://.blob.core.windows.net/test",
        "type": "unmanaged",
    }],
    data_disks=[
        {
            "size_gb": 1,
            "lun": 1,
            "type": "Standard_LRS",
        },
        {
            "size_gb": 10,
            "lun": 2,
            "type": "Standard_LRS",
        },
    ],
    extensions=[{
        "name": "extensionName",
        "type": "customScript",
        "publisher": "Microsoft.Azure.Extensions",
        "api_version": "2.0",
        "minor_version_auto_upgrade": True,
        "protected_settings": {
            "script": "IyEvYmluL2Jhc2gKZWNobyAibmlyIiA+IC9ob29uaXIudHh0Cg==",
        },
        "public_settings": {
            "fileUris": "https://testspot/Azuretest.sh",
        },
    }],
    image={
        "marketplace_images": [{
            "publisher": "Canonical",
            "offer": "UbuntuServer",
            "sku": "16.04-LTS",
            "version": "latest",
        }],
        "custom_images": [{
            "custom_image_resource_group_name": "resourceGroupName",
            "name": "imageName",
        }],
        "galleries": [{
            "gallery_resource_group_name": "resourceGroupName",
            "gallery_name": "galleryName",
            "image_name": "imageName",
            "version_name": "1.1.0",
            "spot_account_id": "act-123456",
        }],
    },
    load_balancers=[{
        "type": "loadBalancer",
        "resource_group_name": "testResourceGroup",
        "name": "testLoadBalancer",
        "sku": "Standard",
        "backend_pool_names": [
            "testBackendPool1",
            "testBackendPool2",
        ],
    }],
    login={
        "user_name": "admin",
        "ssh_public_key": "33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==",
    },
    managed_service_identities=[{
        "name": "mySI2",
        "resource_group_name": "myResourceGroup",
    }],
    network={
        "network_resource_group_name": "subnetResourceGroup",
        "virtual_network_name": "vname",
        "network_interfaces": [{
            "is_primary": True,
            "subnet_name": "testSubnet",
            "assign_public_ip": True,
            "public_ip_sku": "Standard",
            "network_security_groups": [{
                "network_resource_group_name": "test",
                "name": "test",
            }],
            "enable_ip_forwarding": True,
            "private_ip_addresses": ["172.23.4.20"],
            "additional_ip_configurations": [{
                "name": "test",
                "private_ip_address_version": "IPv4",
            }],
            "public_ips": [{
                "network_resource_group_name": "resourceGroup",
                "name": "test",
            }],
            "application_security_groups": [{
                "network_resource_group_name": "AsgResourceGroup",
                "name": "AsgName",
            }],
        }],
    },
    os_disk={
        "size_gb": 30,
        "type": "Standard_LRS",
        "caching": "ReadOnly",
    },
    secrets=[{
        "source_vaults": [{
            "name": "string",
            "resource_group_name": "string",
        }],
        "vault_certificates": [{
            "certificate_url": "string",
            "certificate_store": "string",
        }],
    }],
    security={
        "security_type": "ConfidentialVM",
        "secure_boot_enabled": True,
        "vtpm_enabled": True,
        "encryption_at_host": False,
        "confidential_os_disk_encryption": True,
    },
    tags=[{
        "tag_key": "Creator",
        "tag_value": "string",
    }],
    health={
        "health_check_types": ["vmState"],
        "unhealthy_duration": 300,
        "grace_period": 120,
        "auto_healing": True,
    },
    should_persist_os_disk=False,
    os_disk_persistence_mode="reattach",
    should_persist_data_disks=True,
    data_disks_persistence_mode="reattach",
    should_persist_network=True,
    scheduling_tasks=[
        {
            "is_enabled": True,
            "type": "pause",
            "cron_expression": "44 10 * * *",
        },
        {
            "is_enabled": True,
            "type": "resume",
            "cron_expression": "48 10 * * *",
        },
        {
            "is_enabled": True,
            "type": "recycle",
            "cron_expression": "52 10 * * *",
        },
    ],
    signals=[
        {
            "type": "vmReady",
            "timeout": 20,
        },
        {
            "type": "vmReady",
            "timeout": 40,
        },
    ],
    proximity_placement_groups=[{
        "name": "TestPPG",
        "resource_group_name": "TestResourceGroup",
    }],
    deletes=[{
        "should_terminate_vm": True,
        "network_should_deallocate": True,
        "network_ttl_in_hours": 0,
        "disk_should_deallocate": True,
        "disk_ttl_in_hours": 0,
        "snapshot_should_deallocate": True,
        "snapshot_ttl_in_hours": 0,
        "public_ip_should_deallocate": True,
        "public_ip_ttl_in_hours": 0,
        "should_deregister_from_lb": True,
        "should_revert_to_od": False,
    }])
package main
import (
	"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spotinst.NewStatefulNodeAzure(ctx, "test_stateful_node_azure", &spotinst.StatefulNodeAzureArgs{
			Name:              pulumi.String("example_stateful_node_azure"),
			Region:            pulumi.String("eastus"),
			ResourceGroupName: pulumi.String("spotinst-azure"),
			Description:       pulumi.String("example_stateful_node_azure_description"),
			Strategy: &spotinst.StatefulNodeAzureStrategyArgs{
				DrainingTimeout:    pulumi.Int(30),
				FallbackToOnDemand: pulumi.Bool(true),
				OptimizationWindows: pulumi.StringArray{
					pulumi.String("Tue:19:46-Tue:20:46"),
				},
				OdWindows: pulumi.StringArray{
					pulumi.String("Wed:19:46-Wed:21:46"),
				},
				AvailabilityVsCost: pulumi.Int(100),
				VmAdmins: pulumi.StringArray{
					pulumi.String("UbuntuUser"),
					pulumi.String("TestUser"),
				},
				RevertToSpot: &spotinst.StatefulNodeAzureStrategyRevertToSpotArgs{
					PerformAt: pulumi.String("timeWindow"),
				},
				PreferredLifeCycle: pulumi.String("od"),
				CapacityReservations: spotinst.StatefulNodeAzureStrategyCapacityReservationArray{
					&spotinst.StatefulNodeAzureStrategyCapacityReservationArgs{
						ShouldUtilize:       pulumi.Bool(true),
						UtilizationStrategy: pulumi.String("utilizeOverOD"),
						CapacityReservationGroups: spotinst.StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArray{
							&spotinst.StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs{
								CrgName:              pulumi.String("crg name"),
								CrgResourceGroupName: pulumi.String("resourceGroupName"),
								CrgShouldPrioritize:  pulumi.Bool(true),
							},
						},
					},
				},
			},
			Os: pulumi.String("Linux"),
			VmSizes: &spotinst.StatefulNodeAzureVmSizesArgs{
				OdSizes: pulumi.StringArray{
					pulumi.String("standard_ds1_v2"),
					pulumi.String("standard_ds2_v2"),
				},
				SpotSizes: pulumi.StringArray{
					pulumi.String("standard_ds1_v2"),
					pulumi.String("standard_ds2_v2"),
				},
				PreferredSpotSizes: pulumi.StringArray{
					pulumi.String("standard_ds1_v2"),
				},
				ExcludedVmSizes: pulumi.StringArray{
					pulumi.String("standard_ds2_v3"),
				},
				SpotSizeAttributes: &spotinst.StatefulNodeAzureVmSizesSpotSizeAttributesArgs{
					MaxCpu:     pulumi.Int(16),
					MinCpu:     pulumi.Int(2),
					MaxMemory:  pulumi.Int(48),
					MinMemory:  pulumi.Int(2),
					MaxStorage: pulumi.Int(1000),
					MinStorage: pulumi.Int(50),
				},
			},
			Zones: pulumi.StringArray{
				pulumi.String("1"),
				pulumi.String("3"),
			},
			PreferredZone:  pulumi.String("1"),
			CustomData:     pulumi.String(""),
			ShutdownScript: pulumi.String(""),
			UserData:       pulumi.String(""),
			VmName:         pulumi.String("VMName"),
			VmNamePrefix:   pulumi.String("VMNamePrefix"),
			LicenseType:    pulumi.String("SLES_BYOS"),
			BootDiagnostics: spotinst.StatefulNodeAzureBootDiagnosticArray{
				&spotinst.StatefulNodeAzureBootDiagnosticArgs{
					IsEnabled:  pulumi.Bool(true),
					StorageUrl: pulumi.String("https://.blob.core.windows.net/test"),
					Type:       pulumi.String("unmanaged"),
				},
			},
			DataDisks: spotinst.StatefulNodeAzureDataDiskArray{
				&spotinst.StatefulNodeAzureDataDiskArgs{
					SizeGb: pulumi.Int(1),
					Lun:    pulumi.Int(1),
					Type:   pulumi.String("Standard_LRS"),
				},
				&spotinst.StatefulNodeAzureDataDiskArgs{
					SizeGb: pulumi.Int(10),
					Lun:    pulumi.Int(2),
					Type:   pulumi.String("Standard_LRS"),
				},
			},
			Extensions: spotinst.StatefulNodeAzureExtensionArray{
				&spotinst.StatefulNodeAzureExtensionArgs{
					Name:                    pulumi.String("extensionName"),
					Type:                    pulumi.String("customScript"),
					Publisher:               pulumi.String("Microsoft.Azure.Extensions"),
					ApiVersion:              pulumi.String("2.0"),
					MinorVersionAutoUpgrade: pulumi.Bool(true),
					ProtectedSettings: pulumi.StringMap{
						"script": pulumi.String("IyEvYmluL2Jhc2gKZWNobyAibmlyIiA+IC9ob29uaXIudHh0Cg=="),
					},
					PublicSettings: pulumi.StringMap{
						"fileUris": pulumi.String("https://testspot/Azuretest.sh"),
					},
				},
			},
			Image: &spotinst.StatefulNodeAzureImageArgs{
				MarketplaceImages: spotinst.StatefulNodeAzureImageMarketplaceImageArray{
					&spotinst.StatefulNodeAzureImageMarketplaceImageArgs{
						Publisher: pulumi.String("Canonical"),
						Offer:     pulumi.String("UbuntuServer"),
						Sku:       pulumi.String("16.04-LTS"),
						Version:   pulumi.String("latest"),
					},
				},
				CustomImages: spotinst.StatefulNodeAzureImageCustomImageArray{
					&spotinst.StatefulNodeAzureImageCustomImageArgs{
						CustomImageResourceGroupName: pulumi.String("resourceGroupName"),
						Name:                         pulumi.String("imageName"),
					},
				},
				Galleries: spotinst.StatefulNodeAzureImageGalleryArray{
					&spotinst.StatefulNodeAzureImageGalleryArgs{
						GalleryResourceGroupName: pulumi.String("resourceGroupName"),
						GalleryName:              pulumi.String("galleryName"),
						ImageName:                pulumi.String("imageName"),
						VersionName:              pulumi.String("1.1.0"),
						SpotAccountId:            pulumi.String("act-123456"),
					},
				},
			},
			LoadBalancers: spotinst.StatefulNodeAzureLoadBalancerArray{
				&spotinst.StatefulNodeAzureLoadBalancerArgs{
					Type:              pulumi.String("loadBalancer"),
					ResourceGroupName: pulumi.String("testResourceGroup"),
					Name:              pulumi.String("testLoadBalancer"),
					Sku:               pulumi.String("Standard"),
					BackendPoolNames: pulumi.StringArray{
						pulumi.String("testBackendPool1"),
						pulumi.String("testBackendPool2"),
					},
				},
			},
			Login: &spotinst.StatefulNodeAzureLoginArgs{
				UserName:     pulumi.String("admin"),
				SshPublicKey: pulumi.String("33a2s1f3g5a1df5g1ad3f2g1adfg56dfg=="),
			},
			ManagedServiceIdentities: spotinst.StatefulNodeAzureManagedServiceIdentityArray{
				&spotinst.StatefulNodeAzureManagedServiceIdentityArgs{
					Name:              pulumi.String("mySI2"),
					ResourceGroupName: pulumi.String("myResourceGroup"),
				},
			},
			Network: &spotinst.StatefulNodeAzureNetworkArgs{
				NetworkResourceGroupName: pulumi.String("subnetResourceGroup"),
				VirtualNetworkName:       pulumi.String("vname"),
				NetworkInterfaces: spotinst.StatefulNodeAzureNetworkNetworkInterfaceArray{
					&spotinst.StatefulNodeAzureNetworkNetworkInterfaceArgs{
						IsPrimary:      pulumi.Bool(true),
						SubnetName:     pulumi.String("testSubnet"),
						AssignPublicIp: pulumi.Bool(true),
						PublicIpSku:    pulumi.String("Standard"),
						NetworkSecurityGroups: spotinst.StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArray{
							&spotinst.StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs{
								NetworkResourceGroupName: pulumi.String("test"),
								Name:                     pulumi.String("test"),
							},
						},
						EnableIpForwarding: pulumi.Bool(true),
						PrivateIpAddresses: pulumi.StringArray{
							pulumi.String("172.23.4.20"),
						},
						AdditionalIpConfigurations: spotinst.StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArray{
							&spotinst.StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs{
								Name:                    pulumi.String("test"),
								PrivateIpAddressVersion: pulumi.String("IPv4"),
							},
						},
						PublicIps: spotinst.StatefulNodeAzureNetworkNetworkInterfacePublicIpArray{
							&spotinst.StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs{
								NetworkResourceGroupName: pulumi.String("resourceGroup"),
								Name:                     pulumi.String("test"),
							},
						},
						ApplicationSecurityGroups: spotinst.StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArray{
							&spotinst.StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs{
								NetworkResourceGroupName: pulumi.String("AsgResourceGroup"),
								Name:                     pulumi.String("AsgName"),
							},
						},
					},
				},
			},
			OsDisk: &spotinst.StatefulNodeAzureOsDiskArgs{
				SizeGb:  pulumi.Int(30),
				Type:    pulumi.String("Standard_LRS"),
				Caching: pulumi.String("ReadOnly"),
			},
			Secrets: spotinst.StatefulNodeAzureSecretArray{
				&spotinst.StatefulNodeAzureSecretArgs{
					SourceVaults: spotinst.StatefulNodeAzureSecretSourceVaultArray{
						&spotinst.StatefulNodeAzureSecretSourceVaultArgs{
							Name:              pulumi.String("string"),
							ResourceGroupName: pulumi.String("string"),
						},
					},
					VaultCertificates: spotinst.StatefulNodeAzureSecretVaultCertificateArray{
						&spotinst.StatefulNodeAzureSecretVaultCertificateArgs{
							CertificateUrl:   pulumi.String("string"),
							CertificateStore: pulumi.String("string"),
						},
					},
				},
			},
			Security: &spotinst.StatefulNodeAzureSecurityArgs{
				SecurityType:                 pulumi.String("ConfidentialVM"),
				SecureBootEnabled:            pulumi.Bool(true),
				VtpmEnabled:                  pulumi.Bool(true),
				EncryptionAtHost:             pulumi.Bool(false),
				ConfidentialOsDiskEncryption: pulumi.Bool(true),
			},
			Tags: spotinst.StatefulNodeAzureTagArray{
				&spotinst.StatefulNodeAzureTagArgs{
					TagKey:   pulumi.String("Creator"),
					TagValue: pulumi.String("string"),
				},
			},
			Health: &spotinst.StatefulNodeAzureHealthArgs{
				HealthCheckTypes: pulumi.StringArray{
					pulumi.String("vmState"),
				},
				UnhealthyDuration: pulumi.Int(300),
				GracePeriod:       pulumi.Int(120),
				AutoHealing:       pulumi.Bool(true),
			},
			ShouldPersistOsDisk:      pulumi.Bool(false),
			OsDiskPersistenceMode:    pulumi.String("reattach"),
			ShouldPersistDataDisks:   pulumi.Bool(true),
			DataDisksPersistenceMode: pulumi.String("reattach"),
			ShouldPersistNetwork:     pulumi.Bool(true),
			SchedulingTasks: spotinst.StatefulNodeAzureSchedulingTaskArray{
				&spotinst.StatefulNodeAzureSchedulingTaskArgs{
					IsEnabled:      pulumi.Bool(true),
					Type:           pulumi.String("pause"),
					CronExpression: pulumi.String("44 10 * * *"),
				},
				&spotinst.StatefulNodeAzureSchedulingTaskArgs{
					IsEnabled:      pulumi.Bool(true),
					Type:           pulumi.String("resume"),
					CronExpression: pulumi.String("48 10 * * *"),
				},
				&spotinst.StatefulNodeAzureSchedulingTaskArgs{
					IsEnabled:      pulumi.Bool(true),
					Type:           pulumi.String("recycle"),
					CronExpression: pulumi.String("52 10 * * *"),
				},
			},
			Signals: spotinst.StatefulNodeAzureSignalArray{
				&spotinst.StatefulNodeAzureSignalArgs{
					Type:    pulumi.String("vmReady"),
					Timeout: pulumi.Int(20),
				},
				&spotinst.StatefulNodeAzureSignalArgs{
					Type:    pulumi.String("vmReady"),
					Timeout: pulumi.Int(40),
				},
			},
			ProximityPlacementGroups: spotinst.StatefulNodeAzureProximityPlacementGroupArray{
				&spotinst.StatefulNodeAzureProximityPlacementGroupArgs{
					Name:              pulumi.String("TestPPG"),
					ResourceGroupName: pulumi.String("TestResourceGroup"),
				},
			},
			Deletes: spotinst.StatefulNodeAzureDeleteArray{
				&spotinst.StatefulNodeAzureDeleteArgs{
					ShouldTerminateVm:        pulumi.Bool(true),
					NetworkShouldDeallocate:  pulumi.Bool(true),
					NetworkTtlInHours:        pulumi.Int(0),
					DiskShouldDeallocate:     pulumi.Bool(true),
					DiskTtlInHours:           pulumi.Int(0),
					SnapshotShouldDeallocate: pulumi.Bool(true),
					SnapshotTtlInHours:       pulumi.Int(0),
					PublicIpShouldDeallocate: pulumi.Bool(true),
					PublicIpTtlInHours:       pulumi.Int(0),
					ShouldDeregisterFromLb:   pulumi.Bool(true),
					ShouldRevertToOd:         pulumi.Bool(false),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using SpotInst = Pulumi.SpotInst;
return await Deployment.RunAsync(() => 
{
    var testStatefulNodeAzure = new SpotInst.StatefulNodeAzure("test_stateful_node_azure", new()
    {
        Name = "example_stateful_node_azure",
        Region = "eastus",
        ResourceGroupName = "spotinst-azure",
        Description = "example_stateful_node_azure_description",
        Strategy = new SpotInst.Inputs.StatefulNodeAzureStrategyArgs
        {
            DrainingTimeout = 30,
            FallbackToOnDemand = true,
            OptimizationWindows = new[]
            {
                "Tue:19:46-Tue:20:46",
            },
            OdWindows = new[]
            {
                "Wed:19:46-Wed:21:46",
            },
            AvailabilityVsCost = 100,
            VmAdmins = new[]
            {
                "UbuntuUser",
                "TestUser",
            },
            RevertToSpot = new SpotInst.Inputs.StatefulNodeAzureStrategyRevertToSpotArgs
            {
                PerformAt = "timeWindow",
            },
            PreferredLifeCycle = "od",
            CapacityReservations = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureStrategyCapacityReservationArgs
                {
                    ShouldUtilize = true,
                    UtilizationStrategy = "utilizeOverOD",
                    CapacityReservationGroups = new[]
                    {
                        new SpotInst.Inputs.StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs
                        {
                            CrgName = "crg name",
                            CrgResourceGroupName = "resourceGroupName",
                            CrgShouldPrioritize = true,
                        },
                    },
                },
            },
        },
        Os = "Linux",
        VmSizes = new SpotInst.Inputs.StatefulNodeAzureVmSizesArgs
        {
            OdSizes = new[]
            {
                "standard_ds1_v2",
                "standard_ds2_v2",
            },
            SpotSizes = new[]
            {
                "standard_ds1_v2",
                "standard_ds2_v2",
            },
            PreferredSpotSizes = new[]
            {
                "standard_ds1_v2",
            },
            ExcludedVmSizes = new[]
            {
                "standard_ds2_v3",
            },
            SpotSizeAttributes = new SpotInst.Inputs.StatefulNodeAzureVmSizesSpotSizeAttributesArgs
            {
                MaxCpu = 16,
                MinCpu = 2,
                MaxMemory = 48,
                MinMemory = 2,
                MaxStorage = 1000,
                MinStorage = 50,
            },
        },
        Zones = new[]
        {
            "1",
            "3",
        },
        PreferredZone = "1",
        CustomData = "",
        ShutdownScript = "",
        UserData = "",
        VmName = "VMName",
        VmNamePrefix = "VMNamePrefix",
        LicenseType = "SLES_BYOS",
        BootDiagnostics = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureBootDiagnosticArgs
            {
                IsEnabled = true,
                StorageUrl = "https://.blob.core.windows.net/test",
                Type = "unmanaged",
            },
        },
        DataDisks = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureDataDiskArgs
            {
                SizeGb = 1,
                Lun = 1,
                Type = "Standard_LRS",
            },
            new SpotInst.Inputs.StatefulNodeAzureDataDiskArgs
            {
                SizeGb = 10,
                Lun = 2,
                Type = "Standard_LRS",
            },
        },
        Extensions = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureExtensionArgs
            {
                Name = "extensionName",
                Type = "customScript",
                Publisher = "Microsoft.Azure.Extensions",
                ApiVersion = "2.0",
                MinorVersionAutoUpgrade = true,
                ProtectedSettings = 
                {
                    { "script", "IyEvYmluL2Jhc2gKZWNobyAibmlyIiA+IC9ob29uaXIudHh0Cg==" },
                },
                PublicSettings = 
                {
                    { "fileUris", "https://testspot/Azuretest.sh" },
                },
            },
        },
        Image = new SpotInst.Inputs.StatefulNodeAzureImageArgs
        {
            MarketplaceImages = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureImageMarketplaceImageArgs
                {
                    Publisher = "Canonical",
                    Offer = "UbuntuServer",
                    Sku = "16.04-LTS",
                    Version = "latest",
                },
            },
            CustomImages = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureImageCustomImageArgs
                {
                    CustomImageResourceGroupName = "resourceGroupName",
                    Name = "imageName",
                },
            },
            Galleries = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureImageGalleryArgs
                {
                    GalleryResourceGroupName = "resourceGroupName",
                    GalleryName = "galleryName",
                    ImageName = "imageName",
                    VersionName = "1.1.0",
                    SpotAccountId = "act-123456",
                },
            },
        },
        LoadBalancers = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureLoadBalancerArgs
            {
                Type = "loadBalancer",
                ResourceGroupName = "testResourceGroup",
                Name = "testLoadBalancer",
                Sku = "Standard",
                BackendPoolNames = new[]
                {
                    "testBackendPool1",
                    "testBackendPool2",
                },
            },
        },
        Login = new SpotInst.Inputs.StatefulNodeAzureLoginArgs
        {
            UserName = "admin",
            SshPublicKey = "33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==",
        },
        ManagedServiceIdentities = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureManagedServiceIdentityArgs
            {
                Name = "mySI2",
                ResourceGroupName = "myResourceGroup",
            },
        },
        Network = new SpotInst.Inputs.StatefulNodeAzureNetworkArgs
        {
            NetworkResourceGroupName = "subnetResourceGroup",
            VirtualNetworkName = "vname",
            NetworkInterfaces = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceArgs
                {
                    IsPrimary = true,
                    SubnetName = "testSubnet",
                    AssignPublicIp = true,
                    PublicIpSku = "Standard",
                    NetworkSecurityGroups = new[]
                    {
                        new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs
                        {
                            NetworkResourceGroupName = "test",
                            Name = "test",
                        },
                    },
                    EnableIpForwarding = true,
                    PrivateIpAddresses = new[]
                    {
                        "172.23.4.20",
                    },
                    AdditionalIpConfigurations = new[]
                    {
                        new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs
                        {
                            Name = "test",
                            PrivateIpAddressVersion = "IPv4",
                        },
                    },
                    PublicIps = new[]
                    {
                        new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs
                        {
                            NetworkResourceGroupName = "resourceGroup",
                            Name = "test",
                        },
                    },
                    ApplicationSecurityGroups = new[]
                    {
                        new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs
                        {
                            NetworkResourceGroupName = "AsgResourceGroup",
                            Name = "AsgName",
                        },
                    },
                },
            },
        },
        OsDisk = new SpotInst.Inputs.StatefulNodeAzureOsDiskArgs
        {
            SizeGb = 30,
            Type = "Standard_LRS",
            Caching = "ReadOnly",
        },
        Secrets = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureSecretArgs
            {
                SourceVaults = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureSecretSourceVaultArgs
                    {
                        Name = "string",
                        ResourceGroupName = "string",
                    },
                },
                VaultCertificates = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureSecretVaultCertificateArgs
                    {
                        CertificateUrl = "string",
                        CertificateStore = "string",
                    },
                },
            },
        },
        Security = new SpotInst.Inputs.StatefulNodeAzureSecurityArgs
        {
            SecurityType = "ConfidentialVM",
            SecureBootEnabled = true,
            VtpmEnabled = true,
            EncryptionAtHost = false,
            ConfidentialOsDiskEncryption = true,
        },
        Tags = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureTagArgs
            {
                TagKey = "Creator",
                TagValue = "string",
            },
        },
        Health = new SpotInst.Inputs.StatefulNodeAzureHealthArgs
        {
            HealthCheckTypes = new[]
            {
                "vmState",
            },
            UnhealthyDuration = 300,
            GracePeriod = 120,
            AutoHealing = true,
        },
        ShouldPersistOsDisk = false,
        OsDiskPersistenceMode = "reattach",
        ShouldPersistDataDisks = true,
        DataDisksPersistenceMode = "reattach",
        ShouldPersistNetwork = true,
        SchedulingTasks = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureSchedulingTaskArgs
            {
                IsEnabled = true,
                Type = "pause",
                CronExpression = "44 10 * * *",
            },
            new SpotInst.Inputs.StatefulNodeAzureSchedulingTaskArgs
            {
                IsEnabled = true,
                Type = "resume",
                CronExpression = "48 10 * * *",
            },
            new SpotInst.Inputs.StatefulNodeAzureSchedulingTaskArgs
            {
                IsEnabled = true,
                Type = "recycle",
                CronExpression = "52 10 * * *",
            },
        },
        Signals = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureSignalArgs
            {
                Type = "vmReady",
                Timeout = 20,
            },
            new SpotInst.Inputs.StatefulNodeAzureSignalArgs
            {
                Type = "vmReady",
                Timeout = 40,
            },
        },
        ProximityPlacementGroups = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureProximityPlacementGroupArgs
            {
                Name = "TestPPG",
                ResourceGroupName = "TestResourceGroup",
            },
        },
        Deletes = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureDeleteArgs
            {
                ShouldTerminateVm = true,
                NetworkShouldDeallocate = true,
                NetworkTtlInHours = 0,
                DiskShouldDeallocate = true,
                DiskTtlInHours = 0,
                SnapshotShouldDeallocate = true,
                SnapshotTtlInHours = 0,
                PublicIpShouldDeallocate = true,
                PublicIpTtlInHours = 0,
                ShouldDeregisterFromLb = true,
                ShouldRevertToOd = false,
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.spotinst.StatefulNodeAzure;
import com.pulumi.spotinst.StatefulNodeAzureArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureStrategyArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureStrategyRevertToSpotArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureVmSizesArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureVmSizesSpotSizeAttributesArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureBootDiagnosticArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureDataDiskArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureExtensionArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureImageArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureLoadBalancerArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureLoginArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureManagedServiceIdentityArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureNetworkArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureOsDiskArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureSecretArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureSecurityArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureTagArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureHealthArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureSchedulingTaskArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureSignalArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureProximityPlacementGroupArgs;
import com.pulumi.spotinst.inputs.StatefulNodeAzureDeleteArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var testStatefulNodeAzure = new StatefulNodeAzure("testStatefulNodeAzure", StatefulNodeAzureArgs.builder()
            .name("example_stateful_node_azure")
            .region("eastus")
            .resourceGroupName("spotinst-azure")
            .description("example_stateful_node_azure_description")
            .strategy(StatefulNodeAzureStrategyArgs.builder()
                .drainingTimeout(30)
                .fallbackToOnDemand(true)
                .optimizationWindows("Tue:19:46-Tue:20:46")
                .odWindows("Wed:19:46-Wed:21:46")
                .availabilityVsCost(100)
                .vmAdmins(                
                    "UbuntuUser",
                    "TestUser")
                .revertToSpot(StatefulNodeAzureStrategyRevertToSpotArgs.builder()
                    .performAt("timeWindow")
                    .build())
                .preferredLifeCycle("od")
                .capacityReservations(StatefulNodeAzureStrategyCapacityReservationArgs.builder()
                    .shouldUtilize(true)
                    .utilizationStrategy("utilizeOverOD")
                    .capacityReservationGroups(StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs.builder()
                        .crgName("crg name")
                        .crgResourceGroupName("resourceGroupName")
                        .crgShouldPrioritize(true)
                        .build())
                    .build())
                .build())
            .os("Linux")
            .vmSizes(StatefulNodeAzureVmSizesArgs.builder()
                .odSizes(                
                    "standard_ds1_v2",
                    "standard_ds2_v2")
                .spotSizes(                
                    "standard_ds1_v2",
                    "standard_ds2_v2")
                .preferredSpotSizes("standard_ds1_v2")
                .excludedVmSizes("standard_ds2_v3")
                .spotSizeAttributes(StatefulNodeAzureVmSizesSpotSizeAttributesArgs.builder()
                    .maxCpu(16)
                    .minCpu(2)
                    .maxMemory(48)
                    .minMemory(2)
                    .maxStorage(1000)
                    .minStorage(50)
                    .build())
                .build())
            .zones(            
                "1",
                "3")
            .preferredZone("1")
            .customData("")
            .shutdownScript("")
            .userData("")
            .vmName("VMName")
            .vmNamePrefix("VMNamePrefix")
            .licenseType("SLES_BYOS")
            .bootDiagnostics(StatefulNodeAzureBootDiagnosticArgs.builder()
                .isEnabled(true)
                .storageUrl("https://.blob.core.windows.net/test")
                .type("unmanaged")
                .build())
            .dataDisks(            
                StatefulNodeAzureDataDiskArgs.builder()
                    .sizeGb(1)
                    .lun(1)
                    .type("Standard_LRS")
                    .build(),
                StatefulNodeAzureDataDiskArgs.builder()
                    .sizeGb(10)
                    .lun(2)
                    .type("Standard_LRS")
                    .build())
            .extensions(StatefulNodeAzureExtensionArgs.builder()
                .name("extensionName")
                .type("customScript")
                .publisher("Microsoft.Azure.Extensions")
                .apiVersion("2.0")
                .minorVersionAutoUpgrade(true)
                .protectedSettings(Map.of("script", "IyEvYmluL2Jhc2gKZWNobyAibmlyIiA+IC9ob29uaXIudHh0Cg=="))
                .publicSettings(Map.of("fileUris", "https://testspot/Azuretest.sh"))
                .build())
            .image(StatefulNodeAzureImageArgs.builder()
                .marketplaceImages(StatefulNodeAzureImageMarketplaceImageArgs.builder()
                    .publisher("Canonical")
                    .offer("UbuntuServer")
                    .sku("16.04-LTS")
                    .version("latest")
                    .build())
                .customImages(StatefulNodeAzureImageCustomImageArgs.builder()
                    .customImageResourceGroupName("resourceGroupName")
                    .name("imageName")
                    .build())
                .galleries(StatefulNodeAzureImageGalleryArgs.builder()
                    .galleryResourceGroupName("resourceGroupName")
                    .galleryName("galleryName")
                    .imageName("imageName")
                    .versionName("1.1.0")
                    .spotAccountId("act-123456")
                    .build())
                .build())
            .loadBalancers(StatefulNodeAzureLoadBalancerArgs.builder()
                .type("loadBalancer")
                .resourceGroupName("testResourceGroup")
                .name("testLoadBalancer")
                .sku("Standard")
                .backendPoolNames(                
                    "testBackendPool1",
                    "testBackendPool2")
                .build())
            .login(StatefulNodeAzureLoginArgs.builder()
                .userName("admin")
                .sshPublicKey("33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==")
                .build())
            .managedServiceIdentities(StatefulNodeAzureManagedServiceIdentityArgs.builder()
                .name("mySI2")
                .resourceGroupName("myResourceGroup")
                .build())
            .network(StatefulNodeAzureNetworkArgs.builder()
                .networkResourceGroupName("subnetResourceGroup")
                .virtualNetworkName("vname")
                .networkInterfaces(StatefulNodeAzureNetworkNetworkInterfaceArgs.builder()
                    .isPrimary(true)
                    .subnetName("testSubnet")
                    .assignPublicIp(true)
                    .publicIpSku("Standard")
                    .networkSecurityGroups(StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs.builder()
                        .networkResourceGroupName("test")
                        .name("test")
                        .build())
                    .enableIpForwarding(true)
                    .privateIpAddresses("172.23.4.20")
                    .additionalIpConfigurations(StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs.builder()
                        .name("test")
                        .privateIpAddressVersion("IPv4")
                        .build())
                    .publicIps(StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs.builder()
                        .networkResourceGroupName("resourceGroup")
                        .name("test")
                        .build())
                    .applicationSecurityGroups(StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs.builder()
                        .networkResourceGroupName("AsgResourceGroup")
                        .name("AsgName")
                        .build())
                    .build())
                .build())
            .osDisk(StatefulNodeAzureOsDiskArgs.builder()
                .sizeGb(30)
                .type("Standard_LRS")
                .caching("ReadOnly")
                .build())
            .secrets(StatefulNodeAzureSecretArgs.builder()
                .sourceVaults(StatefulNodeAzureSecretSourceVaultArgs.builder()
                    .name("string")
                    .resourceGroupName("string")
                    .build())
                .vaultCertificates(StatefulNodeAzureSecretVaultCertificateArgs.builder()
                    .certificateUrl("string")
                    .certificateStore("string")
                    .build())
                .build())
            .security(StatefulNodeAzureSecurityArgs.builder()
                .securityType("ConfidentialVM")
                .secureBootEnabled(true)
                .vtpmEnabled(true)
                .encryptionAtHost(false)
                .confidentialOsDiskEncryption(true)
                .build())
            .tags(StatefulNodeAzureTagArgs.builder()
                .tagKey("Creator")
                .tagValue("string")
                .build())
            .health(StatefulNodeAzureHealthArgs.builder()
                .healthCheckTypes("vmState")
                .unhealthyDuration(300)
                .gracePeriod(120)
                .autoHealing(true)
                .build())
            .shouldPersistOsDisk(false)
            .osDiskPersistenceMode("reattach")
            .shouldPersistDataDisks(true)
            .dataDisksPersistenceMode("reattach")
            .shouldPersistNetwork(true)
            .schedulingTasks(            
                StatefulNodeAzureSchedulingTaskArgs.builder()
                    .isEnabled(true)
                    .type("pause")
                    .cronExpression("44 10 * * *")
                    .build(),
                StatefulNodeAzureSchedulingTaskArgs.builder()
                    .isEnabled(true)
                    .type("resume")
                    .cronExpression("48 10 * * *")
                    .build(),
                StatefulNodeAzureSchedulingTaskArgs.builder()
                    .isEnabled(true)
                    .type("recycle")
                    .cronExpression("52 10 * * *")
                    .build())
            .signals(            
                StatefulNodeAzureSignalArgs.builder()
                    .type("vmReady")
                    .timeout(20)
                    .build(),
                StatefulNodeAzureSignalArgs.builder()
                    .type("vmReady")
                    .timeout(40)
                    .build())
            .proximityPlacementGroups(StatefulNodeAzureProximityPlacementGroupArgs.builder()
                .name("TestPPG")
                .resourceGroupName("TestResourceGroup")
                .build())
            .deletes(StatefulNodeAzureDeleteArgs.builder()
                .shouldTerminateVm(true)
                .networkShouldDeallocate(true)
                .networkTtlInHours(0)
                .diskShouldDeallocate(true)
                .diskTtlInHours(0)
                .snapshotShouldDeallocate(true)
                .snapshotTtlInHours(0)
                .publicIpShouldDeallocate(true)
                .publicIpTtlInHours(0)
                .shouldDeregisterFromLb(true)
                .shouldRevertToOd(false)
                .build())
            .build());
    }
}
resources:
  testStatefulNodeAzure:
    type: spotinst:StatefulNodeAzure
    name: test_stateful_node_azure
    properties:
      name: example_stateful_node_azure
      region: eastus
      resourceGroupName: spotinst-azure
      description: example_stateful_node_azure_description
      strategy:
        drainingTimeout: 30
        fallbackToOnDemand: true
        optimizationWindows:
          - Tue:19:46-Tue:20:46
        odWindows:
          - Wed:19:46-Wed:21:46
        availabilityVsCost: 100
        vmAdmins:
          - UbuntuUser
          - TestUser
        revertToSpot:
          performAt: timeWindow
        preferredLifeCycle: od
        capacityReservations:
          - shouldUtilize: true
            utilizationStrategy: utilizeOverOD
            capacityReservationGroups:
              - crgName: crg name
                crgResourceGroupName: resourceGroupName
                crgShouldPrioritize: true
      os: Linux
      vmSizes:
        odSizes:
          - standard_ds1_v2
          - standard_ds2_v2
        spotSizes:
          - standard_ds1_v2
          - standard_ds2_v2
        preferredSpotSizes:
          - standard_ds1_v2
        excludedVmSizes:
          - standard_ds2_v3
        spotSizeAttributes:
          maxCpu: 16
          minCpu: 2
          maxMemory: 48
          minMemory: 2
          maxStorage: 1000
          minStorage: 50
      zones:
        - '1'
        - '3'
      preferredZone: '1'
      customData: ""
      shutdownScript: ""
      userData: ""
      vmName: VMName
      vmNamePrefix: VMNamePrefix
      licenseType: SLES_BYOS
      bootDiagnostics:
        - isEnabled: true
          storageUrl: https://.blob.core.windows.net/test
          type: unmanaged
      dataDisks:
        - sizeGb: 1
          lun: 1
          type: Standard_LRS
        - sizeGb: 10
          lun: 2
          type: Standard_LRS
      extensions:
        - name: extensionName
          type: customScript
          publisher: Microsoft.Azure.Extensions
          apiVersion: '2.0'
          minorVersionAutoUpgrade: true
          protectedSettings:
            script: IyEvYmluL2Jhc2gKZWNobyAibmlyIiA+IC9ob29uaXIudHh0Cg==
          publicSettings:
            fileUris: https://testspot/Azuretest.sh
      image:
        marketplaceImages:
          - publisher: Canonical
            offer: UbuntuServer
            sku: 16.04-LTS
            version: latest
        customImages:
          - customImageResourceGroupName: resourceGroupName
            name: imageName
        galleries:
          - galleryResourceGroupName: resourceGroupName
            galleryName: galleryName
            imageName: imageName
            versionName: 1.1.0
            spotAccountId: act-123456
      loadBalancers:
        - type: loadBalancer
          resourceGroupName: testResourceGroup
          name: testLoadBalancer
          sku: Standard
          backendPoolNames:
            - testBackendPool1
            - testBackendPool2
      login:
        userName: admin
        sshPublicKey: 33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==
      managedServiceIdentities:
        - name: mySI2
          resourceGroupName: myResourceGroup
      network:
        networkResourceGroupName: subnetResourceGroup
        virtualNetworkName: vname
        networkInterfaces:
          - isPrimary: true
            subnetName: testSubnet
            assignPublicIp: true
            publicIpSku: Standard
            networkSecurityGroups:
              - networkResourceGroupName: test
                name: test
            enableIpForwarding: true
            privateIpAddresses:
              - 172.23.4.20
            additionalIpConfigurations:
              - name: test
                privateIpAddressVersion: IPv4
            publicIps:
              - networkResourceGroupName: resourceGroup
                name: test
            applicationSecurityGroups:
              - networkResourceGroupName: AsgResourceGroup
                name: AsgName
      osDisk:
        sizeGb: 30
        type: Standard_LRS
        caching: ReadOnly
      secrets:
        - sourceVaults:
            - name: string
              resourceGroupName: string
          vaultCertificates:
            - certificateUrl: string
              certificateStore: string
      security:
        securityType: ConfidentialVM
        secureBootEnabled: true
        vtpmEnabled: true
        encryptionAtHost: false
        confidentialOsDiskEncryption: true
      tags:
        - tagKey: Creator
          tagValue: string
      health:
        healthCheckTypes:
          - vmState
        unhealthyDuration: 300
        gracePeriod: 120
        autoHealing: true
      shouldPersistOsDisk: false
      osDiskPersistenceMode: reattach
      shouldPersistDataDisks: true
      dataDisksPersistenceMode: reattach
      shouldPersistNetwork: true # --- SCHEDULING TASKS ----------------------------------------------
      schedulingTasks:
        - isEnabled: true
          type: pause
          cronExpression: 44 10 * * *
        - isEnabled: true
          type: resume
          cronExpression: 48 10 * * *
        - isEnabled: true
          type: recycle
          cronExpression: 52 10 * * *
      signals:
        - type: vmReady
          timeout: 20
        - type: vmReady
          timeout: 40
      proximityPlacementGroups:
        - name: TestPPG
          resourceGroupName: TestResourceGroup
      deletes:
        - shouldTerminateVm: true
          networkShouldDeallocate: true
          networkTtlInHours: 0
          diskShouldDeallocate: true
          diskTtlInHours: 0
          snapshotShouldDeallocate: true
          snapshotTtlInHours: 0
          publicIpShouldDeallocate: true
          publicIpTtlInHours: 0
          shouldDeregisterFromLb: true
          shouldRevertToOd: false
Argument Reference
The following arguments are supported:
- name- (Required) Azure stateful node name.
- region- (Required) The Azure region your stateful node will be created in.
- resource_group_name- (Required) Name of the Resource Group for stateful node.
- description- (Optional) Describe your Azure stateful node.
Strategy
- strategy- (Required) Strategy for stateful node.- draining_timeout- (Optional, Default- 120) Time (in seconds) to allow the VM be drained from incoming TCP connections and detached from MLB before terminating it during a scale down operation.
- availability_vs_cost- (Optional) Set the desired preference for the Spot market VM selection. (100- Availability, 0- cost).
- fallback_to_on_demand- (Required) In case of no spots available, Stateful Node will launch an On-demand instance instead.
- optimization_windows- (Optional) Valid format: “ddd:hh:mm-ddd:hh:mm (day:hour(0-23):minute(0-59))”, not empty if revertToSpot.performAt = timeWindow.
- od_windows- (Optional) Define the time windows in which the underlying VM will be set as an on-demand lifecycle type. During the entire time window, the rest of the strategy processes will be paused. Switching between on-demand and Spot VM types at the enter/exit of the time window will trigger the recycling of the stateful node. Valid format: “ddd:hh:mm-ddd:hh:mm (day:hour(0-23):minute(0-59))”.
- preferred_life_cycle- (Optional, Enum- "od", "spot", Default- "spot") The desired type of VM.
- revert_to_spot- (Optional) Hold settings for strategy correction - replacing On-Demand for Spot VMs.- perform_at- (Required, Enum- "timeWindow", "never", "always", Default- "always") Settings for maintenance strategy.
 
- capacity_reservation- (Optional) On-demand Capacity Reservation group enables you to reserve Compute capacity in an Azure region or an Availability Zone for any duration of time. CRG can only be created on the Azure end.- should_utilize- (Required) Determines whether capacity reservations should be utilized.
- utilization_strategy- (Required, Enum- "utilizeOverSpot", "utilizeOverOD") The priority requested for using CRG. This value will determine if CRG is used ahead of spot VMs or On-demand VMs. (- "utilizeOverOD"- If picked, we will use CRG only in case On demand should be launched.- "utilizeOverSpot"- CRG will be preferred over Spot. Only after CRG is fully used, spot VMs can be used.)
- capacity_reservation_groups- (Optional) List of the desired CRGs to use under the associated Azure subscription. When null we will utilize any available reservation that matches the launch specification.- crg_name- (Required) The name of the CRG.
- crg_resource_group_name- (Required) Azure resource group name
- crg_should_prioritize- The desired CRG to utilize ahead of other CRGs in the subscription.
 
 
- vm_admins- (Optional) Defines Azure identities that are considered VM admins. If the list is empty, the defined behavior is- NONE, If the list is null, the defined behavior is- ALL. This applies if the object is not defined. If an identity contains the string, it will be considered permitted to perform the following actions: Stop VM: VM admins can move the VM to a “stopped (deallocated)” state using the Azure console. If triggered by someone else, it is considered an interruption.
 
Compute
- os- (Required, Enum- "Linux", "Windows") Type of operating system.
- vm_sizes- (Required) Defines the VM sizes to use when launching VMs.- od_sizes- (Required) Available On-Demand sizes.
- spot_sizes- (Optional) Available Spot-VM sizes. Required if spotSizeAttributes isn’t specified.
- preferred_spot_sizes- (Optional) Prioritize Spot VM sizes when launching Spot VMs for the group. If set, must be a sublist of compute.vmSizes.spotSizes.
- excluded_vm_sizes- (Optional) Defines the VM sizes to exclude when defining spot types with spotSizeAttributes.
- spot_size_attributes- (Optional) Defines values and ranges for attributes of the spot sizes to use when launching VMs. Required if spotSizes isn’t specified.- max_cpu- (Optional) Maximum amount of vCPU units.
- min_cpu- (Optional) Minimum amount of vCPU units.
- max_memory- (Optional) Maximum amount of memory in GiB.
- min_memory- (Optional) Minimum amount of memory in GiB.
- max_storage- (Optional) Maximum amount of storage in GiB.
- min_storage- (optional) Minimum amount of storage in GiB.
 
 
- zones- (Optional, Enum- "1", "2", "3") List of Azure Availability Zones in the defined region. If not defined, Virtual machines will be launched regionally.
- preferred_zone- (Optional, Enum- "1", "2", "3") The AZ to prioritize when launching VMs. If no markets are available in the Preferred AZ, VMs are launched in the non-preferred AZ. Must be a sublist of compute.zones.
- custom_data- (Optional) This value will hold the YAML in base64 and will be executed upon VM launch.
- shutdown_script- (Optional) Shutdown script for the stateful node. Value should be passed as a string encoded at Base64 only.
- user_data- (Optional) Define a set of scripts or other metadata that’s inserted to an Azure virtual machine at provision time. (Base64 encoded)
- vm_name- (Optional) Set a VM name that will be persisted throughout the entire node lifecycle. This can’t be set if- vm_name_prefixis set.
- vm_name_prefix- (Optional) Set a VM name prefix to be used for all launched VMs and the VM resources. This can’t be set if- vm_nameis set.
- license_type- (Optional) Specify an existing Azure license type to use when launching new VMs. Valid values for Windows OS: “Windows_Server”, “Windows_Client”, Valid values for Linux OS: “RHEL_BYOS”, “SLES_BYOS”
Boot Diagnostics
- boot_diagnostics- is_enabled- (Optional) Allows you to enable and disable the configuration of boot diagnostics at launch.
- storage_url- (Optional) The storage URI that is used if a type is unmanaged. The storage URI must follow the blob storage URI format (“https://.blob.core.windows.net/”). StorageUri is required if the type is unmanaged. StorageUri must be ‘null’ in case the boot diagnostics type is managed.
- type- (Optional, Enum- "managed", "unmanaged") Defines the storage type on VM launch in Azure.
 
Data Disks
- data_disk- (Optional) The definitions of data disks that will be created and attached to the stateful node’s VM.- size_gb- (Required) The size of the data disk in GB, required if dataDisks is specified.
- lun- (Required) The LUN of the data disk.
- type- (Required, Enum- "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS") The type of the data disk.
 
Extensions
- extension- (Optional) An object for an azure extension.- name- (Required) Required on compute.launchSpecification.extensions object.
- type- (Required) Required on compute.launchSpecification.extensions object.
- publisher- (Required) Required on compute.launchSpecification.extensions object.
- api_version- (Required) The API version of the extension. Required if extension specified.
- minor_version_auto_upgrade- (Required) Required on compute.launchSpecification.extensions object.
- protected_settings- (Optional) Object for protected settings.
- public_settings- (Optional) Object for public settings.
 
Image
- image- marketplace_image- (Optional) Select an image from Azure’s Marketplace image catalogue. Required if the custom image or gallery image are not specified.- publisher- (Required) Image publisher.
- offer- (Required) Image offer.
- sku- (Required) Image Stock Keeping Unit, which is the specific version of the image.
- version- (Required, Default- "latest") Image’s version. if version not provided we use “latest”.
 
- gallery- (Optional) Gallery image definitions. Required if custom image or marketplace image are not specified.- gallery_resource_group_name- (Required) The resource group name for gallery image.
- gallery_name- (Required) Name of the gallery.
- image_name- (Required) Name of the gallery image.
- version_name- (Required) Image’s version. Can be in the format x.x.x or ’latest'.
- spot_account_id- (Optional) The Spot account ID that connected to the Azure subscription to which the gallery belongs. Relevant only in case of cross-subscription shared galleries. Read more about cross-subscription shared galleries in Elastigroup.
 
- custom_image- (Optional) Custom image definitions. Required if marketplace image or gallery image are not specified.- custom_image_resource_group_name- (Required) The resource group name for custom image.
- name- (Required) The name of the custom image.
 
 
Load Balancer
- load_balancer- (Optional) Add a load balancer. For Azure Gateway, each Backend Pool is a separate load balancer.- type- (Required, Enum- "loadBalancer", "applicationGateway") The type of load balancer.
- resource_group_name- (Required) The Resource Group name of the Load Balancer.
- name- (Required) Name of the Application Gateway/Load Balancer.
- sku- (Optional)- if type is "LoadBalancer"then possible values are“Standard", "Basic”.
- If ApplicationGateway then possible values are
“Standard_Large”, “Standard_Medium”, “Standard_Small”, “Standard_v2", “WAF_Large”, “WAF_Medium", “WAF_v2".
 
- if type is 
- backend_pool_names- (Optional) Name of the Backend Pool to register the Stateful Node VMs to. Each Backend Pool is a separate load balancer. Required if Type is APPLICATION_GATEWAY.
 
Login
- login- (Required) Set admin access for accessing your VMs. Password/SSH is required for Linux.- user_name- (Required) username for admin access to VMs.
- ssh_public_key- (Optional) SSH for admin access to Linux VMs. Optional for Linux.
- password- (Optional) Password for admin access to Windows VMs. Required for Windows.
 
Managed Service Identities
- managed_service_identities- (Optional) Add a user-assigned managed identity to the Stateful Node’s VM.- name- (Required) name of the managed identity.
- resource_group_name- (Required) The Resource Group that the user-assigned managed identity resides in.
 
Proximity Placement Groups
- proximity_placement_groups- (Optional) Defines the proximity placement group in which the VM will be launched.- name- (Required) name of the proximity placement group.
- resource_group_name- (Required) The Resource Group name of the proximity placement group.
 
Network
- network- (Required) Define the Virtual Network and Subnet for your Stateful Node.- network_resource_group_name- (Required) Vnet Resource Group Name.
- virtual_network_name- (Required) Virtual Network.
- network_interface- (Required) Define a network interface- is_primary- (Required) Defines whether the network interface is primary or not.
- subnet_name- (Required) Subnet name.
- assign_public_ip- (Optional) Assign public IP.
- public_ip_sku- (Optional) Required if assignPublicIp=true values=[Standard/Basic].
- network_security_group- (Optional) Network Security Group.- network_resource_group_name- (Required) Requires valid security group name.
- name- (Required) Requires valid resource group name.
 
- enable_ip_forwarding- (Optional) Enable IP Forwarding.
- private_ip_addresses- (Optional) A list with unique items that every item is a valid IP.
- additional_ip_configurations- (Optional) Additional configuration of network interface.- name- (Required) Configuration name.
- private_ip_address_version- (Required, Enum- "IPv4", "IPv6"Default- "IPv4") Version of the private IP address.
 
- public_ips- (Optional) Defined a pool of Public Ips (from Azure), that will be associated to the network interface. We will associate one public ip per instance until the pool is exhausted, in which case, we will create a new one.- resource_group_name- (Required) The resource group of the public ip.
- name- (Required) - The name of the public ip.
 
- application_security_groups- (Optional) Network Security Group.- resource_group_name- (Required) Requires valid security group name.
- name- (Required) Requires valid resource group name.
 
 
 
OS Disk
- os_disk- (Optional) Specify OS disk specification other than default.- size_gb- (Optional, Default- "30") The size of the data disk in GB.
- type- (Required, Enum- "Standard_LRS", "Premium_LRS", "StandardSSD_LRS") The type of the OS disk.
- caching- (Optional, Enum- "None", "ReadOnly", "ReadWrite") Specifies the host caching requirements. With disk caching enabled, VMs can achieve higher levels of performance. If not specified, the Azure default behavior will be applied.
 
Secret
- secret- (Optional) Set of certificates that should be installed on the VM.- source_vault- (Required) The key vault reference, contains the required certificates.- name- (Required) The name of the key vault.
- resource_group_name- (Required) The resource group name of the key vault.
 
- vault_certificates- (Required) The required certificate references.- certificate_url- (Optional) The URL of the certificate under the key vault.
- certificate_store- (Required) The certificate store directory the VM. The directory is created in the LocalMachine account.- This field is required only when using Windows OS type
- This field must be ‘null’ when the OS type is Linux
 
 
 
Security
- security- (Optional) Specifies the Security related profile settings for the virtual machine.- secure_boot_enabled- (Optional) Specifies whether secure boot should be enabled on the virtual machine.
- security_type- (Optional) Enum:- "Standard", "TrustedLaunch", "ConfidentialVM"Security type refers to the different security features of a virtual machine. Security features like Trusted launch virtual machines help to improve the security of Azure generation 2 virtual machines.
- vtpm_enabled- (Optional) Specifies whether vTPM should be enabled on the virtual machine.
- encryption_at_host- (Optional) Enables the Host Encryption for the virtual machine. The Encryption at host will be disabled unless this property is set to true for the resource.
- confidential_os_disk_encryption- (Optional) Confidential disk encryption binds the disk encryption keys to the VM’s TPM, ensuring VM-only access. The security type must be “ConfidentialVM” to enable defining this preference as “true”.
 
Tag
- tag- (Optional) Unique Key-Value pair for all Stateful Node Resources.- tag_key- (Optional) Tag Key for Stateful Node Resources.
- tag_value- (Optional) Tag Value for Stateful Node Resources.
 
Health
- health- (Optional) Set the auto healing preferences for unhealthy VMs.- health_check_types- (Optional, Enum- "vmState", "applicationGateway") Healthcheck to use to validate VM health.
- unhealthy_duration- (Optional) Amount of time to be unhealthy before a replacement is triggered.
- auto_healing- (Required) Enable Autohealing of unhealthy VMs.
- grace_period- (Optional) Period of time to wait for VM to reach healthiness before monitoring for unhealthiness.
 
Persistence
- should_persist_os_disk- (Required) Should persist os disk.
- os_disk_persistence_mode- (Optional, Enum- "reattach", "onLaunch")
- should_persist_data_disks- (Required) Should persist data disks.
- data_disks_persistence_mode- (Optional, Enum- "reattach", "onLaunch")
- should_persist_network- (Required) Should persist network.
Scheduling Tasks
- scheduling_task- (Optional) Scheduling settings object for stateful node.- is_enabled- (Required) Is scheduled task enabled for stateful node.
- type- (Required, Enum `“pause”, “resume”, “recycle”) The type of the scheduled task
- cron_expression(Required) A expression which describes when to execute the scheduled task (UTC).
 
Signals
- signal- (Optional) A signal object defined for the stateful node.- type- (Required, Enum- "vmReady", "vmReadyToShutdown") The type of the signal defined for the stateful node.
- timeout- (Required, Default- "1800") The timeout in seconds to hold the vm until a signal is sent. If no signal is sent the vm will be replaced (vmReady) or we will terminate the vm (vmReadyToShutdown) after the timeout.
 
Attach Data Disk
- attach_data_disk- (Optional) Create a new data disk and attach it to the stateful node.- data_disk_name- (Required) The name of the created data disk.
- data_disk_resource_group_name- (Required) The resource group name in which the data disk will be created.
- storage_account_type- (Required, Enum- "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS") The type of the data disk.
- size_gb- (Required) The size of the data disk in GB, Required if dataDisks is specified.
- zone- (Optional, Enum- "1", "2", "3") The Availability Zone in which the data disk will be created. If not defined, the data disk will be created regionally.
- lun- (Optional, Default- "orginal") The LUN of the data disk. If not defined, the LUN will be set in order.
 
Detach Data Disk
- detach_data_disk- (Optional) Detach a data disk from a stateful node.- data_disk_name- (Required) The name of the detached data disk.
- data_disk_resource_group_name- (Required) The resource group name in which the data disk exists.
- should_deallocate- (Required) Indicates whether to delete the data disk in addition to detach.
- ttl_in_hours- (Required, Default- "0") Hours to keep the disk alive before deletion.
 
Update State
- update_state- (Optional) Update the stateful node state.- state- (Required, Enum- "pause", "resume", "recycle") New state for the stateful node.
 
Import VM
- import_vm- (Optional) Import an Azure VM and create a stateful node by providing a node configuration.- resource_group_name- (Required) Name of the Resource Group for Stateful Node.
- original_vm_name- (Required) Azure Import Stateful Node Name.
- draining_timeout- (Optional) Hours to keep resources alive.
- resources_retention_time- (Optional) Hours to keep resources alive.
 
Deallocation Config
- delete- (Required) Specify deallocation parameters for stateful node deletion.- should_terminate_vm- (Required) Indicates whether to delete the stateful node’s VM.
- network_should_deallocate- (Optional) Indicates whether to delete the stateful node’s network resources.
- network_ttl_in_hours- (Optional, Default: 96) Hours to keep the network resource alive before deletion.
- disk_should_deallocate- (Optional) Indicates whether to delete the stateful node’s disk resources.
- disk_ttl_in_hours- (Optional, Default: 96) Hours to keep the disk resource alive before deletion.
- snapshot_should_deallocate- (Optional) Indicates whether to delete the stateful node’s snapshot resources.
- snapshot_ttl_in_hours- (Optional, Default: 96) Hours to keep the snapshots alive before deletion.
- public_ip_should_deallocate- (Optional) Indicates whether to delete the stateful node’s public ip resources.
- public_ip_ttl_in_hours- (Optional, Default: 96) Hours to keep the public ip alive before deletion.
- should_deregister_from_lb- (Optional, Default: true) Indicates whether to deregister the stateful node’s VM from any type of load balancer. Can be changed to false only when shouldTerminateVms is ‘false’.
- should_revert_to_od- (Optional, Default: false) Indicates whether to change the stateful node’s VM lifecycle to on-demand. Can be changed to true only when- should_terminate_vmis ‘false’.
 
Create StatefulNodeAzure Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new StatefulNodeAzure(name: string, args: StatefulNodeAzureArgs, opts?: CustomResourceOptions);@overload
def StatefulNodeAzure(resource_name: str,
                      args: StatefulNodeAzureArgs,
                      opts: Optional[ResourceOptions] = None)
@overload
def StatefulNodeAzure(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      os: Optional[str] = None,
                      vm_sizes: Optional[StatefulNodeAzureVmSizesArgs] = None,
                      strategy: Optional[StatefulNodeAzureStrategyArgs] = None,
                      should_persist_os_disk: Optional[bool] = None,
                      should_persist_network: Optional[bool] = None,
                      should_persist_data_disks: Optional[bool] = None,
                      resource_group_name: Optional[str] = None,
                      region: Optional[str] = None,
                      image: Optional[StatefulNodeAzureImageArgs] = None,
                      scheduling_tasks: Optional[Sequence[StatefulNodeAzureSchedulingTaskArgs]] = None,
                      attach_data_disks: Optional[Sequence[StatefulNodeAzureAttachDataDiskArgs]] = None,
                      import_vms: Optional[Sequence[StatefulNodeAzureImportVmArgs]] = None,
                      license_type: Optional[str] = None,
                      load_balancers: Optional[Sequence[StatefulNodeAzureLoadBalancerArgs]] = None,
                      login: Optional[StatefulNodeAzureLoginArgs] = None,
                      managed_service_identities: Optional[Sequence[StatefulNodeAzureManagedServiceIdentityArgs]] = None,
                      name: Optional[str] = None,
                      network: Optional[StatefulNodeAzureNetworkArgs] = None,
                      extensions: Optional[Sequence[StatefulNodeAzureExtensionArgs]] = None,
                      os_disk: Optional[StatefulNodeAzureOsDiskArgs] = None,
                      os_disk_persistence_mode: Optional[str] = None,
                      preferred_zone: Optional[str] = None,
                      proximity_placement_groups: Optional[Sequence[StatefulNodeAzureProximityPlacementGroupArgs]] = None,
                      detach_data_disks: Optional[Sequence[StatefulNodeAzureDetachDataDiskArgs]] = None,
                      description: Optional[str] = None,
                      health: Optional[StatefulNodeAzureHealthArgs] = None,
                      secrets: Optional[Sequence[StatefulNodeAzureSecretArgs]] = None,
                      security: Optional[StatefulNodeAzureSecurityArgs] = None,
                      deletes: Optional[Sequence[StatefulNodeAzureDeleteArgs]] = None,
                      data_disks_persistence_mode: Optional[str] = None,
                      data_disks: Optional[Sequence[StatefulNodeAzureDataDiskArgs]] = None,
                      should_persist_vm: Optional[bool] = None,
                      shutdown_script: Optional[str] = None,
                      signals: Optional[Sequence[StatefulNodeAzureSignalArgs]] = None,
                      custom_data: Optional[str] = None,
                      tags: Optional[Sequence[StatefulNodeAzureTagArgs]] = None,
                      update_states: Optional[Sequence[StatefulNodeAzureUpdateStateArgs]] = None,
                      user_data: Optional[str] = None,
                      vm_name: Optional[str] = None,
                      vm_name_prefix: Optional[str] = None,
                      boot_diagnostics: Optional[Sequence[StatefulNodeAzureBootDiagnosticArgs]] = None,
                      zones: Optional[Sequence[str]] = None)func NewStatefulNodeAzure(ctx *Context, name string, args StatefulNodeAzureArgs, opts ...ResourceOption) (*StatefulNodeAzure, error)public StatefulNodeAzure(string name, StatefulNodeAzureArgs args, CustomResourceOptions? opts = null)
public StatefulNodeAzure(String name, StatefulNodeAzureArgs args)
public StatefulNodeAzure(String name, StatefulNodeAzureArgs args, CustomResourceOptions options)
type: spotinst:StatefulNodeAzure
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args StatefulNodeAzureArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args StatefulNodeAzureArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args StatefulNodeAzureArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args StatefulNodeAzureArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args StatefulNodeAzureArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var statefulNodeAzureResource = new SpotInst.StatefulNodeAzure("statefulNodeAzureResource", new()
{
    Os = "string",
    VmSizes = new SpotInst.Inputs.StatefulNodeAzureVmSizesArgs
    {
        OdSizes = new[]
        {
            "string",
        },
        ExcludedVmSizes = new[]
        {
            "string",
        },
        PreferredSpotSizes = new[]
        {
            "string",
        },
        SpotSizeAttributes = new SpotInst.Inputs.StatefulNodeAzureVmSizesSpotSizeAttributesArgs
        {
            MaxCpu = 0,
            MaxMemory = 0,
            MaxStorage = 0,
            MinCpu = 0,
            MinMemory = 0,
            MinStorage = 0,
        },
        SpotSizes = new[]
        {
            "string",
        },
    },
    Strategy = new SpotInst.Inputs.StatefulNodeAzureStrategyArgs
    {
        FallbackToOnDemand = false,
        AvailabilityVsCost = 0,
        CapacityReservations = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureStrategyCapacityReservationArgs
            {
                ShouldUtilize = false,
                UtilizationStrategy = "string",
                CapacityReservationGroups = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs
                    {
                        CrgName = "string",
                        CrgResourceGroupName = "string",
                        CrgShouldPrioritize = false,
                    },
                },
            },
        },
        DrainingTimeout = 0,
        OdWindows = new[]
        {
            "string",
        },
        OptimizationWindows = new[]
        {
            "string",
        },
        PreferredLifeCycle = "string",
        RevertToSpot = new SpotInst.Inputs.StatefulNodeAzureStrategyRevertToSpotArgs
        {
            PerformAt = "string",
        },
        VmAdmins = new[]
        {
            "string",
        },
    },
    ShouldPersistOsDisk = false,
    ShouldPersistNetwork = false,
    ShouldPersistDataDisks = false,
    ResourceGroupName = "string",
    Region = "string",
    Image = new SpotInst.Inputs.StatefulNodeAzureImageArgs
    {
        CustomImages = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureImageCustomImageArgs
            {
                CustomImageResourceGroupName = "string",
                Name = "string",
            },
        },
        Galleries = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureImageGalleryArgs
            {
                GalleryName = "string",
                GalleryResourceGroupName = "string",
                ImageName = "string",
                VersionName = "string",
                SpotAccountId = "string",
            },
        },
        MarketplaceImages = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureImageMarketplaceImageArgs
            {
                Offer = "string",
                Publisher = "string",
                Sku = "string",
                Version = "string",
            },
        },
    },
    SchedulingTasks = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureSchedulingTaskArgs
        {
            CronExpression = "string",
            IsEnabled = false,
            Type = "string",
        },
    },
    AttachDataDisks = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureAttachDataDiskArgs
        {
            DataDiskName = "string",
            DataDiskResourceGroupName = "string",
            SizeGb = 0,
            StorageAccountType = "string",
            Lun = 0,
            Zone = "string",
        },
    },
    ImportVms = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureImportVmArgs
        {
            OriginalVmName = "string",
            ResourceGroupName = "string",
            DrainingTimeout = 0,
            ResourcesRetentionTime = 0,
        },
    },
    LicenseType = "string",
    LoadBalancers = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureLoadBalancerArgs
        {
            BackendPoolNames = new[]
            {
                "string",
            },
            Name = "string",
            ResourceGroupName = "string",
            Type = "string",
            Sku = "string",
        },
    },
    Login = new SpotInst.Inputs.StatefulNodeAzureLoginArgs
    {
        UserName = "string",
        Password = "string",
        SshPublicKey = "string",
    },
    ManagedServiceIdentities = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureManagedServiceIdentityArgs
        {
            Name = "string",
            ResourceGroupName = "string",
        },
    },
    Name = "string",
    Network = new SpotInst.Inputs.StatefulNodeAzureNetworkArgs
    {
        NetworkInterfaces = new[]
        {
            new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceArgs
            {
                IsPrimary = false,
                SubnetName = "string",
                AdditionalIpConfigurations = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs
                    {
                        Name = "string",
                        PrivateIpAddressVersion = "string",
                    },
                },
                ApplicationSecurityGroups = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs
                    {
                        Name = "string",
                        NetworkResourceGroupName = "string",
                    },
                },
                AssignPublicIp = false,
                EnableIpForwarding = false,
                NetworkSecurityGroups = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs
                    {
                        Name = "string",
                        NetworkResourceGroupName = "string",
                    },
                },
                PrivateIpAddresses = new[]
                {
                    "string",
                },
                PublicIpSku = "string",
                PublicIps = new[]
                {
                    new SpotInst.Inputs.StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs
                    {
                        Name = "string",
                        NetworkResourceGroupName = "string",
                    },
                },
            },
        },
        NetworkResourceGroupName = "string",
        VirtualNetworkName = "string",
    },
    Extensions = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureExtensionArgs
        {
            ApiVersion = "string",
            MinorVersionAutoUpgrade = false,
            Name = "string",
            Publisher = "string",
            Type = "string",
            ProtectedSettings = 
            {
                { "string", "string" },
            },
            PublicSettings = 
            {
                { "string", "string" },
            },
        },
    },
    OsDisk = new SpotInst.Inputs.StatefulNodeAzureOsDiskArgs
    {
        Type = "string",
        Caching = "string",
        SizeGb = 0,
    },
    OsDiskPersistenceMode = "string",
    PreferredZone = "string",
    ProximityPlacementGroups = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureProximityPlacementGroupArgs
        {
            Name = "string",
            ResourceGroupName = "string",
        },
    },
    DetachDataDisks = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureDetachDataDiskArgs
        {
            DataDiskName = "string",
            DataDiskResourceGroupName = "string",
            ShouldDeallocate = false,
            TtlInHours = 0,
        },
    },
    Description = "string",
    Health = new SpotInst.Inputs.StatefulNodeAzureHealthArgs
    {
        AutoHealing = false,
        HealthCheckTypes = new[]
        {
            "string",
        },
        GracePeriod = 0,
        UnhealthyDuration = 0,
    },
    Secrets = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureSecretArgs
        {
            SourceVaults = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureSecretSourceVaultArgs
                {
                    Name = "string",
                    ResourceGroupName = "string",
                },
            },
            VaultCertificates = new[]
            {
                new SpotInst.Inputs.StatefulNodeAzureSecretVaultCertificateArgs
                {
                    CertificateStore = "string",
                    CertificateUrl = "string",
                },
            },
        },
    },
    Security = new SpotInst.Inputs.StatefulNodeAzureSecurityArgs
    {
        ConfidentialOsDiskEncryption = false,
        EncryptionAtHost = false,
        SecureBootEnabled = false,
        SecurityType = "string",
        VtpmEnabled = false,
    },
    Deletes = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureDeleteArgs
        {
            ShouldTerminateVm = false,
            DiskShouldDeallocate = false,
            DiskTtlInHours = 0,
            NetworkShouldDeallocate = false,
            NetworkTtlInHours = 0,
            PublicIpShouldDeallocate = false,
            PublicIpTtlInHours = 0,
            ShouldDeregisterFromLb = false,
            ShouldRevertToOd = false,
            SnapshotShouldDeallocate = false,
            SnapshotTtlInHours = 0,
        },
    },
    DataDisksPersistenceMode = "string",
    DataDisks = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureDataDiskArgs
        {
            Lun = 0,
            SizeGb = 0,
            Type = "string",
        },
    },
    ShouldPersistVm = false,
    ShutdownScript = "string",
    Signals = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureSignalArgs
        {
            Timeout = 0,
            Type = "string",
        },
    },
    CustomData = "string",
    Tags = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureTagArgs
        {
            TagKey = "string",
            TagValue = "string",
        },
    },
    UpdateStates = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureUpdateStateArgs
        {
            State = "string",
        },
    },
    UserData = "string",
    VmName = "string",
    VmNamePrefix = "string",
    BootDiagnostics = new[]
    {
        new SpotInst.Inputs.StatefulNodeAzureBootDiagnosticArgs
        {
            IsEnabled = false,
            StorageUrl = "string",
            Type = "string",
        },
    },
    Zones = new[]
    {
        "string",
    },
});
example, err := spotinst.NewStatefulNodeAzure(ctx, "statefulNodeAzureResource", &spotinst.StatefulNodeAzureArgs{
	Os: pulumi.String("string"),
	VmSizes: &spotinst.StatefulNodeAzureVmSizesArgs{
		OdSizes: pulumi.StringArray{
			pulumi.String("string"),
		},
		ExcludedVmSizes: pulumi.StringArray{
			pulumi.String("string"),
		},
		PreferredSpotSizes: pulumi.StringArray{
			pulumi.String("string"),
		},
		SpotSizeAttributes: &spotinst.StatefulNodeAzureVmSizesSpotSizeAttributesArgs{
			MaxCpu:     pulumi.Int(0),
			MaxMemory:  pulumi.Int(0),
			MaxStorage: pulumi.Int(0),
			MinCpu:     pulumi.Int(0),
			MinMemory:  pulumi.Int(0),
			MinStorage: pulumi.Int(0),
		},
		SpotSizes: pulumi.StringArray{
			pulumi.String("string"),
		},
	},
	Strategy: &spotinst.StatefulNodeAzureStrategyArgs{
		FallbackToOnDemand: pulumi.Bool(false),
		AvailabilityVsCost: pulumi.Int(0),
		CapacityReservations: spotinst.StatefulNodeAzureStrategyCapacityReservationArray{
			&spotinst.StatefulNodeAzureStrategyCapacityReservationArgs{
				ShouldUtilize:       pulumi.Bool(false),
				UtilizationStrategy: pulumi.String("string"),
				CapacityReservationGroups: spotinst.StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArray{
					&spotinst.StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs{
						CrgName:              pulumi.String("string"),
						CrgResourceGroupName: pulumi.String("string"),
						CrgShouldPrioritize:  pulumi.Bool(false),
					},
				},
			},
		},
		DrainingTimeout: pulumi.Int(0),
		OdWindows: pulumi.StringArray{
			pulumi.String("string"),
		},
		OptimizationWindows: pulumi.StringArray{
			pulumi.String("string"),
		},
		PreferredLifeCycle: pulumi.String("string"),
		RevertToSpot: &spotinst.StatefulNodeAzureStrategyRevertToSpotArgs{
			PerformAt: pulumi.String("string"),
		},
		VmAdmins: pulumi.StringArray{
			pulumi.String("string"),
		},
	},
	ShouldPersistOsDisk:    pulumi.Bool(false),
	ShouldPersistNetwork:   pulumi.Bool(false),
	ShouldPersistDataDisks: pulumi.Bool(false),
	ResourceGroupName:      pulumi.String("string"),
	Region:                 pulumi.String("string"),
	Image: &spotinst.StatefulNodeAzureImageArgs{
		CustomImages: spotinst.StatefulNodeAzureImageCustomImageArray{
			&spotinst.StatefulNodeAzureImageCustomImageArgs{
				CustomImageResourceGroupName: pulumi.String("string"),
				Name:                         pulumi.String("string"),
			},
		},
		Galleries: spotinst.StatefulNodeAzureImageGalleryArray{
			&spotinst.StatefulNodeAzureImageGalleryArgs{
				GalleryName:              pulumi.String("string"),
				GalleryResourceGroupName: pulumi.String("string"),
				ImageName:                pulumi.String("string"),
				VersionName:              pulumi.String("string"),
				SpotAccountId:            pulumi.String("string"),
			},
		},
		MarketplaceImages: spotinst.StatefulNodeAzureImageMarketplaceImageArray{
			&spotinst.StatefulNodeAzureImageMarketplaceImageArgs{
				Offer:     pulumi.String("string"),
				Publisher: pulumi.String("string"),
				Sku:       pulumi.String("string"),
				Version:   pulumi.String("string"),
			},
		},
	},
	SchedulingTasks: spotinst.StatefulNodeAzureSchedulingTaskArray{
		&spotinst.StatefulNodeAzureSchedulingTaskArgs{
			CronExpression: pulumi.String("string"),
			IsEnabled:      pulumi.Bool(false),
			Type:           pulumi.String("string"),
		},
	},
	AttachDataDisks: spotinst.StatefulNodeAzureAttachDataDiskArray{
		&spotinst.StatefulNodeAzureAttachDataDiskArgs{
			DataDiskName:              pulumi.String("string"),
			DataDiskResourceGroupName: pulumi.String("string"),
			SizeGb:                    pulumi.Int(0),
			StorageAccountType:        pulumi.String("string"),
			Lun:                       pulumi.Int(0),
			Zone:                      pulumi.String("string"),
		},
	},
	ImportVms: spotinst.StatefulNodeAzureImportVmArray{
		&spotinst.StatefulNodeAzureImportVmArgs{
			OriginalVmName:         pulumi.String("string"),
			ResourceGroupName:      pulumi.String("string"),
			DrainingTimeout:        pulumi.Int(0),
			ResourcesRetentionTime: pulumi.Int(0),
		},
	},
	LicenseType: pulumi.String("string"),
	LoadBalancers: spotinst.StatefulNodeAzureLoadBalancerArray{
		&spotinst.StatefulNodeAzureLoadBalancerArgs{
			BackendPoolNames: pulumi.StringArray{
				pulumi.String("string"),
			},
			Name:              pulumi.String("string"),
			ResourceGroupName: pulumi.String("string"),
			Type:              pulumi.String("string"),
			Sku:               pulumi.String("string"),
		},
	},
	Login: &spotinst.StatefulNodeAzureLoginArgs{
		UserName:     pulumi.String("string"),
		Password:     pulumi.String("string"),
		SshPublicKey: pulumi.String("string"),
	},
	ManagedServiceIdentities: spotinst.StatefulNodeAzureManagedServiceIdentityArray{
		&spotinst.StatefulNodeAzureManagedServiceIdentityArgs{
			Name:              pulumi.String("string"),
			ResourceGroupName: pulumi.String("string"),
		},
	},
	Name: pulumi.String("string"),
	Network: &spotinst.StatefulNodeAzureNetworkArgs{
		NetworkInterfaces: spotinst.StatefulNodeAzureNetworkNetworkInterfaceArray{
			&spotinst.StatefulNodeAzureNetworkNetworkInterfaceArgs{
				IsPrimary:  pulumi.Bool(false),
				SubnetName: pulumi.String("string"),
				AdditionalIpConfigurations: spotinst.StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArray{
					&spotinst.StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs{
						Name:                    pulumi.String("string"),
						PrivateIpAddressVersion: pulumi.String("string"),
					},
				},
				ApplicationSecurityGroups: spotinst.StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArray{
					&spotinst.StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs{
						Name:                     pulumi.String("string"),
						NetworkResourceGroupName: pulumi.String("string"),
					},
				},
				AssignPublicIp:     pulumi.Bool(false),
				EnableIpForwarding: pulumi.Bool(false),
				NetworkSecurityGroups: spotinst.StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArray{
					&spotinst.StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs{
						Name:                     pulumi.String("string"),
						NetworkResourceGroupName: pulumi.String("string"),
					},
				},
				PrivateIpAddresses: pulumi.StringArray{
					pulumi.String("string"),
				},
				PublicIpSku: pulumi.String("string"),
				PublicIps: spotinst.StatefulNodeAzureNetworkNetworkInterfacePublicIpArray{
					&spotinst.StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs{
						Name:                     pulumi.String("string"),
						NetworkResourceGroupName: pulumi.String("string"),
					},
				},
			},
		},
		NetworkResourceGroupName: pulumi.String("string"),
		VirtualNetworkName:       pulumi.String("string"),
	},
	Extensions: spotinst.StatefulNodeAzureExtensionArray{
		&spotinst.StatefulNodeAzureExtensionArgs{
			ApiVersion:              pulumi.String("string"),
			MinorVersionAutoUpgrade: pulumi.Bool(false),
			Name:                    pulumi.String("string"),
			Publisher:               pulumi.String("string"),
			Type:                    pulumi.String("string"),
			ProtectedSettings: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
			PublicSettings: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
		},
	},
	OsDisk: &spotinst.StatefulNodeAzureOsDiskArgs{
		Type:    pulumi.String("string"),
		Caching: pulumi.String("string"),
		SizeGb:  pulumi.Int(0),
	},
	OsDiskPersistenceMode: pulumi.String("string"),
	PreferredZone:         pulumi.String("string"),
	ProximityPlacementGroups: spotinst.StatefulNodeAzureProximityPlacementGroupArray{
		&spotinst.StatefulNodeAzureProximityPlacementGroupArgs{
			Name:              pulumi.String("string"),
			ResourceGroupName: pulumi.String("string"),
		},
	},
	DetachDataDisks: spotinst.StatefulNodeAzureDetachDataDiskArray{
		&spotinst.StatefulNodeAzureDetachDataDiskArgs{
			DataDiskName:              pulumi.String("string"),
			DataDiskResourceGroupName: pulumi.String("string"),
			ShouldDeallocate:          pulumi.Bool(false),
			TtlInHours:                pulumi.Int(0),
		},
	},
	Description: pulumi.String("string"),
	Health: &spotinst.StatefulNodeAzureHealthArgs{
		AutoHealing: pulumi.Bool(false),
		HealthCheckTypes: pulumi.StringArray{
			pulumi.String("string"),
		},
		GracePeriod:       pulumi.Int(0),
		UnhealthyDuration: pulumi.Int(0),
	},
	Secrets: spotinst.StatefulNodeAzureSecretArray{
		&spotinst.StatefulNodeAzureSecretArgs{
			SourceVaults: spotinst.StatefulNodeAzureSecretSourceVaultArray{
				&spotinst.StatefulNodeAzureSecretSourceVaultArgs{
					Name:              pulumi.String("string"),
					ResourceGroupName: pulumi.String("string"),
				},
			},
			VaultCertificates: spotinst.StatefulNodeAzureSecretVaultCertificateArray{
				&spotinst.StatefulNodeAzureSecretVaultCertificateArgs{
					CertificateStore: pulumi.String("string"),
					CertificateUrl:   pulumi.String("string"),
				},
			},
		},
	},
	Security: &spotinst.StatefulNodeAzureSecurityArgs{
		ConfidentialOsDiskEncryption: pulumi.Bool(false),
		EncryptionAtHost:             pulumi.Bool(false),
		SecureBootEnabled:            pulumi.Bool(false),
		SecurityType:                 pulumi.String("string"),
		VtpmEnabled:                  pulumi.Bool(false),
	},
	Deletes: spotinst.StatefulNodeAzureDeleteArray{
		&spotinst.StatefulNodeAzureDeleteArgs{
			ShouldTerminateVm:        pulumi.Bool(false),
			DiskShouldDeallocate:     pulumi.Bool(false),
			DiskTtlInHours:           pulumi.Int(0),
			NetworkShouldDeallocate:  pulumi.Bool(false),
			NetworkTtlInHours:        pulumi.Int(0),
			PublicIpShouldDeallocate: pulumi.Bool(false),
			PublicIpTtlInHours:       pulumi.Int(0),
			ShouldDeregisterFromLb:   pulumi.Bool(false),
			ShouldRevertToOd:         pulumi.Bool(false),
			SnapshotShouldDeallocate: pulumi.Bool(false),
			SnapshotTtlInHours:       pulumi.Int(0),
		},
	},
	DataDisksPersistenceMode: pulumi.String("string"),
	DataDisks: spotinst.StatefulNodeAzureDataDiskArray{
		&spotinst.StatefulNodeAzureDataDiskArgs{
			Lun:    pulumi.Int(0),
			SizeGb: pulumi.Int(0),
			Type:   pulumi.String("string"),
		},
	},
	ShouldPersistVm: pulumi.Bool(false),
	ShutdownScript:  pulumi.String("string"),
	Signals: spotinst.StatefulNodeAzureSignalArray{
		&spotinst.StatefulNodeAzureSignalArgs{
			Timeout: pulumi.Int(0),
			Type:    pulumi.String("string"),
		},
	},
	CustomData: pulumi.String("string"),
	Tags: spotinst.StatefulNodeAzureTagArray{
		&spotinst.StatefulNodeAzureTagArgs{
			TagKey:   pulumi.String("string"),
			TagValue: pulumi.String("string"),
		},
	},
	UpdateStates: spotinst.StatefulNodeAzureUpdateStateArray{
		&spotinst.StatefulNodeAzureUpdateStateArgs{
			State: pulumi.String("string"),
		},
	},
	UserData:     pulumi.String("string"),
	VmName:       pulumi.String("string"),
	VmNamePrefix: pulumi.String("string"),
	BootDiagnostics: spotinst.StatefulNodeAzureBootDiagnosticArray{
		&spotinst.StatefulNodeAzureBootDiagnosticArgs{
			IsEnabled:  pulumi.Bool(false),
			StorageUrl: pulumi.String("string"),
			Type:       pulumi.String("string"),
		},
	},
	Zones: pulumi.StringArray{
		pulumi.String("string"),
	},
})
var statefulNodeAzureResource = new StatefulNodeAzure("statefulNodeAzureResource", StatefulNodeAzureArgs.builder()
    .os("string")
    .vmSizes(StatefulNodeAzureVmSizesArgs.builder()
        .odSizes("string")
        .excludedVmSizes("string")
        .preferredSpotSizes("string")
        .spotSizeAttributes(StatefulNodeAzureVmSizesSpotSizeAttributesArgs.builder()
            .maxCpu(0)
            .maxMemory(0)
            .maxStorage(0)
            .minCpu(0)
            .minMemory(0)
            .minStorage(0)
            .build())
        .spotSizes("string")
        .build())
    .strategy(StatefulNodeAzureStrategyArgs.builder()
        .fallbackToOnDemand(false)
        .availabilityVsCost(0)
        .capacityReservations(StatefulNodeAzureStrategyCapacityReservationArgs.builder()
            .shouldUtilize(false)
            .utilizationStrategy("string")
            .capacityReservationGroups(StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs.builder()
                .crgName("string")
                .crgResourceGroupName("string")
                .crgShouldPrioritize(false)
                .build())
            .build())
        .drainingTimeout(0)
        .odWindows("string")
        .optimizationWindows("string")
        .preferredLifeCycle("string")
        .revertToSpot(StatefulNodeAzureStrategyRevertToSpotArgs.builder()
            .performAt("string")
            .build())
        .vmAdmins("string")
        .build())
    .shouldPersistOsDisk(false)
    .shouldPersistNetwork(false)
    .shouldPersistDataDisks(false)
    .resourceGroupName("string")
    .region("string")
    .image(StatefulNodeAzureImageArgs.builder()
        .customImages(StatefulNodeAzureImageCustomImageArgs.builder()
            .customImageResourceGroupName("string")
            .name("string")
            .build())
        .galleries(StatefulNodeAzureImageGalleryArgs.builder()
            .galleryName("string")
            .galleryResourceGroupName("string")
            .imageName("string")
            .versionName("string")
            .spotAccountId("string")
            .build())
        .marketplaceImages(StatefulNodeAzureImageMarketplaceImageArgs.builder()
            .offer("string")
            .publisher("string")
            .sku("string")
            .version("string")
            .build())
        .build())
    .schedulingTasks(StatefulNodeAzureSchedulingTaskArgs.builder()
        .cronExpression("string")
        .isEnabled(false)
        .type("string")
        .build())
    .attachDataDisks(StatefulNodeAzureAttachDataDiskArgs.builder()
        .dataDiskName("string")
        .dataDiskResourceGroupName("string")
        .sizeGb(0)
        .storageAccountType("string")
        .lun(0)
        .zone("string")
        .build())
    .importVms(StatefulNodeAzureImportVmArgs.builder()
        .originalVmName("string")
        .resourceGroupName("string")
        .drainingTimeout(0)
        .resourcesRetentionTime(0)
        .build())
    .licenseType("string")
    .loadBalancers(StatefulNodeAzureLoadBalancerArgs.builder()
        .backendPoolNames("string")
        .name("string")
        .resourceGroupName("string")
        .type("string")
        .sku("string")
        .build())
    .login(StatefulNodeAzureLoginArgs.builder()
        .userName("string")
        .password("string")
        .sshPublicKey("string")
        .build())
    .managedServiceIdentities(StatefulNodeAzureManagedServiceIdentityArgs.builder()
        .name("string")
        .resourceGroupName("string")
        .build())
    .name("string")
    .network(StatefulNodeAzureNetworkArgs.builder()
        .networkInterfaces(StatefulNodeAzureNetworkNetworkInterfaceArgs.builder()
            .isPrimary(false)
            .subnetName("string")
            .additionalIpConfigurations(StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs.builder()
                .name("string")
                .privateIpAddressVersion("string")
                .build())
            .applicationSecurityGroups(StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs.builder()
                .name("string")
                .networkResourceGroupName("string")
                .build())
            .assignPublicIp(false)
            .enableIpForwarding(false)
            .networkSecurityGroups(StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs.builder()
                .name("string")
                .networkResourceGroupName("string")
                .build())
            .privateIpAddresses("string")
            .publicIpSku("string")
            .publicIps(StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs.builder()
                .name("string")
                .networkResourceGroupName("string")
                .build())
            .build())
        .networkResourceGroupName("string")
        .virtualNetworkName("string")
        .build())
    .extensions(StatefulNodeAzureExtensionArgs.builder()
        .apiVersion("string")
        .minorVersionAutoUpgrade(false)
        .name("string")
        .publisher("string")
        .type("string")
        .protectedSettings(Map.of("string", "string"))
        .publicSettings(Map.of("string", "string"))
        .build())
    .osDisk(StatefulNodeAzureOsDiskArgs.builder()
        .type("string")
        .caching("string")
        .sizeGb(0)
        .build())
    .osDiskPersistenceMode("string")
    .preferredZone("string")
    .proximityPlacementGroups(StatefulNodeAzureProximityPlacementGroupArgs.builder()
        .name("string")
        .resourceGroupName("string")
        .build())
    .detachDataDisks(StatefulNodeAzureDetachDataDiskArgs.builder()
        .dataDiskName("string")
        .dataDiskResourceGroupName("string")
        .shouldDeallocate(false)
        .ttlInHours(0)
        .build())
    .description("string")
    .health(StatefulNodeAzureHealthArgs.builder()
        .autoHealing(false)
        .healthCheckTypes("string")
        .gracePeriod(0)
        .unhealthyDuration(0)
        .build())
    .secrets(StatefulNodeAzureSecretArgs.builder()
        .sourceVaults(StatefulNodeAzureSecretSourceVaultArgs.builder()
            .name("string")
            .resourceGroupName("string")
            .build())
        .vaultCertificates(StatefulNodeAzureSecretVaultCertificateArgs.builder()
            .certificateStore("string")
            .certificateUrl("string")
            .build())
        .build())
    .security(StatefulNodeAzureSecurityArgs.builder()
        .confidentialOsDiskEncryption(false)
        .encryptionAtHost(false)
        .secureBootEnabled(false)
        .securityType("string")
        .vtpmEnabled(false)
        .build())
    .deletes(StatefulNodeAzureDeleteArgs.builder()
        .shouldTerminateVm(false)
        .diskShouldDeallocate(false)
        .diskTtlInHours(0)
        .networkShouldDeallocate(false)
        .networkTtlInHours(0)
        .publicIpShouldDeallocate(false)
        .publicIpTtlInHours(0)
        .shouldDeregisterFromLb(false)
        .shouldRevertToOd(false)
        .snapshotShouldDeallocate(false)
        .snapshotTtlInHours(0)
        .build())
    .dataDisksPersistenceMode("string")
    .dataDisks(StatefulNodeAzureDataDiskArgs.builder()
        .lun(0)
        .sizeGb(0)
        .type("string")
        .build())
    .shouldPersistVm(false)
    .shutdownScript("string")
    .signals(StatefulNodeAzureSignalArgs.builder()
        .timeout(0)
        .type("string")
        .build())
    .customData("string")
    .tags(StatefulNodeAzureTagArgs.builder()
        .tagKey("string")
        .tagValue("string")
        .build())
    .updateStates(StatefulNodeAzureUpdateStateArgs.builder()
        .state("string")
        .build())
    .userData("string")
    .vmName("string")
    .vmNamePrefix("string")
    .bootDiagnostics(StatefulNodeAzureBootDiagnosticArgs.builder()
        .isEnabled(false)
        .storageUrl("string")
        .type("string")
        .build())
    .zones("string")
    .build());
stateful_node_azure_resource = spotinst.StatefulNodeAzure("statefulNodeAzureResource",
    os="string",
    vm_sizes={
        "od_sizes": ["string"],
        "excluded_vm_sizes": ["string"],
        "preferred_spot_sizes": ["string"],
        "spot_size_attributes": {
            "max_cpu": 0,
            "max_memory": 0,
            "max_storage": 0,
            "min_cpu": 0,
            "min_memory": 0,
            "min_storage": 0,
        },
        "spot_sizes": ["string"],
    },
    strategy={
        "fallback_to_on_demand": False,
        "availability_vs_cost": 0,
        "capacity_reservations": [{
            "should_utilize": False,
            "utilization_strategy": "string",
            "capacity_reservation_groups": [{
                "crg_name": "string",
                "crg_resource_group_name": "string",
                "crg_should_prioritize": False,
            }],
        }],
        "draining_timeout": 0,
        "od_windows": ["string"],
        "optimization_windows": ["string"],
        "preferred_life_cycle": "string",
        "revert_to_spot": {
            "perform_at": "string",
        },
        "vm_admins": ["string"],
    },
    should_persist_os_disk=False,
    should_persist_network=False,
    should_persist_data_disks=False,
    resource_group_name="string",
    region="string",
    image={
        "custom_images": [{
            "custom_image_resource_group_name": "string",
            "name": "string",
        }],
        "galleries": [{
            "gallery_name": "string",
            "gallery_resource_group_name": "string",
            "image_name": "string",
            "version_name": "string",
            "spot_account_id": "string",
        }],
        "marketplace_images": [{
            "offer": "string",
            "publisher": "string",
            "sku": "string",
            "version": "string",
        }],
    },
    scheduling_tasks=[{
        "cron_expression": "string",
        "is_enabled": False,
        "type": "string",
    }],
    attach_data_disks=[{
        "data_disk_name": "string",
        "data_disk_resource_group_name": "string",
        "size_gb": 0,
        "storage_account_type": "string",
        "lun": 0,
        "zone": "string",
    }],
    import_vms=[{
        "original_vm_name": "string",
        "resource_group_name": "string",
        "draining_timeout": 0,
        "resources_retention_time": 0,
    }],
    license_type="string",
    load_balancers=[{
        "backend_pool_names": ["string"],
        "name": "string",
        "resource_group_name": "string",
        "type": "string",
        "sku": "string",
    }],
    login={
        "user_name": "string",
        "password": "string",
        "ssh_public_key": "string",
    },
    managed_service_identities=[{
        "name": "string",
        "resource_group_name": "string",
    }],
    name="string",
    network={
        "network_interfaces": [{
            "is_primary": False,
            "subnet_name": "string",
            "additional_ip_configurations": [{
                "name": "string",
                "private_ip_address_version": "string",
            }],
            "application_security_groups": [{
                "name": "string",
                "network_resource_group_name": "string",
            }],
            "assign_public_ip": False,
            "enable_ip_forwarding": False,
            "network_security_groups": [{
                "name": "string",
                "network_resource_group_name": "string",
            }],
            "private_ip_addresses": ["string"],
            "public_ip_sku": "string",
            "public_ips": [{
                "name": "string",
                "network_resource_group_name": "string",
            }],
        }],
        "network_resource_group_name": "string",
        "virtual_network_name": "string",
    },
    extensions=[{
        "api_version": "string",
        "minor_version_auto_upgrade": False,
        "name": "string",
        "publisher": "string",
        "type": "string",
        "protected_settings": {
            "string": "string",
        },
        "public_settings": {
            "string": "string",
        },
    }],
    os_disk={
        "type": "string",
        "caching": "string",
        "size_gb": 0,
    },
    os_disk_persistence_mode="string",
    preferred_zone="string",
    proximity_placement_groups=[{
        "name": "string",
        "resource_group_name": "string",
    }],
    detach_data_disks=[{
        "data_disk_name": "string",
        "data_disk_resource_group_name": "string",
        "should_deallocate": False,
        "ttl_in_hours": 0,
    }],
    description="string",
    health={
        "auto_healing": False,
        "health_check_types": ["string"],
        "grace_period": 0,
        "unhealthy_duration": 0,
    },
    secrets=[{
        "source_vaults": [{
            "name": "string",
            "resource_group_name": "string",
        }],
        "vault_certificates": [{
            "certificate_store": "string",
            "certificate_url": "string",
        }],
    }],
    security={
        "confidential_os_disk_encryption": False,
        "encryption_at_host": False,
        "secure_boot_enabled": False,
        "security_type": "string",
        "vtpm_enabled": False,
    },
    deletes=[{
        "should_terminate_vm": False,
        "disk_should_deallocate": False,
        "disk_ttl_in_hours": 0,
        "network_should_deallocate": False,
        "network_ttl_in_hours": 0,
        "public_ip_should_deallocate": False,
        "public_ip_ttl_in_hours": 0,
        "should_deregister_from_lb": False,
        "should_revert_to_od": False,
        "snapshot_should_deallocate": False,
        "snapshot_ttl_in_hours": 0,
    }],
    data_disks_persistence_mode="string",
    data_disks=[{
        "lun": 0,
        "size_gb": 0,
        "type": "string",
    }],
    should_persist_vm=False,
    shutdown_script="string",
    signals=[{
        "timeout": 0,
        "type": "string",
    }],
    custom_data="string",
    tags=[{
        "tag_key": "string",
        "tag_value": "string",
    }],
    update_states=[{
        "state": "string",
    }],
    user_data="string",
    vm_name="string",
    vm_name_prefix="string",
    boot_diagnostics=[{
        "is_enabled": False,
        "storage_url": "string",
        "type": "string",
    }],
    zones=["string"])
const statefulNodeAzureResource = new spotinst.StatefulNodeAzure("statefulNodeAzureResource", {
    os: "string",
    vmSizes: {
        odSizes: ["string"],
        excludedVmSizes: ["string"],
        preferredSpotSizes: ["string"],
        spotSizeAttributes: {
            maxCpu: 0,
            maxMemory: 0,
            maxStorage: 0,
            minCpu: 0,
            minMemory: 0,
            minStorage: 0,
        },
        spotSizes: ["string"],
    },
    strategy: {
        fallbackToOnDemand: false,
        availabilityVsCost: 0,
        capacityReservations: [{
            shouldUtilize: false,
            utilizationStrategy: "string",
            capacityReservationGroups: [{
                crgName: "string",
                crgResourceGroupName: "string",
                crgShouldPrioritize: false,
            }],
        }],
        drainingTimeout: 0,
        odWindows: ["string"],
        optimizationWindows: ["string"],
        preferredLifeCycle: "string",
        revertToSpot: {
            performAt: "string",
        },
        vmAdmins: ["string"],
    },
    shouldPersistOsDisk: false,
    shouldPersistNetwork: false,
    shouldPersistDataDisks: false,
    resourceGroupName: "string",
    region: "string",
    image: {
        customImages: [{
            customImageResourceGroupName: "string",
            name: "string",
        }],
        galleries: [{
            galleryName: "string",
            galleryResourceGroupName: "string",
            imageName: "string",
            versionName: "string",
            spotAccountId: "string",
        }],
        marketplaceImages: [{
            offer: "string",
            publisher: "string",
            sku: "string",
            version: "string",
        }],
    },
    schedulingTasks: [{
        cronExpression: "string",
        isEnabled: false,
        type: "string",
    }],
    attachDataDisks: [{
        dataDiskName: "string",
        dataDiskResourceGroupName: "string",
        sizeGb: 0,
        storageAccountType: "string",
        lun: 0,
        zone: "string",
    }],
    importVms: [{
        originalVmName: "string",
        resourceGroupName: "string",
        drainingTimeout: 0,
        resourcesRetentionTime: 0,
    }],
    licenseType: "string",
    loadBalancers: [{
        backendPoolNames: ["string"],
        name: "string",
        resourceGroupName: "string",
        type: "string",
        sku: "string",
    }],
    login: {
        userName: "string",
        password: "string",
        sshPublicKey: "string",
    },
    managedServiceIdentities: [{
        name: "string",
        resourceGroupName: "string",
    }],
    name: "string",
    network: {
        networkInterfaces: [{
            isPrimary: false,
            subnetName: "string",
            additionalIpConfigurations: [{
                name: "string",
                privateIpAddressVersion: "string",
            }],
            applicationSecurityGroups: [{
                name: "string",
                networkResourceGroupName: "string",
            }],
            assignPublicIp: false,
            enableIpForwarding: false,
            networkSecurityGroups: [{
                name: "string",
                networkResourceGroupName: "string",
            }],
            privateIpAddresses: ["string"],
            publicIpSku: "string",
            publicIps: [{
                name: "string",
                networkResourceGroupName: "string",
            }],
        }],
        networkResourceGroupName: "string",
        virtualNetworkName: "string",
    },
    extensions: [{
        apiVersion: "string",
        minorVersionAutoUpgrade: false,
        name: "string",
        publisher: "string",
        type: "string",
        protectedSettings: {
            string: "string",
        },
        publicSettings: {
            string: "string",
        },
    }],
    osDisk: {
        type: "string",
        caching: "string",
        sizeGb: 0,
    },
    osDiskPersistenceMode: "string",
    preferredZone: "string",
    proximityPlacementGroups: [{
        name: "string",
        resourceGroupName: "string",
    }],
    detachDataDisks: [{
        dataDiskName: "string",
        dataDiskResourceGroupName: "string",
        shouldDeallocate: false,
        ttlInHours: 0,
    }],
    description: "string",
    health: {
        autoHealing: false,
        healthCheckTypes: ["string"],
        gracePeriod: 0,
        unhealthyDuration: 0,
    },
    secrets: [{
        sourceVaults: [{
            name: "string",
            resourceGroupName: "string",
        }],
        vaultCertificates: [{
            certificateStore: "string",
            certificateUrl: "string",
        }],
    }],
    security: {
        confidentialOsDiskEncryption: false,
        encryptionAtHost: false,
        secureBootEnabled: false,
        securityType: "string",
        vtpmEnabled: false,
    },
    deletes: [{
        shouldTerminateVm: false,
        diskShouldDeallocate: false,
        diskTtlInHours: 0,
        networkShouldDeallocate: false,
        networkTtlInHours: 0,
        publicIpShouldDeallocate: false,
        publicIpTtlInHours: 0,
        shouldDeregisterFromLb: false,
        shouldRevertToOd: false,
        snapshotShouldDeallocate: false,
        snapshotTtlInHours: 0,
    }],
    dataDisksPersistenceMode: "string",
    dataDisks: [{
        lun: 0,
        sizeGb: 0,
        type: "string",
    }],
    shouldPersistVm: false,
    shutdownScript: "string",
    signals: [{
        timeout: 0,
        type: "string",
    }],
    customData: "string",
    tags: [{
        tagKey: "string",
        tagValue: "string",
    }],
    updateStates: [{
        state: "string",
    }],
    userData: "string",
    vmName: "string",
    vmNamePrefix: "string",
    bootDiagnostics: [{
        isEnabled: false,
        storageUrl: "string",
        type: "string",
    }],
    zones: ["string"],
});
type: spotinst:StatefulNodeAzure
properties:
    attachDataDisks:
        - dataDiskName: string
          dataDiskResourceGroupName: string
          lun: 0
          sizeGb: 0
          storageAccountType: string
          zone: string
    bootDiagnostics:
        - isEnabled: false
          storageUrl: string
          type: string
    customData: string
    dataDisks:
        - lun: 0
          sizeGb: 0
          type: string
    dataDisksPersistenceMode: string
    deletes:
        - diskShouldDeallocate: false
          diskTtlInHours: 0
          networkShouldDeallocate: false
          networkTtlInHours: 0
          publicIpShouldDeallocate: false
          publicIpTtlInHours: 0
          shouldDeregisterFromLb: false
          shouldRevertToOd: false
          shouldTerminateVm: false
          snapshotShouldDeallocate: false
          snapshotTtlInHours: 0
    description: string
    detachDataDisks:
        - dataDiskName: string
          dataDiskResourceGroupName: string
          shouldDeallocate: false
          ttlInHours: 0
    extensions:
        - apiVersion: string
          minorVersionAutoUpgrade: false
          name: string
          protectedSettings:
            string: string
          publicSettings:
            string: string
          publisher: string
          type: string
    health:
        autoHealing: false
        gracePeriod: 0
        healthCheckTypes:
            - string
        unhealthyDuration: 0
    image:
        customImages:
            - customImageResourceGroupName: string
              name: string
        galleries:
            - galleryName: string
              galleryResourceGroupName: string
              imageName: string
              spotAccountId: string
              versionName: string
        marketplaceImages:
            - offer: string
              publisher: string
              sku: string
              version: string
    importVms:
        - drainingTimeout: 0
          originalVmName: string
          resourceGroupName: string
          resourcesRetentionTime: 0
    licenseType: string
    loadBalancers:
        - backendPoolNames:
            - string
          name: string
          resourceGroupName: string
          sku: string
          type: string
    login:
        password: string
        sshPublicKey: string
        userName: string
    managedServiceIdentities:
        - name: string
          resourceGroupName: string
    name: string
    network:
        networkInterfaces:
            - additionalIpConfigurations:
                - name: string
                  privateIpAddressVersion: string
              applicationSecurityGroups:
                - name: string
                  networkResourceGroupName: string
              assignPublicIp: false
              enableIpForwarding: false
              isPrimary: false
              networkSecurityGroups:
                - name: string
                  networkResourceGroupName: string
              privateIpAddresses:
                - string
              publicIpSku: string
              publicIps:
                - name: string
                  networkResourceGroupName: string
              subnetName: string
        networkResourceGroupName: string
        virtualNetworkName: string
    os: string
    osDisk:
        caching: string
        sizeGb: 0
        type: string
    osDiskPersistenceMode: string
    preferredZone: string
    proximityPlacementGroups:
        - name: string
          resourceGroupName: string
    region: string
    resourceGroupName: string
    schedulingTasks:
        - cronExpression: string
          isEnabled: false
          type: string
    secrets:
        - sourceVaults:
            - name: string
              resourceGroupName: string
          vaultCertificates:
            - certificateStore: string
              certificateUrl: string
    security:
        confidentialOsDiskEncryption: false
        encryptionAtHost: false
        secureBootEnabled: false
        securityType: string
        vtpmEnabled: false
    shouldPersistDataDisks: false
    shouldPersistNetwork: false
    shouldPersistOsDisk: false
    shouldPersistVm: false
    shutdownScript: string
    signals:
        - timeout: 0
          type: string
    strategy:
        availabilityVsCost: 0
        capacityReservations:
            - capacityReservationGroups:
                - crgName: string
                  crgResourceGroupName: string
                  crgShouldPrioritize: false
              shouldUtilize: false
              utilizationStrategy: string
        drainingTimeout: 0
        fallbackToOnDemand: false
        odWindows:
            - string
        optimizationWindows:
            - string
        preferredLifeCycle: string
        revertToSpot:
            performAt: string
        vmAdmins:
            - string
    tags:
        - tagKey: string
          tagValue: string
    updateStates:
        - state: string
    userData: string
    vmName: string
    vmNamePrefix: string
    vmSizes:
        excludedVmSizes:
            - string
        odSizes:
            - string
        preferredSpotSizes:
            - string
        spotSizeAttributes:
            maxCpu: 0
            maxMemory: 0
            maxStorage: 0
            minCpu: 0
            minMemory: 0
            minStorage: 0
        spotSizes:
            - string
    zones:
        - string
StatefulNodeAzure Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The StatefulNodeAzure resource accepts the following input properties:
- Os string
- Region string
- ResourceGroup stringName 
- ShouldPersist boolData Disks 
- ShouldPersist boolNetwork 
- ShouldPersist boolOs Disk 
- Strategy
Pulumi.Spot Inst. Inputs. Stateful Node Azure Strategy 
- VmSizes Pulumi.Spot Inst. Inputs. Stateful Node Azure Vm Sizes 
- AttachData List<Pulumi.Disks Spot Inst. Inputs. Stateful Node Azure Attach Data Disk> 
- BootDiagnostics List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Boot Diagnostic> 
- CustomData string
- DataDisks List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Data Disk> 
- DataDisks stringPersistence Mode 
- Deletes
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Delete> 
- Description string
- DetachData List<Pulumi.Disks Spot Inst. Inputs. Stateful Node Azure Detach Data Disk> 
- Extensions
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Extension> 
- Health
Pulumi.Spot Inst. Inputs. Stateful Node Azure Health 
- Image
Pulumi.Spot Inst. Inputs. Stateful Node Azure Image 
- ImportVms List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Import Vm> 
- LicenseType string
- LoadBalancers List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Load Balancer> 
- Login
Pulumi.Spot Inst. Inputs. Stateful Node Azure Login 
- ManagedService List<Pulumi.Identities Spot Inst. Inputs. Stateful Node Azure Managed Service Identity> 
- Name string
- Network
Pulumi.Spot Inst. Inputs. Stateful Node Azure Network 
- OsDisk Pulumi.Spot Inst. Inputs. Stateful Node Azure Os Disk 
- OsDisk stringPersistence Mode 
- PreferredZone string
- ProximityPlacement List<Pulumi.Groups Spot Inst. Inputs. Stateful Node Azure Proximity Placement Group> 
- SchedulingTasks List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Scheduling Task> 
- Secrets
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Secret> 
- Security
Pulumi.Spot Inst. Inputs. Stateful Node Azure Security 
- ShouldPersist boolVm 
- ShutdownScript string
- Signals
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Signal> 
- 
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Tag> 
- UpdateStates List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Update State> 
- UserData string
- VmName string
- VmName stringPrefix 
- Zones List<string>
- Os string
- Region string
- ResourceGroup stringName 
- ShouldPersist boolData Disks 
- ShouldPersist boolNetwork 
- ShouldPersist boolOs Disk 
- Strategy
StatefulNode Azure Strategy Args 
- VmSizes StatefulNode Azure Vm Sizes Args 
- AttachData []StatefulDisks Node Azure Attach Data Disk Args 
- BootDiagnostics []StatefulNode Azure Boot Diagnostic Args 
- CustomData string
- DataDisks []StatefulNode Azure Data Disk Args 
- DataDisks stringPersistence Mode 
- Deletes
[]StatefulNode Azure Delete Args 
- Description string
- DetachData []StatefulDisks Node Azure Detach Data Disk Args 
- Extensions
[]StatefulNode Azure Extension Args 
- Health
StatefulNode Azure Health Args 
- Image
StatefulNode Azure Image Args 
- ImportVms []StatefulNode Azure Import Vm Args 
- LicenseType string
- LoadBalancers []StatefulNode Azure Load Balancer Args 
- Login
StatefulNode Azure Login Args 
- ManagedService []StatefulIdentities Node Azure Managed Service Identity Args 
- Name string
- Network
StatefulNode Azure Network Args 
- OsDisk StatefulNode Azure Os Disk Args 
- OsDisk stringPersistence Mode 
- PreferredZone string
- ProximityPlacement []StatefulGroups Node Azure Proximity Placement Group Args 
- SchedulingTasks []StatefulNode Azure Scheduling Task Args 
- Secrets
[]StatefulNode Azure Secret Args 
- Security
StatefulNode Azure Security Args 
- ShouldPersist boolVm 
- ShutdownScript string
- Signals
[]StatefulNode Azure Signal Args 
- 
[]StatefulNode Azure Tag Args 
- UpdateStates []StatefulNode Azure Update State Args 
- UserData string
- VmName string
- VmName stringPrefix 
- Zones []string
- os String
- region String
- resourceGroup StringName 
- shouldPersist BooleanData Disks 
- shouldPersist BooleanNetwork 
- shouldPersist BooleanOs Disk 
- strategy
StatefulNode Azure Strategy 
- vmSizes StatefulNode Azure Vm Sizes 
- attachData List<StatefulDisks Node Azure Attach Data Disk> 
- bootDiagnostics List<StatefulNode Azure Boot Diagnostic> 
- customData String
- dataDisks List<StatefulNode Azure Data Disk> 
- dataDisks StringPersistence Mode 
- deletes
List<StatefulNode Azure Delete> 
- description String
- detachData List<StatefulDisks Node Azure Detach Data Disk> 
- extensions
List<StatefulNode Azure Extension> 
- health
StatefulNode Azure Health 
- image
StatefulNode Azure Image 
- importVms List<StatefulNode Azure Import Vm> 
- licenseType String
- loadBalancers List<StatefulNode Azure Load Balancer> 
- login
StatefulNode Azure Login 
- managedService List<StatefulIdentities Node Azure Managed Service Identity> 
- name String
- network
StatefulNode Azure Network 
- osDisk StatefulNode Azure Os Disk 
- osDisk StringPersistence Mode 
- preferredZone String
- proximityPlacement List<StatefulGroups Node Azure Proximity Placement Group> 
- schedulingTasks List<StatefulNode Azure Scheduling Task> 
- secrets
List<StatefulNode Azure Secret> 
- security
StatefulNode Azure Security 
- shouldPersist BooleanVm 
- shutdownScript String
- signals
List<StatefulNode Azure Signal> 
- 
List<StatefulNode Azure Tag> 
- updateStates List<StatefulNode Azure Update State> 
- userData String
- vmName String
- vmName StringPrefix 
- zones List<String>
- os string
- region string
- resourceGroup stringName 
- shouldPersist booleanData Disks 
- shouldPersist booleanNetwork 
- shouldPersist booleanOs Disk 
- strategy
StatefulNode Azure Strategy 
- vmSizes StatefulNode Azure Vm Sizes 
- attachData StatefulDisks Node Azure Attach Data Disk[] 
- bootDiagnostics StatefulNode Azure Boot Diagnostic[] 
- customData string
- dataDisks StatefulNode Azure Data Disk[] 
- dataDisks stringPersistence Mode 
- deletes
StatefulNode Azure Delete[] 
- description string
- detachData StatefulDisks Node Azure Detach Data Disk[] 
- extensions
StatefulNode Azure Extension[] 
- health
StatefulNode Azure Health 
- image
StatefulNode Azure Image 
- importVms StatefulNode Azure Import Vm[] 
- licenseType string
- loadBalancers StatefulNode Azure Load Balancer[] 
- login
StatefulNode Azure Login 
- managedService StatefulIdentities Node Azure Managed Service Identity[] 
- name string
- network
StatefulNode Azure Network 
- osDisk StatefulNode Azure Os Disk 
- osDisk stringPersistence Mode 
- preferredZone string
- proximityPlacement StatefulGroups Node Azure Proximity Placement Group[] 
- schedulingTasks StatefulNode Azure Scheduling Task[] 
- secrets
StatefulNode Azure Secret[] 
- security
StatefulNode Azure Security 
- shouldPersist booleanVm 
- shutdownScript string
- signals
StatefulNode Azure Signal[] 
- 
StatefulNode Azure Tag[] 
- updateStates StatefulNode Azure Update State[] 
- userData string
- vmName string
- vmName stringPrefix 
- zones string[]
- os str
- region str
- resource_group_ strname 
- should_persist_ booldata_ disks 
- should_persist_ boolnetwork 
- should_persist_ boolos_ disk 
- strategy
StatefulNode Azure Strategy Args 
- vm_sizes StatefulNode Azure Vm Sizes Args 
- attach_data_ Sequence[Statefuldisks Node Azure Attach Data Disk Args] 
- boot_diagnostics Sequence[StatefulNode Azure Boot Diagnostic Args] 
- custom_data str
- data_disks Sequence[StatefulNode Azure Data Disk Args] 
- data_disks_ strpersistence_ mode 
- deletes
Sequence[StatefulNode Azure Delete Args] 
- description str
- detach_data_ Sequence[Statefuldisks Node Azure Detach Data Disk Args] 
- extensions
Sequence[StatefulNode Azure Extension Args] 
- health
StatefulNode Azure Health Args 
- image
StatefulNode Azure Image Args 
- import_vms Sequence[StatefulNode Azure Import Vm Args] 
- license_type str
- load_balancers Sequence[StatefulNode Azure Load Balancer Args] 
- login
StatefulNode Azure Login Args 
- managed_service_ Sequence[Statefulidentities Node Azure Managed Service Identity Args] 
- name str
- network
StatefulNode Azure Network Args 
- os_disk StatefulNode Azure Os Disk Args 
- os_disk_ strpersistence_ mode 
- preferred_zone str
- proximity_placement_ Sequence[Statefulgroups Node Azure Proximity Placement Group Args] 
- scheduling_tasks Sequence[StatefulNode Azure Scheduling Task Args] 
- secrets
Sequence[StatefulNode Azure Secret Args] 
- security
StatefulNode Azure Security Args 
- should_persist_ boolvm 
- shutdown_script str
- signals
Sequence[StatefulNode Azure Signal Args] 
- 
Sequence[StatefulNode Azure Tag Args] 
- update_states Sequence[StatefulNode Azure Update State Args] 
- user_data str
- vm_name str
- vm_name_ strprefix 
- zones Sequence[str]
- os String
- region String
- resourceGroup StringName 
- shouldPersist BooleanData Disks 
- shouldPersist BooleanNetwork 
- shouldPersist BooleanOs Disk 
- strategy Property Map
- vmSizes Property Map
- attachData List<Property Map>Disks 
- bootDiagnostics List<Property Map>
- customData String
- dataDisks List<Property Map>
- dataDisks StringPersistence Mode 
- deletes List<Property Map>
- description String
- detachData List<Property Map>Disks 
- extensions List<Property Map>
- health Property Map
- image Property Map
- importVms List<Property Map>
- licenseType String
- loadBalancers List<Property Map>
- login Property Map
- managedService List<Property Map>Identities 
- name String
- network Property Map
- osDisk Property Map
- osDisk StringPersistence Mode 
- preferredZone String
- proximityPlacement List<Property Map>Groups 
- schedulingTasks List<Property Map>
- secrets List<Property Map>
- security Property Map
- shouldPersist BooleanVm 
- shutdownScript String
- signals List<Property Map>
- List<Property Map>
- updateStates List<Property Map>
- userData String
- vmName String
- vmName StringPrefix 
- zones List<String>
Outputs
All input properties are implicitly available as output properties. Additionally, the StatefulNodeAzure resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing StatefulNodeAzure Resource
Get an existing StatefulNodeAzure resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: StatefulNodeAzureState, opts?: CustomResourceOptions): StatefulNodeAzure@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        attach_data_disks: Optional[Sequence[StatefulNodeAzureAttachDataDiskArgs]] = None,
        boot_diagnostics: Optional[Sequence[StatefulNodeAzureBootDiagnosticArgs]] = None,
        custom_data: Optional[str] = None,
        data_disks: Optional[Sequence[StatefulNodeAzureDataDiskArgs]] = None,
        data_disks_persistence_mode: Optional[str] = None,
        deletes: Optional[Sequence[StatefulNodeAzureDeleteArgs]] = None,
        description: Optional[str] = None,
        detach_data_disks: Optional[Sequence[StatefulNodeAzureDetachDataDiskArgs]] = None,
        extensions: Optional[Sequence[StatefulNodeAzureExtensionArgs]] = None,
        health: Optional[StatefulNodeAzureHealthArgs] = None,
        image: Optional[StatefulNodeAzureImageArgs] = None,
        import_vms: Optional[Sequence[StatefulNodeAzureImportVmArgs]] = None,
        license_type: Optional[str] = None,
        load_balancers: Optional[Sequence[StatefulNodeAzureLoadBalancerArgs]] = None,
        login: Optional[StatefulNodeAzureLoginArgs] = None,
        managed_service_identities: Optional[Sequence[StatefulNodeAzureManagedServiceIdentityArgs]] = None,
        name: Optional[str] = None,
        network: Optional[StatefulNodeAzureNetworkArgs] = None,
        os: Optional[str] = None,
        os_disk: Optional[StatefulNodeAzureOsDiskArgs] = None,
        os_disk_persistence_mode: Optional[str] = None,
        preferred_zone: Optional[str] = None,
        proximity_placement_groups: Optional[Sequence[StatefulNodeAzureProximityPlacementGroupArgs]] = None,
        region: Optional[str] = None,
        resource_group_name: Optional[str] = None,
        scheduling_tasks: Optional[Sequence[StatefulNodeAzureSchedulingTaskArgs]] = None,
        secrets: Optional[Sequence[StatefulNodeAzureSecretArgs]] = None,
        security: Optional[StatefulNodeAzureSecurityArgs] = None,
        should_persist_data_disks: Optional[bool] = None,
        should_persist_network: Optional[bool] = None,
        should_persist_os_disk: Optional[bool] = None,
        should_persist_vm: Optional[bool] = None,
        shutdown_script: Optional[str] = None,
        signals: Optional[Sequence[StatefulNodeAzureSignalArgs]] = None,
        strategy: Optional[StatefulNodeAzureStrategyArgs] = None,
        tags: Optional[Sequence[StatefulNodeAzureTagArgs]] = None,
        update_states: Optional[Sequence[StatefulNodeAzureUpdateStateArgs]] = None,
        user_data: Optional[str] = None,
        vm_name: Optional[str] = None,
        vm_name_prefix: Optional[str] = None,
        vm_sizes: Optional[StatefulNodeAzureVmSizesArgs] = None,
        zones: Optional[Sequence[str]] = None) -> StatefulNodeAzurefunc GetStatefulNodeAzure(ctx *Context, name string, id IDInput, state *StatefulNodeAzureState, opts ...ResourceOption) (*StatefulNodeAzure, error)public static StatefulNodeAzure Get(string name, Input<string> id, StatefulNodeAzureState? state, CustomResourceOptions? opts = null)public static StatefulNodeAzure get(String name, Output<String> id, StatefulNodeAzureState state, CustomResourceOptions options)resources:  _:    type: spotinst:StatefulNodeAzure    get:      id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- AttachData List<Pulumi.Disks Spot Inst. Inputs. Stateful Node Azure Attach Data Disk> 
- BootDiagnostics List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Boot Diagnostic> 
- CustomData string
- DataDisks List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Data Disk> 
- DataDisks stringPersistence Mode 
- Deletes
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Delete> 
- Description string
- DetachData List<Pulumi.Disks Spot Inst. Inputs. Stateful Node Azure Detach Data Disk> 
- Extensions
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Extension> 
- Health
Pulumi.Spot Inst. Inputs. Stateful Node Azure Health 
- Image
Pulumi.Spot Inst. Inputs. Stateful Node Azure Image 
- ImportVms List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Import Vm> 
- LicenseType string
- LoadBalancers List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Load Balancer> 
- Login
Pulumi.Spot Inst. Inputs. Stateful Node Azure Login 
- ManagedService List<Pulumi.Identities Spot Inst. Inputs. Stateful Node Azure Managed Service Identity> 
- Name string
- Network
Pulumi.Spot Inst. Inputs. Stateful Node Azure Network 
- Os string
- OsDisk Pulumi.Spot Inst. Inputs. Stateful Node Azure Os Disk 
- OsDisk stringPersistence Mode 
- PreferredZone string
- ProximityPlacement List<Pulumi.Groups Spot Inst. Inputs. Stateful Node Azure Proximity Placement Group> 
- Region string
- ResourceGroup stringName 
- SchedulingTasks List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Scheduling Task> 
- Secrets
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Secret> 
- Security
Pulumi.Spot Inst. Inputs. Stateful Node Azure Security 
- ShouldPersist boolData Disks 
- ShouldPersist boolNetwork 
- ShouldPersist boolOs Disk 
- ShouldPersist boolVm 
- ShutdownScript string
- Signals
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Signal> 
- Strategy
Pulumi.Spot Inst. Inputs. Stateful Node Azure Strategy 
- 
List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Tag> 
- UpdateStates List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Update State> 
- UserData string
- VmName string
- VmName stringPrefix 
- VmSizes Pulumi.Spot Inst. Inputs. Stateful Node Azure Vm Sizes 
- Zones List<string>
- AttachData []StatefulDisks Node Azure Attach Data Disk Args 
- BootDiagnostics []StatefulNode Azure Boot Diagnostic Args 
- CustomData string
- DataDisks []StatefulNode Azure Data Disk Args 
- DataDisks stringPersistence Mode 
- Deletes
[]StatefulNode Azure Delete Args 
- Description string
- DetachData []StatefulDisks Node Azure Detach Data Disk Args 
- Extensions
[]StatefulNode Azure Extension Args 
- Health
StatefulNode Azure Health Args 
- Image
StatefulNode Azure Image Args 
- ImportVms []StatefulNode Azure Import Vm Args 
- LicenseType string
- LoadBalancers []StatefulNode Azure Load Balancer Args 
- Login
StatefulNode Azure Login Args 
- ManagedService []StatefulIdentities Node Azure Managed Service Identity Args 
- Name string
- Network
StatefulNode Azure Network Args 
- Os string
- OsDisk StatefulNode Azure Os Disk Args 
- OsDisk stringPersistence Mode 
- PreferredZone string
- ProximityPlacement []StatefulGroups Node Azure Proximity Placement Group Args 
- Region string
- ResourceGroup stringName 
- SchedulingTasks []StatefulNode Azure Scheduling Task Args 
- Secrets
[]StatefulNode Azure Secret Args 
- Security
StatefulNode Azure Security Args 
- ShouldPersist boolData Disks 
- ShouldPersist boolNetwork 
- ShouldPersist boolOs Disk 
- ShouldPersist boolVm 
- ShutdownScript string
- Signals
[]StatefulNode Azure Signal Args 
- Strategy
StatefulNode Azure Strategy Args 
- 
[]StatefulNode Azure Tag Args 
- UpdateStates []StatefulNode Azure Update State Args 
- UserData string
- VmName string
- VmName stringPrefix 
- VmSizes StatefulNode Azure Vm Sizes Args 
- Zones []string
- attachData List<StatefulDisks Node Azure Attach Data Disk> 
- bootDiagnostics List<StatefulNode Azure Boot Diagnostic> 
- customData String
- dataDisks List<StatefulNode Azure Data Disk> 
- dataDisks StringPersistence Mode 
- deletes
List<StatefulNode Azure Delete> 
- description String
- detachData List<StatefulDisks Node Azure Detach Data Disk> 
- extensions
List<StatefulNode Azure Extension> 
- health
StatefulNode Azure Health 
- image
StatefulNode Azure Image 
- importVms List<StatefulNode Azure Import Vm> 
- licenseType String
- loadBalancers List<StatefulNode Azure Load Balancer> 
- login
StatefulNode Azure Login 
- managedService List<StatefulIdentities Node Azure Managed Service Identity> 
- name String
- network
StatefulNode Azure Network 
- os String
- osDisk StatefulNode Azure Os Disk 
- osDisk StringPersistence Mode 
- preferredZone String
- proximityPlacement List<StatefulGroups Node Azure Proximity Placement Group> 
- region String
- resourceGroup StringName 
- schedulingTasks List<StatefulNode Azure Scheduling Task> 
- secrets
List<StatefulNode Azure Secret> 
- security
StatefulNode Azure Security 
- shouldPersist BooleanData Disks 
- shouldPersist BooleanNetwork 
- shouldPersist BooleanOs Disk 
- shouldPersist BooleanVm 
- shutdownScript String
- signals
List<StatefulNode Azure Signal> 
- strategy
StatefulNode Azure Strategy 
- 
List<StatefulNode Azure Tag> 
- updateStates List<StatefulNode Azure Update State> 
- userData String
- vmName String
- vmName StringPrefix 
- vmSizes StatefulNode Azure Vm Sizes 
- zones List<String>
- attachData StatefulDisks Node Azure Attach Data Disk[] 
- bootDiagnostics StatefulNode Azure Boot Diagnostic[] 
- customData string
- dataDisks StatefulNode Azure Data Disk[] 
- dataDisks stringPersistence Mode 
- deletes
StatefulNode Azure Delete[] 
- description string
- detachData StatefulDisks Node Azure Detach Data Disk[] 
- extensions
StatefulNode Azure Extension[] 
- health
StatefulNode Azure Health 
- image
StatefulNode Azure Image 
- importVms StatefulNode Azure Import Vm[] 
- licenseType string
- loadBalancers StatefulNode Azure Load Balancer[] 
- login
StatefulNode Azure Login 
- managedService StatefulIdentities Node Azure Managed Service Identity[] 
- name string
- network
StatefulNode Azure Network 
- os string
- osDisk StatefulNode Azure Os Disk 
- osDisk stringPersistence Mode 
- preferredZone string
- proximityPlacement StatefulGroups Node Azure Proximity Placement Group[] 
- region string
- resourceGroup stringName 
- schedulingTasks StatefulNode Azure Scheduling Task[] 
- secrets
StatefulNode Azure Secret[] 
- security
StatefulNode Azure Security 
- shouldPersist booleanData Disks 
- shouldPersist booleanNetwork 
- shouldPersist booleanOs Disk 
- shouldPersist booleanVm 
- shutdownScript string
- signals
StatefulNode Azure Signal[] 
- strategy
StatefulNode Azure Strategy 
- 
StatefulNode Azure Tag[] 
- updateStates StatefulNode Azure Update State[] 
- userData string
- vmName string
- vmName stringPrefix 
- vmSizes StatefulNode Azure Vm Sizes 
- zones string[]
- attach_data_ Sequence[Statefuldisks Node Azure Attach Data Disk Args] 
- boot_diagnostics Sequence[StatefulNode Azure Boot Diagnostic Args] 
- custom_data str
- data_disks Sequence[StatefulNode Azure Data Disk Args] 
- data_disks_ strpersistence_ mode 
- deletes
Sequence[StatefulNode Azure Delete Args] 
- description str
- detach_data_ Sequence[Statefuldisks Node Azure Detach Data Disk Args] 
- extensions
Sequence[StatefulNode Azure Extension Args] 
- health
StatefulNode Azure Health Args 
- image
StatefulNode Azure Image Args 
- import_vms Sequence[StatefulNode Azure Import Vm Args] 
- license_type str
- load_balancers Sequence[StatefulNode Azure Load Balancer Args] 
- login
StatefulNode Azure Login Args 
- managed_service_ Sequence[Statefulidentities Node Azure Managed Service Identity Args] 
- name str
- network
StatefulNode Azure Network Args 
- os str
- os_disk StatefulNode Azure Os Disk Args 
- os_disk_ strpersistence_ mode 
- preferred_zone str
- proximity_placement_ Sequence[Statefulgroups Node Azure Proximity Placement Group Args] 
- region str
- resource_group_ strname 
- scheduling_tasks Sequence[StatefulNode Azure Scheduling Task Args] 
- secrets
Sequence[StatefulNode Azure Secret Args] 
- security
StatefulNode Azure Security Args 
- should_persist_ booldata_ disks 
- should_persist_ boolnetwork 
- should_persist_ boolos_ disk 
- should_persist_ boolvm 
- shutdown_script str
- signals
Sequence[StatefulNode Azure Signal Args] 
- strategy
StatefulNode Azure Strategy Args 
- 
Sequence[StatefulNode Azure Tag Args] 
- update_states Sequence[StatefulNode Azure Update State Args] 
- user_data str
- vm_name str
- vm_name_ strprefix 
- vm_sizes StatefulNode Azure Vm Sizes Args 
- zones Sequence[str]
- attachData List<Property Map>Disks 
- bootDiagnostics List<Property Map>
- customData String
- dataDisks List<Property Map>
- dataDisks StringPersistence Mode 
- deletes List<Property Map>
- description String
- detachData List<Property Map>Disks 
- extensions List<Property Map>
- health Property Map
- image Property Map
- importVms List<Property Map>
- licenseType String
- loadBalancers List<Property Map>
- login Property Map
- managedService List<Property Map>Identities 
- name String
- network Property Map
- os String
- osDisk Property Map
- osDisk StringPersistence Mode 
- preferredZone String
- proximityPlacement List<Property Map>Groups 
- region String
- resourceGroup StringName 
- schedulingTasks List<Property Map>
- secrets List<Property Map>
- security Property Map
- shouldPersist BooleanData Disks 
- shouldPersist BooleanNetwork 
- shouldPersist BooleanOs Disk 
- shouldPersist BooleanVm 
- shutdownScript String
- signals List<Property Map>
- strategy Property Map
- List<Property Map>
- updateStates List<Property Map>
- userData String
- vmName String
- vmName StringPrefix 
- vmSizes Property Map
- zones List<String>
Supporting Types
StatefulNodeAzureAttachDataDisk, StatefulNodeAzureAttachDataDiskArgs            
- DataDisk stringName 
- DataDisk stringResource Group Name 
- SizeGb int
- StorageAccount stringType 
- Lun int
- Zone string
- DataDisk stringName 
- DataDisk stringResource Group Name 
- SizeGb int
- StorageAccount stringType 
- Lun int
- Zone string
- dataDisk StringName 
- dataDisk StringResource Group Name 
- sizeGb Integer
- storageAccount StringType 
- lun Integer
- zone String
- dataDisk stringName 
- dataDisk stringResource Group Name 
- sizeGb number
- storageAccount stringType 
- lun number
- zone string
- data_disk_ strname 
- data_disk_ strresource_ group_ name 
- size_gb int
- storage_account_ strtype 
- lun int
- zone str
- dataDisk StringName 
- dataDisk StringResource Group Name 
- sizeGb Number
- storageAccount StringType 
- lun Number
- zone String
StatefulNodeAzureBootDiagnostic, StatefulNodeAzureBootDiagnosticArgs          
- IsEnabled bool
- StorageUrl string
- Type string
- IsEnabled bool
- StorageUrl string
- Type string
- isEnabled Boolean
- storageUrl String
- type String
- isEnabled boolean
- storageUrl string
- type string
- is_enabled bool
- storage_url str
- type str
- isEnabled Boolean
- storageUrl String
- type String
StatefulNodeAzureDataDisk, StatefulNodeAzureDataDiskArgs          
StatefulNodeAzureDelete, StatefulNodeAzureDeleteArgs        
- shouldTerminate BooleanVm 
- diskShould BooleanDeallocate 
- diskTtl IntegerIn Hours 
- networkShould BooleanDeallocate 
- networkTtl IntegerIn Hours 
- publicIp BooleanShould Deallocate 
- publicIp IntegerTtl In Hours 
- shouldDeregister BooleanFrom Lb 
- shouldRevert BooleanTo Od 
- snapshotShould BooleanDeallocate 
- snapshotTtl IntegerIn Hours 
- shouldTerminate booleanVm 
- diskShould booleanDeallocate 
- diskTtl numberIn Hours 
- networkShould booleanDeallocate 
- networkTtl numberIn Hours 
- publicIp booleanShould Deallocate 
- publicIp numberTtl In Hours 
- shouldDeregister booleanFrom Lb 
- shouldRevert booleanTo Od 
- snapshotShould booleanDeallocate 
- snapshotTtl numberIn Hours 
- shouldTerminate BooleanVm 
- diskShould BooleanDeallocate 
- diskTtl NumberIn Hours 
- networkShould BooleanDeallocate 
- networkTtl NumberIn Hours 
- publicIp BooleanShould Deallocate 
- publicIp NumberTtl In Hours 
- shouldDeregister BooleanFrom Lb 
- shouldRevert BooleanTo Od 
- snapshotShould BooleanDeallocate 
- snapshotTtl NumberIn Hours 
StatefulNodeAzureDetachDataDisk, StatefulNodeAzureDetachDataDiskArgs            
- DataDisk stringName 
- DataDisk stringResource Group Name 
- ShouldDeallocate bool
- TtlIn intHours 
- DataDisk stringName 
- DataDisk stringResource Group Name 
- ShouldDeallocate bool
- TtlIn intHours 
- dataDisk StringName 
- dataDisk StringResource Group Name 
- shouldDeallocate Boolean
- ttlIn IntegerHours 
- dataDisk stringName 
- dataDisk stringResource Group Name 
- shouldDeallocate boolean
- ttlIn numberHours 
- dataDisk StringName 
- dataDisk StringResource Group Name 
- shouldDeallocate Boolean
- ttlIn NumberHours 
StatefulNodeAzureExtension, StatefulNodeAzureExtensionArgs        
- ApiVersion string
- MinorVersion boolAuto Upgrade 
- Name string
- Publisher string
- Type string
- ProtectedSettings Dictionary<string, string>
- PublicSettings Dictionary<string, string>
- ApiVersion string
- MinorVersion boolAuto Upgrade 
- Name string
- Publisher string
- Type string
- ProtectedSettings map[string]string
- PublicSettings map[string]string
- apiVersion String
- minorVersion BooleanAuto Upgrade 
- name String
- publisher String
- type String
- protectedSettings Map<String,String>
- publicSettings Map<String,String>
- apiVersion string
- minorVersion booleanAuto Upgrade 
- name string
- publisher string
- type string
- protectedSettings {[key: string]: string}
- publicSettings {[key: string]: string}
- api_version str
- minor_version_ boolauto_ upgrade 
- name str
- publisher str
- type str
- protected_settings Mapping[str, str]
- public_settings Mapping[str, str]
- apiVersion String
- minorVersion BooleanAuto Upgrade 
- name String
- publisher String
- type String
- protectedSettings Map<String>
- publicSettings Map<String>
StatefulNodeAzureHealth, StatefulNodeAzureHealthArgs        
- AutoHealing bool
- HealthCheck List<string>Types 
- GracePeriod int
- UnhealthyDuration int
- AutoHealing bool
- HealthCheck []stringTypes 
- GracePeriod int
- UnhealthyDuration int
- autoHealing Boolean
- healthCheck List<String>Types 
- gracePeriod Integer
- unhealthyDuration Integer
- autoHealing boolean
- healthCheck string[]Types 
- gracePeriod number
- unhealthyDuration number
- auto_healing bool
- health_check_ Sequence[str]types 
- grace_period int
- unhealthy_duration int
- autoHealing Boolean
- healthCheck List<String>Types 
- gracePeriod Number
- unhealthyDuration Number
StatefulNodeAzureImage, StatefulNodeAzureImageArgs        
StatefulNodeAzureImageCustomImage, StatefulNodeAzureImageCustomImageArgs            
- CustomImage stringResource Group Name 
- Name string
- CustomImage stringResource Group Name 
- Name string
- customImage StringResource Group Name 
- name String
- customImage stringResource Group Name 
- name string
- customImage StringResource Group Name 
- name String
StatefulNodeAzureImageGallery, StatefulNodeAzureImageGalleryArgs          
- GalleryName string
- GalleryResource stringGroup Name 
- ImageName string
- VersionName string
- SpotAccount stringId 
- GalleryName string
- GalleryResource stringGroup Name 
- ImageName string
- VersionName string
- SpotAccount stringId 
- galleryName String
- galleryResource StringGroup Name 
- imageName String
- versionName String
- spotAccount StringId 
- galleryName string
- galleryResource stringGroup Name 
- imageName string
- versionName string
- spotAccount stringId 
- gallery_name str
- gallery_resource_ strgroup_ name 
- image_name str
- version_name str
- spot_account_ strid 
- galleryName String
- galleryResource StringGroup Name 
- imageName String
- versionName String
- spotAccount StringId 
StatefulNodeAzureImageMarketplaceImage, StatefulNodeAzureImageMarketplaceImageArgs            
StatefulNodeAzureImportVm, StatefulNodeAzureImportVmArgs          
- OriginalVm stringName 
- ResourceGroup stringName 
- DrainingTimeout int
- ResourcesRetention intTime 
- OriginalVm stringName 
- ResourceGroup stringName 
- DrainingTimeout int
- ResourcesRetention intTime 
- originalVm StringName 
- resourceGroup StringName 
- drainingTimeout Integer
- resourcesRetention IntegerTime 
- originalVm stringName 
- resourceGroup stringName 
- drainingTimeout number
- resourcesRetention numberTime 
- originalVm StringName 
- resourceGroup StringName 
- drainingTimeout Number
- resourcesRetention NumberTime 
StatefulNodeAzureLoadBalancer, StatefulNodeAzureLoadBalancerArgs          
- BackendPool List<string>Names 
- Name string
- ResourceGroup stringName 
- Type string
- Sku string
- BackendPool []stringNames 
- Name string
- ResourceGroup stringName 
- Type string
- Sku string
- backendPool List<String>Names 
- name String
- resourceGroup StringName 
- type String
- sku String
- backendPool string[]Names 
- name string
- resourceGroup stringName 
- type string
- sku string
- backend_pool_ Sequence[str]names 
- name str
- resource_group_ strname 
- type str
- sku str
- backendPool List<String>Names 
- name String
- resourceGroup StringName 
- type String
- sku String
StatefulNodeAzureLogin, StatefulNodeAzureLoginArgs        
- UserName string
- Password string
- SshPublic stringKey 
- UserName string
- Password string
- SshPublic stringKey 
- userName String
- password String
- sshPublic StringKey 
- userName string
- password string
- sshPublic stringKey 
- user_name str
- password str
- ssh_public_ strkey 
- userName String
- password String
- sshPublic StringKey 
StatefulNodeAzureManagedServiceIdentity, StatefulNodeAzureManagedServiceIdentityArgs            
- Name string
- ResourceGroup stringName 
- Name string
- ResourceGroup stringName 
- name String
- resourceGroup StringName 
- name string
- resourceGroup stringName 
- name str
- resource_group_ strname 
- name String
- resourceGroup StringName 
StatefulNodeAzureNetwork, StatefulNodeAzureNetworkArgs        
StatefulNodeAzureNetworkNetworkInterface, StatefulNodeAzureNetworkNetworkInterfaceArgs            
- IsPrimary bool
- SubnetName string
- AdditionalIp List<Pulumi.Configurations Spot Inst. Inputs. Stateful Node Azure Network Network Interface Additional Ip Configuration> 
- ApplicationSecurity List<Pulumi.Groups Spot Inst. Inputs. Stateful Node Azure Network Network Interface Application Security Group> 
- AssignPublic boolIp 
- EnableIp boolForwarding 
- NetworkSecurity List<Pulumi.Groups Spot Inst. Inputs. Stateful Node Azure Network Network Interface Network Security Group> 
- PrivateIp List<string>Addresses 
- PublicIp stringSku 
- PublicIps List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Network Network Interface Public Ip> 
- IsPrimary bool
- SubnetName string
- AdditionalIp []StatefulConfigurations Node Azure Network Network Interface Additional Ip Configuration 
- ApplicationSecurity []StatefulGroups Node Azure Network Network Interface Application Security Group 
- AssignPublic boolIp 
- EnableIp boolForwarding 
- NetworkSecurity []StatefulGroups Node Azure Network Network Interface Network Security Group 
- PrivateIp []stringAddresses 
- PublicIp stringSku 
- PublicIps []StatefulNode Azure Network Network Interface Public Ip 
- isPrimary Boolean
- subnetName String
- additionalIp List<StatefulConfigurations Node Azure Network Network Interface Additional Ip Configuration> 
- applicationSecurity List<StatefulGroups Node Azure Network Network Interface Application Security Group> 
- assignPublic BooleanIp 
- enableIp BooleanForwarding 
- networkSecurity List<StatefulGroups Node Azure Network Network Interface Network Security Group> 
- privateIp List<String>Addresses 
- publicIp StringSku 
- publicIps List<StatefulNode Azure Network Network Interface Public Ip> 
- isPrimary boolean
- subnetName string
- additionalIp StatefulConfigurations Node Azure Network Network Interface Additional Ip Configuration[] 
- applicationSecurity StatefulGroups Node Azure Network Network Interface Application Security Group[] 
- assignPublic booleanIp 
- enableIp booleanForwarding 
- networkSecurity StatefulGroups Node Azure Network Network Interface Network Security Group[] 
- privateIp string[]Addresses 
- publicIp stringSku 
- publicIps StatefulNode Azure Network Network Interface Public Ip[] 
- is_primary bool
- subnet_name str
- additional_ip_ Sequence[Statefulconfigurations Node Azure Network Network Interface Additional Ip Configuration] 
- application_security_ Sequence[Statefulgroups Node Azure Network Network Interface Application Security Group] 
- assign_public_ boolip 
- enable_ip_ boolforwarding 
- network_security_ Sequence[Statefulgroups Node Azure Network Network Interface Network Security Group] 
- private_ip_ Sequence[str]addresses 
- public_ip_ strsku 
- public_ips Sequence[StatefulNode Azure Network Network Interface Public Ip] 
StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfiguration, StatefulNodeAzureNetworkNetworkInterfaceAdditionalIpConfigurationArgs                  
- Name string
- PrivateIp stringAddress Version 
- Name string
- PrivateIp stringAddress Version 
- name String
- privateIp StringAddress Version 
- name string
- privateIp stringAddress Version 
- name str
- private_ip_ straddress_ version 
- name String
- privateIp StringAddress Version 
StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroup, StatefulNodeAzureNetworkNetworkInterfaceApplicationSecurityGroupArgs                  
- Name string
- NetworkResource stringGroup Name 
- Name string
- NetworkResource stringGroup Name 
- name String
- networkResource StringGroup Name 
- name string
- networkResource stringGroup Name 
- name str
- network_resource_ strgroup_ name 
- name String
- networkResource StringGroup Name 
StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroup, StatefulNodeAzureNetworkNetworkInterfaceNetworkSecurityGroupArgs                  
- Name string
- NetworkResource stringGroup Name 
- Name string
- NetworkResource stringGroup Name 
- name String
- networkResource StringGroup Name 
- name string
- networkResource stringGroup Name 
- name str
- network_resource_ strgroup_ name 
- name String
- networkResource StringGroup Name 
StatefulNodeAzureNetworkNetworkInterfacePublicIp, StatefulNodeAzureNetworkNetworkInterfacePublicIpArgs                
- Name string
- NetworkResource stringGroup Name 
- Name string
- NetworkResource stringGroup Name 
- name String
- networkResource StringGroup Name 
- name string
- networkResource stringGroup Name 
- name str
- network_resource_ strgroup_ name 
- name String
- networkResource StringGroup Name 
StatefulNodeAzureOsDisk, StatefulNodeAzureOsDiskArgs          
StatefulNodeAzureProximityPlacementGroup, StatefulNodeAzureProximityPlacementGroupArgs            
- Name string
- ResourceGroup stringName 
- Name string
- ResourceGroup stringName 
- name String
- resourceGroup StringName 
- name string
- resourceGroup stringName 
- name str
- resource_group_ strname 
- name String
- resourceGroup StringName 
StatefulNodeAzureSchedulingTask, StatefulNodeAzureSchedulingTaskArgs          
- CronExpression string
- IsEnabled bool
- Type string
- CronExpression string
- IsEnabled bool
- Type string
- cronExpression String
- isEnabled Boolean
- type String
- cronExpression string
- isEnabled boolean
- type string
- cron_expression str
- is_enabled bool
- type str
- cronExpression String
- isEnabled Boolean
- type String
StatefulNodeAzureSecret, StatefulNodeAzureSecretArgs        
StatefulNodeAzureSecretSourceVault, StatefulNodeAzureSecretSourceVaultArgs            
- Name string
- ResourceGroup stringName 
- Name string
- ResourceGroup stringName 
- name String
- resourceGroup StringName 
- name string
- resourceGroup stringName 
- name str
- resource_group_ strname 
- name String
- resourceGroup StringName 
StatefulNodeAzureSecretVaultCertificate, StatefulNodeAzureSecretVaultCertificateArgs            
- CertificateStore string
- CertificateUrl string
- CertificateStore string
- CertificateUrl string
- certificateStore String
- certificateUrl String
- certificateStore string
- certificateUrl string
- certificate_store str
- certificate_url str
- certificateStore String
- certificateUrl String
StatefulNodeAzureSecurity, StatefulNodeAzureSecurityArgs        
- ConfidentialOs boolDisk Encryption 
- EncryptionAt boolHost 
- SecureBoot boolEnabled 
- SecurityType string
- VtpmEnabled bool
- ConfidentialOs boolDisk Encryption 
- EncryptionAt boolHost 
- SecureBoot boolEnabled 
- SecurityType string
- VtpmEnabled bool
- confidentialOs BooleanDisk Encryption 
- encryptionAt BooleanHost 
- secureBoot BooleanEnabled 
- securityType String
- vtpmEnabled Boolean
- confidentialOs booleanDisk Encryption 
- encryptionAt booleanHost 
- secureBoot booleanEnabled 
- securityType string
- vtpmEnabled boolean
- confidential_os_ booldisk_ encryption 
- encryption_at_ boolhost 
- secure_boot_ boolenabled 
- security_type str
- vtpm_enabled bool
- confidentialOs BooleanDisk Encryption 
- encryptionAt BooleanHost 
- secureBoot BooleanEnabled 
- securityType String
- vtpmEnabled Boolean
StatefulNodeAzureSignal, StatefulNodeAzureSignalArgs        
StatefulNodeAzureStrategy, StatefulNodeAzureStrategyArgs        
- FallbackTo boolOn Demand 
- AvailabilityVs intCost 
- CapacityReservations List<Pulumi.Spot Inst. Inputs. Stateful Node Azure Strategy Capacity Reservation> 
- DrainingTimeout int
- OdWindows List<string>
- OptimizationWindows List<string>
- PreferredLife stringCycle 
- RevertTo Pulumi.Spot Spot Inst. Inputs. Stateful Node Azure Strategy Revert To Spot 
- VmAdmins List<string>
- fallbackTo BooleanOn Demand 
- availabilityVs IntegerCost 
- capacityReservations List<StatefulNode Azure Strategy Capacity Reservation> 
- drainingTimeout Integer
- odWindows List<String>
- optimizationWindows List<String>
- preferredLife StringCycle 
- revertTo StatefulSpot Node Azure Strategy Revert To Spot 
- vmAdmins List<String>
- fallbackTo booleanOn Demand 
- availabilityVs numberCost 
- capacityReservations StatefulNode Azure Strategy Capacity Reservation[] 
- drainingTimeout number
- odWindows string[]
- optimizationWindows string[]
- preferredLife stringCycle 
- revertTo StatefulSpot Node Azure Strategy Revert To Spot 
- vmAdmins string[]
- fallback_to_ boolon_ demand 
- availability_vs_ intcost 
- capacity_reservations Sequence[StatefulNode Azure Strategy Capacity Reservation] 
- draining_timeout int
- od_windows Sequence[str]
- optimization_windows Sequence[str]
- preferred_life_ strcycle 
- revert_to_ Statefulspot Node Azure Strategy Revert To Spot 
- vm_admins Sequence[str]
- fallbackTo BooleanOn Demand 
- availabilityVs NumberCost 
- capacityReservations List<Property Map>
- drainingTimeout Number
- odWindows List<String>
- optimizationWindows List<String>
- preferredLife StringCycle 
- revertTo Property MapSpot 
- vmAdmins List<String>
StatefulNodeAzureStrategyCapacityReservation, StatefulNodeAzureStrategyCapacityReservationArgs            
StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroup, StatefulNodeAzureStrategyCapacityReservationCapacityReservationGroupArgs                  
- CrgName string
- CrgResource stringGroup Name 
- CrgShould boolPrioritize 
- CrgName string
- CrgResource stringGroup Name 
- CrgShould boolPrioritize 
- crgName String
- crgResource StringGroup Name 
- crgShould BooleanPrioritize 
- crgName string
- crgResource stringGroup Name 
- crgShould booleanPrioritize 
- crg_name str
- crg_resource_ strgroup_ name 
- crg_should_ boolprioritize 
- crgName String
- crgResource StringGroup Name 
- crgShould BooleanPrioritize 
StatefulNodeAzureStrategyRevertToSpot, StatefulNodeAzureStrategyRevertToSpotArgs              
- PerformAt string
- PerformAt string
- performAt String
- performAt string
- perform_at str
- performAt String
StatefulNodeAzureTag, StatefulNodeAzureTagArgs        
StatefulNodeAzureUpdateState, StatefulNodeAzureUpdateStateArgs          
- State string
- State string
- state String
- state string
- state str
- state String
StatefulNodeAzureVmSizes, StatefulNodeAzureVmSizesArgs          
- OdSizes List<string>
- ExcludedVm List<string>Sizes 
- PreferredSpot List<string>Sizes 
- SpotSize Pulumi.Attributes Spot Inst. Inputs. Stateful Node Azure Vm Sizes Spot Size Attributes 
- SpotSizes List<string>
- OdSizes []string
- ExcludedVm []stringSizes 
- PreferredSpot []stringSizes 
- SpotSize StatefulAttributes Node Azure Vm Sizes Spot Size Attributes 
- SpotSizes []string
- odSizes List<String>
- excludedVm List<String>Sizes 
- preferredSpot List<String>Sizes 
- spotSize StatefulAttributes Node Azure Vm Sizes Spot Size Attributes 
- spotSizes List<String>
- odSizes string[]
- excludedVm string[]Sizes 
- preferredSpot string[]Sizes 
- spotSize StatefulAttributes Node Azure Vm Sizes Spot Size Attributes 
- spotSizes string[]
- od_sizes Sequence[str]
- excluded_vm_ Sequence[str]sizes 
- preferred_spot_ Sequence[str]sizes 
- spot_size_ Statefulattributes Node Azure Vm Sizes Spot Size Attributes 
- spot_sizes Sequence[str]
- odSizes List<String>
- excludedVm List<String>Sizes 
- preferredSpot List<String>Sizes 
- spotSize Property MapAttributes 
- spotSizes List<String>
StatefulNodeAzureVmSizesSpotSizeAttributes, StatefulNodeAzureVmSizesSpotSizeAttributesArgs                
- MaxCpu int
- MaxMemory int
- MaxStorage int
- MinCpu int
- MinMemory int
- MinStorage int
- MaxCpu int
- MaxMemory int
- MaxStorage int
- MinCpu int
- MinMemory int
- MinStorage int
- maxCpu Integer
- maxMemory Integer
- maxStorage Integer
- minCpu Integer
- minMemory Integer
- minStorage Integer
- maxCpu number
- maxMemory number
- maxStorage number
- minCpu number
- minMemory number
- minStorage number
- max_cpu int
- max_memory int
- max_storage int
- min_cpu int
- min_memory int
- min_storage int
- maxCpu Number
- maxMemory Number
- maxStorage Number
- minCpu Number
- minMemory Number
- minStorage Number
Package Details
- Repository
- Spotinst pulumi/pulumi-spotinst
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the spotinstTerraform Provider.