@pulumi/azure-native
Version:
[](https://slack.pulumi.com) [](https://npmjs.com/package/@pulumi/azure-native) [ • 25.4 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
* Describes a node type in the cluster, each node type represents sub set of nodes in the cluster.
*
* Uses Azure REST API version 2024-04-01. In version 2.x of the Azure Native provider, it used API version 2023-03-01-preview.
*
* Other available API versions: 2023-03-01-preview, 2023-07-01-preview, 2023-09-01-preview, 2023-11-01-preview, 2023-12-01-preview, 2024-02-01-preview, 2024-06-01-preview, 2024-09-01-preview, 2024-11-01-preview, 2025-03-01-preview, 2025-06-01-preview. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native servicefabric [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
*/
export declare class NodeType extends pulumi.CustomResource {
/**
* Get an existing NodeType resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): NodeType;
/**
* Returns true if the given object is an instance of NodeType. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is NodeType;
/**
* Additional managed data disks.
*/
readonly additionalDataDisks: pulumi.Output<outputs.servicefabric.VmssDataDiskResponse[] | undefined>;
/**
* Specifies the settings for any additional secondary network interfaces to attach to the node type.
*/
readonly additionalNetworkInterfaceConfigurations: pulumi.Output<outputs.servicefabric.AdditionalNetworkInterfaceConfigurationResponse[] | undefined>;
/**
* The range of ports from which cluster assigned port to Service Fabric applications.
*/
readonly applicationPorts: pulumi.Output<outputs.servicefabric.EndpointRangeDescriptionResponse | undefined>;
/**
* The Azure API version of the resource.
*/
readonly azureApiVersion: pulumi.Output<string>;
/**
* The capacity tags applied to the nodes in the node type, the cluster resource manager uses these tags to understand how much resource a node has.
*/
readonly capacities: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Specifies the computer name prefix. Limited to 9 characters. If specified, allows for a longer name to be specified for the node type name.
*/
readonly computerNamePrefix: pulumi.Output<string | undefined>;
/**
* Managed data disk letter. It can not use the reserved letter C or D and it can not change after created.
*/
readonly dataDiskLetter: pulumi.Output<string | undefined>;
/**
* Disk size for the managed disk attached to the vms on the node type in GBs.
*/
readonly dataDiskSizeGB: pulumi.Output<number | undefined>;
/**
* Managed data disk type. Specifies the storage account type for the managed disk
*/
readonly dataDiskType: pulumi.Output<string | undefined>;
/**
* Specifies the resource id of the DSCP configuration to apply to the node type network interface.
*/
readonly dscpConfigurationId: pulumi.Output<string | undefined>;
/**
* Specifies whether the network interface is accelerated networking-enabled.
*/
readonly enableAcceleratedNetworking: pulumi.Output<boolean | undefined>;
/**
* Enable or disable the Host Encryption for the virtual machines on the node type. This will enable the encryption for all the disks including Resource/Temp disk at host itself. Default: The Encryption at host will be disabled unless this property is set to true for the resource.
*/
readonly enableEncryptionAtHost: pulumi.Output<boolean | undefined>;
/**
* Specifies whether each node is allocated its own public IPv4 address. This is only supported on secondary node types with custom Load Balancers.
*/
readonly enableNodePublicIP: pulumi.Output<boolean | undefined>;
/**
* Specifies whether each node is allocated its own public IPv6 address. This is only supported on secondary node types with custom Load Balancers.
*/
readonly enableNodePublicIPv6: pulumi.Output<boolean | undefined>;
/**
* Specifies whether the node type should be overprovisioned. It is only allowed for stateless node types.
*/
readonly enableOverProvisioning: pulumi.Output<boolean | undefined>;
/**
* The range of ephemeral ports that nodes in this node type should be configured with.
*/
readonly ephemeralPorts: pulumi.Output<outputs.servicefabric.EndpointRangeDescriptionResponse | undefined>;
/**
* Specifies the eviction policy for virtual machines in a SPOT node type. Default is Delete.
*/
readonly evictionPolicy: pulumi.Output<string | undefined>;
/**
* Indicates the node type uses its own frontend configurations instead of the default one for the cluster. This setting can only be specified for non-primary node types and can not be added or removed after the node type is created.
*/
readonly frontendConfigurations: pulumi.Output<outputs.servicefabric.FrontendConfigurationResponse[] | undefined>;
/**
* Specifies the full host group resource Id. This property is used for deploying on azure dedicated hosts.
*/
readonly hostGroupId: pulumi.Output<string | undefined>;
/**
* Indicates the Service Fabric system services for the cluster will run on this node type. This setting cannot be changed once the node type is created.
*/
readonly isPrimary: pulumi.Output<boolean>;
/**
* Indicates whether the node type will be Spot Virtual Machines. Azure will allocate the VMs if there is capacity available and the VMs can be evicted at any time.
*/
readonly isSpotVM: pulumi.Output<boolean | undefined>;
/**
* Indicates if the node type can only host Stateless workloads.
*/
readonly isStateless: pulumi.Output<boolean | undefined>;
/**
* Indicates if scale set associated with the node type can be composed of multiple placement groups.
*/
readonly multiplePlacementGroups: pulumi.Output<boolean | undefined>;
/**
* Azure resource name.
*/
readonly name: pulumi.Output<string>;
/**
* Specifies the NAT configuration on default public Load Balancer for the node type. This is only supported for node types use the default public Load Balancer.
*/
readonly natConfigurations: pulumi.Output<outputs.servicefabric.NodeTypeNatConfigResponse[] | undefined>;
/**
* Specifies the resource id of a NAT Gateway to attach to the subnet of this node type. Node type must use custom load balancer.
*/
readonly natGatewayId: pulumi.Output<string | undefined>;
/**
* The Network Security Rules for this node type. This setting can only be specified for node types that are configured with frontend configurations.
*/
readonly networkSecurityRules: pulumi.Output<outputs.servicefabric.NetworkSecurityRuleResponse[] | undefined>;
/**
* The placement tags applied to nodes in the node type, which can be used to indicate where certain services (workload) should run.
*/
readonly placementProperties: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The provisioning state of the node type resource.
*/
readonly provisioningState: pulumi.Output<string>;
/**
* Specifies whether secure boot should be enabled on the nodeType. Can only be used with TrustedLaunch SecurityType
*/
readonly secureBootEnabled: pulumi.Output<boolean | undefined>;
/**
* Specifies the security type of the nodeType. Only Standard and TrustedLaunch are currently supported
*/
readonly securityType: pulumi.Output<string | undefined>;
/**
* Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.
*/
readonly serviceArtifactReferenceId: pulumi.Output<string | undefined>;
/**
* The node type sku.
*/
readonly sku: pulumi.Output<outputs.servicefabric.NodeTypeSkuResponse | undefined>;
/**
* Indicates the time duration after which the platform will not try to restore the VMSS SPOT instances specified as ISO 8601.
*/
readonly spotRestoreTimeout: pulumi.Output<string | undefined>;
/**
* Indicates the resource id of the subnet for the node type.
*/
readonly subnetId: pulumi.Output<string | undefined>;
/**
* Metadata pertaining to creation and last modification of the resource.
*/
readonly systemData: pulumi.Output<outputs.servicefabric.SystemDataResponse>;
/**
* Azure resource tags.
*/
readonly tags: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Azure resource type.
*/
readonly type: pulumi.Output<string>;
/**
* Specifies whether the use public load balancer. If not specified and the node type doesn't have its own frontend configuration, it will be attached to the default load balancer. If the node type uses its own Load balancer and useDefaultPublicLoadBalancer is true, then the frontend has to be an Internal Load Balancer. If the node type uses its own Load balancer and useDefaultPublicLoadBalancer is false or not set, then the custom load balancer must include a public load balancer to provide outbound connectivity.
*/
readonly useDefaultPublicLoadBalancer: pulumi.Output<boolean | undefined>;
/**
* Indicates whether to use ephemeral os disk. The sku selected on the vmSize property needs to support this feature.
*/
readonly useEphemeralOSDisk: pulumi.Output<boolean | undefined>;
/**
* Specifies whether to use the temporary disk for the service fabric data root, in which case no managed data disk will be attached and the temporary disk will be used. It is only allowed for stateless node types.
*/
readonly useTempDataDisk: pulumi.Output<boolean | undefined>;
/**
* Set of extensions that should be installed onto the virtual machines.
*/
readonly vmExtensions: pulumi.Output<outputs.servicefabric.VMSSExtensionResponse[] | undefined>;
/**
* The offer type of the Azure Virtual Machines Marketplace image. For example, UbuntuServer or WindowsServer.
*/
readonly vmImageOffer: pulumi.Output<string | undefined>;
/**
* Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
*/
readonly vmImagePlan: pulumi.Output<outputs.servicefabric.VmImagePlanResponse | undefined>;
/**
* The publisher of the Azure Virtual Machines Marketplace image. For example, Canonical or MicrosoftWindowsServer.
*/
readonly vmImagePublisher: pulumi.Output<string | undefined>;
/**
* Indicates the resource id of the vm image. This parameter is used for custom vm image.
*/
readonly vmImageResourceId: pulumi.Output<string | undefined>;
/**
* The SKU of the Azure Virtual Machines Marketplace image. For example, 14.04.0-LTS or 2012-R2-Datacenter.
*/
readonly vmImageSku: pulumi.Output<string | undefined>;
/**
* The version of the Azure Virtual Machines Marketplace image. A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'.
*/
readonly vmImageVersion: pulumi.Output<string | undefined>;
/**
* The number of nodes in the node type. <br /><br />**Values:** <br />-1 - Use when auto scale rules are configured or sku.capacity is defined <br /> 0 - Not supported <br /> >0 - Use for manual scale.
*/
readonly vmInstanceCount: pulumi.Output<number>;
/**
* Identities to assign to the virtual machine scale set under the node type.
*/
readonly vmManagedIdentity: pulumi.Output<outputs.servicefabric.VmManagedIdentityResponse | undefined>;
/**
* The secrets to install in the virtual machines.
*/
readonly vmSecrets: pulumi.Output<outputs.servicefabric.VaultSecretGroupResponse[] | undefined>;
/**
* Specifies the actions to be performed on the vms before bootstrapping the service fabric runtime.
*/
readonly vmSetupActions: pulumi.Output<string[] | undefined>;
/**
* Indicates the resource id of the vm shared galleries image. This parameter is used for custom vm image.
*/
readonly vmSharedGalleryImageId: pulumi.Output<string | undefined>;
/**
* The size of virtual machines in the pool. All virtual machines in a pool are the same size. For example, Standard_D3.
*/
readonly vmSize: pulumi.Output<string | undefined>;
/**
* Specifies the availability zones where the node type would span across. If the cluster is not spanning across availability zones, initiates az migration for the cluster.
*/
readonly zones: pulumi.Output<string[] | undefined>;
/**
* Create a NodeType resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: NodeTypeArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* The set of arguments for constructing a NodeType resource.
*/
export interface NodeTypeArgs {
/**
* Additional managed data disks.
*/
additionalDataDisks?: pulumi.Input<pulumi.Input<inputs.servicefabric.VmssDataDiskArgs>[]>;
/**
* Specifies the settings for any additional secondary network interfaces to attach to the node type.
*/
additionalNetworkInterfaceConfigurations?: pulumi.Input<pulumi.Input<inputs.servicefabric.AdditionalNetworkInterfaceConfigurationArgs>[]>;
/**
* The range of ports from which cluster assigned port to Service Fabric applications.
*/
applicationPorts?: pulumi.Input<inputs.servicefabric.EndpointRangeDescriptionArgs>;
/**
* The capacity tags applied to the nodes in the node type, the cluster resource manager uses these tags to understand how much resource a node has.
*/
capacities?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The name of the cluster resource.
*/
clusterName: pulumi.Input<string>;
/**
* Specifies the computer name prefix. Limited to 9 characters. If specified, allows for a longer name to be specified for the node type name.
*/
computerNamePrefix?: pulumi.Input<string>;
/**
* Managed data disk letter. It can not use the reserved letter C or D and it can not change after created.
*/
dataDiskLetter?: pulumi.Input<string>;
/**
* Disk size for the managed disk attached to the vms on the node type in GBs.
*/
dataDiskSizeGB?: pulumi.Input<number>;
/**
* Managed data disk type. Specifies the storage account type for the managed disk
*/
dataDiskType?: pulumi.Input<string | enums.servicefabric.DiskType>;
/**
* Specifies the resource id of the DSCP configuration to apply to the node type network interface.
*/
dscpConfigurationId?: pulumi.Input<string>;
/**
* Specifies whether the network interface is accelerated networking-enabled.
*/
enableAcceleratedNetworking?: pulumi.Input<boolean>;
/**
* Enable or disable the Host Encryption for the virtual machines on the node type. This will enable the encryption for all the disks including Resource/Temp disk at host itself. Default: The Encryption at host will be disabled unless this property is set to true for the resource.
*/
enableEncryptionAtHost?: pulumi.Input<boolean>;
/**
* Specifies whether each node is allocated its own public IPv4 address. This is only supported on secondary node types with custom Load Balancers.
*/
enableNodePublicIP?: pulumi.Input<boolean>;
/**
* Specifies whether each node is allocated its own public IPv6 address. This is only supported on secondary node types with custom Load Balancers.
*/
enableNodePublicIPv6?: pulumi.Input<boolean>;
/**
* Specifies whether the node type should be overprovisioned. It is only allowed for stateless node types.
*/
enableOverProvisioning?: pulumi.Input<boolean>;
/**
* The range of ephemeral ports that nodes in this node type should be configured with.
*/
ephemeralPorts?: pulumi.Input<inputs.servicefabric.EndpointRangeDescriptionArgs>;
/**
* Specifies the eviction policy for virtual machines in a SPOT node type. Default is Delete.
*/
evictionPolicy?: pulumi.Input<string | enums.servicefabric.EvictionPolicyType>;
/**
* Indicates the node type uses its own frontend configurations instead of the default one for the cluster. This setting can only be specified for non-primary node types and can not be added or removed after the node type is created.
*/
frontendConfigurations?: pulumi.Input<pulumi.Input<inputs.servicefabric.FrontendConfigurationArgs>[]>;
/**
* Specifies the full host group resource Id. This property is used for deploying on azure dedicated hosts.
*/
hostGroupId?: pulumi.Input<string>;
/**
* Indicates the Service Fabric system services for the cluster will run on this node type. This setting cannot be changed once the node type is created.
*/
isPrimary: pulumi.Input<boolean>;
/**
* Indicates whether the node type will be Spot Virtual Machines. Azure will allocate the VMs if there is capacity available and the VMs can be evicted at any time.
*/
isSpotVM?: pulumi.Input<boolean>;
/**
* Indicates if the node type can only host Stateless workloads.
*/
isStateless?: pulumi.Input<boolean>;
/**
* Indicates if scale set associated with the node type can be composed of multiple placement groups.
*/
multiplePlacementGroups?: pulumi.Input<boolean>;
/**
* Specifies the NAT configuration on default public Load Balancer for the node type. This is only supported for node types use the default public Load Balancer.
*/
natConfigurations?: pulumi.Input<pulumi.Input<inputs.servicefabric.NodeTypeNatConfigArgs>[]>;
/**
* Specifies the resource id of a NAT Gateway to attach to the subnet of this node type. Node type must use custom load balancer.
*/
natGatewayId?: pulumi.Input<string>;
/**
* The Network Security Rules for this node type. This setting can only be specified for node types that are configured with frontend configurations.
*/
networkSecurityRules?: pulumi.Input<pulumi.Input<inputs.servicefabric.NetworkSecurityRuleArgs>[]>;
/**
* The name of the node type.
*/
nodeTypeName?: pulumi.Input<string>;
/**
* The placement tags applied to nodes in the node type, which can be used to indicate where certain services (workload) should run.
*/
placementProperties?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The name of the resource group.
*/
resourceGroupName: pulumi.Input<string>;
/**
* Specifies whether secure boot should be enabled on the nodeType. Can only be used with TrustedLaunch SecurityType
*/
secureBootEnabled?: pulumi.Input<boolean>;
/**
* Specifies the security type of the nodeType. Only Standard and TrustedLaunch are currently supported
*/
securityType?: pulumi.Input<string | enums.servicefabric.SecurityType>;
/**
* Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.
*/
serviceArtifactReferenceId?: pulumi.Input<string>;
/**
* The node type sku.
*/
sku?: pulumi.Input<inputs.servicefabric.NodeTypeSkuArgs>;
/**
* Indicates the time duration after which the platform will not try to restore the VMSS SPOT instances specified as ISO 8601.
*/
spotRestoreTimeout?: pulumi.Input<string>;
/**
* Indicates the resource id of the subnet for the node type.
*/
subnetId?: pulumi.Input<string>;
/**
* Azure resource tags.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies whether the use public load balancer. If not specified and the node type doesn't have its own frontend configuration, it will be attached to the default load balancer. If the node type uses its own Load balancer and useDefaultPublicLoadBalancer is true, then the frontend has to be an Internal Load Balancer. If the node type uses its own Load balancer and useDefaultPublicLoadBalancer is false or not set, then the custom load balancer must include a public load balancer to provide outbound connectivity.
*/
useDefaultPublicLoadBalancer?: pulumi.Input<boolean>;
/**
* Indicates whether to use ephemeral os disk. The sku selected on the vmSize property needs to support this feature.
*/
useEphemeralOSDisk?: pulumi.Input<boolean>;
/**
* Specifies whether to use the temporary disk for the service fabric data root, in which case no managed data disk will be attached and the temporary disk will be used. It is only allowed for stateless node types.
*/
useTempDataDisk?: pulumi.Input<boolean>;
/**
* Set of extensions that should be installed onto the virtual machines.
*/
vmExtensions?: pulumi.Input<pulumi.Input<inputs.servicefabric.VMSSExtensionArgs>[]>;
/**
* The offer type of the Azure Virtual Machines Marketplace image. For example, UbuntuServer or WindowsServer.
*/
vmImageOffer?: pulumi.Input<string>;
/**
* Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
*/
vmImagePlan?: pulumi.Input<inputs.servicefabric.VmImagePlanArgs>;
/**
* The publisher of the Azure Virtual Machines Marketplace image. For example, Canonical or MicrosoftWindowsServer.
*/
vmImagePublisher?: pulumi.Input<string>;
/**
* Indicates the resource id of the vm image. This parameter is used for custom vm image.
*/
vmImageResourceId?: pulumi.Input<string>;
/**
* The SKU of the Azure Virtual Machines Marketplace image. For example, 14.04.0-LTS or 2012-R2-Datacenter.
*/
vmImageSku?: pulumi.Input<string>;
/**
* The version of the Azure Virtual Machines Marketplace image. A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'.
*/
vmImageVersion?: pulumi.Input<string>;
/**
* The number of nodes in the node type. <br /><br />**Values:** <br />-1 - Use when auto scale rules are configured or sku.capacity is defined <br /> 0 - Not supported <br /> >0 - Use for manual scale.
*/
vmInstanceCount: pulumi.Input<number>;
/**
* Identities to assign to the virtual machine scale set under the node type.
*/
vmManagedIdentity?: pulumi.Input<inputs.servicefabric.VmManagedIdentityArgs>;
/**
* The secrets to install in the virtual machines.
*/
vmSecrets?: pulumi.Input<pulumi.Input<inputs.servicefabric.VaultSecretGroupArgs>[]>;
/**
* Specifies the actions to be performed on the vms before bootstrapping the service fabric runtime.
*/
vmSetupActions?: pulumi.Input<pulumi.Input<string | enums.servicefabric.VmSetupAction>[]>;
/**
* Indicates the resource id of the vm shared galleries image. This parameter is used for custom vm image.
*/
vmSharedGalleryImageId?: pulumi.Input<string>;
/**
* The size of virtual machines in the pool. All virtual machines in a pool are the same size. For example, Standard_D3.
*/
vmSize?: pulumi.Input<string>;
/**
* Specifies the availability zones where the node type would span across. If the cluster is not spanning across availability zones, initiates az migration for the cluster.
*/
zones?: pulumi.Input<pulumi.Input<string>[]>;
}