All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.compute.inputs.ScaleSetState Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.azure.compute.inputs;
import com.pulumi.azure.compute.inputs.ScaleSetBootDiagnosticsArgs;
import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs;
import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs;
import com.pulumi.azure.compute.inputs.ScaleSetNetworkProfileArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileLinuxConfigArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileSecretArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileWindowsConfigArgs;
import com.pulumi.azure.compute.inputs.ScaleSetPlanArgs;
import com.pulumi.azure.compute.inputs.ScaleSetRollingUpgradePolicyArgs;
import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileDataDiskArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileImageReferenceArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileOsDiskArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class ScaleSetState extends com.pulumi.resources.ResourceArgs {
public static final ScaleSetState Empty = new ScaleSetState();
/**
* Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.
*
*/
@Import(name="automaticOsUpgrade")
private @Nullable Output automaticOsUpgrade;
/**
* @return Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.
*
*/
public Optional> automaticOsUpgrade() {
return Optional.ofNullable(this.automaticOsUpgrade);
}
/**
* A `boot_diagnostics` block as referenced below.
*
*/
@Import(name="bootDiagnostics")
private @Nullable Output bootDiagnostics;
/**
* @return A `boot_diagnostics` block as referenced below.
*
*/
public Optional> bootDiagnostics() {
return Optional.ofNullable(this.bootDiagnostics);
}
/**
* Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.
*
* > **NOTE:** `eviction_policy` can only be set when `priority` is set to `Low`.
*
*/
@Import(name="evictionPolicy")
private @Nullable Output evictionPolicy;
/**
* @return Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.
*
* > **NOTE:** `eviction_policy` can only be set when `priority` is set to `Low`.
*
*/
public Optional> evictionPolicy() {
return Optional.ofNullable(this.evictionPolicy);
}
/**
* Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.
*
*/
@Import(name="extensions")
private @Nullable Output> extensions;
/**
* @return Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.
*
*/
public Optional>> extensions() {
return Optional.ofNullable(this.extensions);
}
/**
* Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.
*
*/
@Import(name="healthProbeId")
private @Nullable Output healthProbeId;
/**
* @return Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.
*
*/
public Optional> healthProbeId() {
return Optional.ofNullable(this.healthProbeId);
}
/**
* An `identity` block as defined below.
*
*/
@Import(name="identity")
private @Nullable Output identity;
/**
* @return An `identity` block as defined below.
*
*/
public Optional> identity() {
return Optional.ofNullable(this.identity);
}
/**
* (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.
*
*/
@Import(name="licenseType")
private @Nullable Output licenseType;
/**
* @return (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.
*
*/
public Optional> licenseType() {
return Optional.ofNullable(this.licenseType);
}
/**
* Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
*
*/
@Import(name="location")
private @Nullable Output location;
/**
* @return Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
*
*/
public Optional> location() {
return Optional.ofNullable(this.location);
}
/**
* Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* A collection of `network_profile` blocks as documented below.
*
*/
@Import(name="networkProfiles")
private @Nullable Output> networkProfiles;
/**
* @return A collection of `network_profile` blocks as documented below.
*
*/
public Optional>> networkProfiles() {
return Optional.ofNullable(this.networkProfiles);
}
/**
* A `os_profile` block as documented below.
*
*/
@Import(name="osProfile")
private @Nullable Output osProfile;
/**
* @return A `os_profile` block as documented below.
*
*/
public Optional> osProfile() {
return Optional.ofNullable(this.osProfile);
}
/**
* A `os_profile_linux_config` block as documented below.
*
*/
@Import(name="osProfileLinuxConfig")
private @Nullable Output osProfileLinuxConfig;
/**
* @return A `os_profile_linux_config` block as documented below.
*
*/
public Optional> osProfileLinuxConfig() {
return Optional.ofNullable(this.osProfileLinuxConfig);
}
/**
* A collection of `os_profile_secrets` blocks as documented below.
*
*/
@Import(name="osProfileSecrets")
private @Nullable Output> osProfileSecrets;
/**
* @return A collection of `os_profile_secrets` blocks as documented below.
*
*/
public Optional>> osProfileSecrets() {
return Optional.ofNullable(this.osProfileSecrets);
}
/**
* A `os_profile_windows_config` block as documented below.
*
*/
@Import(name="osProfileWindowsConfig")
private @Nullable Output osProfileWindowsConfig;
/**
* @return A `os_profile_windows_config` block as documented below.
*
*/
public Optional> osProfileWindowsConfig() {
return Optional.ofNullable(this.osProfileWindowsConfig);
}
/**
* Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.
*
*/
@Import(name="overprovision")
private @Nullable Output overprovision;
/**
* @return Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.
*
*/
public Optional> overprovision() {
return Optional.ofNullable(this.overprovision);
}
/**
* A `plan` block as documented below.
*
*/
@Import(name="plan")
private @Nullable Output plan;
/**
* @return A `plan` block as documented below.
*
*/
public Optional> plan() {
return Optional.ofNullable(this.plan);
}
/**
* Specifies the priority for the Virtual Machines in the Scale Set. Possible values are `Low` and `Regular`. Changing this forces a new resource to be created.
*
*/
@Import(name="priority")
private @Nullable Output priority;
/**
* @return Specifies the priority for the Virtual Machines in the Scale Set. Possible values are `Low` and `Regular`. Changing this forces a new resource to be created.
*
*/
public Optional> priority() {
return Optional.ofNullable(this.priority);
}
/**
* The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
*
*/
@Import(name="proximityPlacementGroupId")
private @Nullable Output proximityPlacementGroupId;
/**
* @return The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
*
*/
public Optional> proximityPlacementGroupId() {
return Optional.ofNullable(this.proximityPlacementGroupId);
}
/**
* The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
*
*/
@Import(name="resourceGroupName")
private @Nullable Output resourceGroupName;
/**
* @return The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
*
*/
public Optional> resourceGroupName() {
return Optional.ofNullable(this.resourceGroupName);
}
/**
* A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.
*
*/
@Import(name="rollingUpgradePolicy")
private @Nullable Output rollingUpgradePolicy;
/**
* @return A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.
*
*/
public Optional> rollingUpgradePolicy() {
return Optional.ofNullable(this.rollingUpgradePolicy);
}
/**
* Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See [documentation](https://docs.microsoft.com/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information. Defaults to `true`.
*
*/
@Import(name="singlePlacementGroup")
private @Nullable Output singlePlacementGroup;
/**
* @return Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See [documentation](https://docs.microsoft.com/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information. Defaults to `true`.
*
*/
public Optional> singlePlacementGroup() {
return Optional.ofNullable(this.singlePlacementGroup);
}
/**
* A `sku` block as documented below.
*
*/
@Import(name="sku")
private @Nullable Output sku;
/**
* @return A `sku` block as documented below.
*
*/
public Optional> sku() {
return Optional.ofNullable(this.sku);
}
/**
* A `storage_profile_data_disk` block as documented below.
*
*/
@Import(name="storageProfileDataDisks")
private @Nullable Output> storageProfileDataDisks;
/**
* @return A `storage_profile_data_disk` block as documented below.
*
*/
public Optional>> storageProfileDataDisks() {
return Optional.ofNullable(this.storageProfileDataDisks);
}
/**
* A `storage_profile_image_reference` block as documented below.
*
*/
@Import(name="storageProfileImageReference")
private @Nullable Output storageProfileImageReference;
/**
* @return A `storage_profile_image_reference` block as documented below.
*
*/
public Optional> storageProfileImageReference() {
return Optional.ofNullable(this.storageProfileImageReference);
}
/**
* A `storage_profile_os_disk` block as documented below.
*
*/
@Import(name="storageProfileOsDisk")
private @Nullable Output storageProfileOsDisk;
/**
* @return A `storage_profile_os_disk` block as documented below.
*
*/
public Optional> storageProfileOsDisk() {
return Optional.ofNullable(this.storageProfileOsDisk);
}
/**
* A mapping of tags to assign to the resource.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A mapping of tags to assign to the resource.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.
*
*/
@Import(name="upgradePolicyMode")
private @Nullable Output upgradePolicyMode;
/**
* @return Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.
*
*/
public Optional> upgradePolicyMode() {
return Optional.ofNullable(this.upgradePolicyMode);
}
/**
* A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created.
*
* > **NOTE:** Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).
*
*/
@Import(name="zones")
private @Nullable Output> zones;
/**
* @return A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created.
*
* > **NOTE:** Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).
*
*/
public Optional>> zones() {
return Optional.ofNullable(this.zones);
}
private ScaleSetState() {}
private ScaleSetState(ScaleSetState $) {
this.automaticOsUpgrade = $.automaticOsUpgrade;
this.bootDiagnostics = $.bootDiagnostics;
this.evictionPolicy = $.evictionPolicy;
this.extensions = $.extensions;
this.healthProbeId = $.healthProbeId;
this.identity = $.identity;
this.licenseType = $.licenseType;
this.location = $.location;
this.name = $.name;
this.networkProfiles = $.networkProfiles;
this.osProfile = $.osProfile;
this.osProfileLinuxConfig = $.osProfileLinuxConfig;
this.osProfileSecrets = $.osProfileSecrets;
this.osProfileWindowsConfig = $.osProfileWindowsConfig;
this.overprovision = $.overprovision;
this.plan = $.plan;
this.priority = $.priority;
this.proximityPlacementGroupId = $.proximityPlacementGroupId;
this.resourceGroupName = $.resourceGroupName;
this.rollingUpgradePolicy = $.rollingUpgradePolicy;
this.singlePlacementGroup = $.singlePlacementGroup;
this.sku = $.sku;
this.storageProfileDataDisks = $.storageProfileDataDisks;
this.storageProfileImageReference = $.storageProfileImageReference;
this.storageProfileOsDisk = $.storageProfileOsDisk;
this.tags = $.tags;
this.upgradePolicyMode = $.upgradePolicyMode;
this.zones = $.zones;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ScaleSetState defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ScaleSetState $;
public Builder() {
$ = new ScaleSetState();
}
public Builder(ScaleSetState defaults) {
$ = new ScaleSetState(Objects.requireNonNull(defaults));
}
/**
* @param automaticOsUpgrade Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.
*
* @return builder
*
*/
public Builder automaticOsUpgrade(@Nullable Output automaticOsUpgrade) {
$.automaticOsUpgrade = automaticOsUpgrade;
return this;
}
/**
* @param automaticOsUpgrade Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when `upgrade_policy_mode` is set to `Rolling`. Defaults to `false`.
*
* @return builder
*
*/
public Builder automaticOsUpgrade(Boolean automaticOsUpgrade) {
return automaticOsUpgrade(Output.of(automaticOsUpgrade));
}
/**
* @param bootDiagnostics A `boot_diagnostics` block as referenced below.
*
* @return builder
*
*/
public Builder bootDiagnostics(@Nullable Output bootDiagnostics) {
$.bootDiagnostics = bootDiagnostics;
return this;
}
/**
* @param bootDiagnostics A `boot_diagnostics` block as referenced below.
*
* @return builder
*
*/
public Builder bootDiagnostics(ScaleSetBootDiagnosticsArgs bootDiagnostics) {
return bootDiagnostics(Output.of(bootDiagnostics));
}
/**
* @param evictionPolicy Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.
*
* > **NOTE:** `eviction_policy` can only be set when `priority` is set to `Low`.
*
* @return builder
*
*/
public Builder evictionPolicy(@Nullable Output evictionPolicy) {
$.evictionPolicy = evictionPolicy;
return this;
}
/**
* @param evictionPolicy Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are `Deallocate` and `Delete`. Changing this forces a new resource to be created.
*
* > **NOTE:** `eviction_policy` can only be set when `priority` is set to `Low`.
*
* @return builder
*
*/
public Builder evictionPolicy(String evictionPolicy) {
return evictionPolicy(Output.of(evictionPolicy));
}
/**
* @param extensions Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.
*
* @return builder
*
*/
public Builder extensions(@Nullable Output> extensions) {
$.extensions = extensions;
return this;
}
/**
* @param extensions Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.
*
* @return builder
*
*/
public Builder extensions(List extensions) {
return extensions(Output.of(extensions));
}
/**
* @param extensions Can be specified multiple times to add extension profiles to the scale set. Each `extension` block supports the fields documented below.
*
* @return builder
*
*/
public Builder extensions(ScaleSetExtensionArgs... extensions) {
return extensions(List.of(extensions));
}
/**
* @param healthProbeId Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.
*
* @return builder
*
*/
public Builder healthProbeId(@Nullable Output healthProbeId) {
$.healthProbeId = healthProbeId;
return this;
}
/**
* @param healthProbeId Specifies the identifier for the load balancer health probe. Required when using `Rolling` as your `upgrade_policy_mode`.
*
* @return builder
*
*/
public Builder healthProbeId(String healthProbeId) {
return healthProbeId(Output.of(healthProbeId));
}
/**
* @param identity An `identity` block as defined below.
*
* @return builder
*
*/
public Builder identity(@Nullable Output identity) {
$.identity = identity;
return this;
}
/**
* @param identity An `identity` block as defined below.
*
* @return builder
*
*/
public Builder identity(ScaleSetIdentityArgs identity) {
return identity(Output.of(identity));
}
/**
* @param licenseType (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.
*
* @return builder
*
*/
public Builder licenseType(@Nullable Output licenseType) {
$.licenseType = licenseType;
return this;
}
/**
* @param licenseType (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are `Windows_Client` and `Windows_Server`.
*
* @return builder
*
*/
public Builder licenseType(String licenseType) {
return licenseType(Output.of(licenseType));
}
/**
* @param location Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder location(@Nullable Output location) {
$.location = location;
return this;
}
/**
* @param location Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder location(String location) {
return location(Output.of(location));
}
/**
* @param name Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param networkProfiles A collection of `network_profile` blocks as documented below.
*
* @return builder
*
*/
public Builder networkProfiles(@Nullable Output> networkProfiles) {
$.networkProfiles = networkProfiles;
return this;
}
/**
* @param networkProfiles A collection of `network_profile` blocks as documented below.
*
* @return builder
*
*/
public Builder networkProfiles(List networkProfiles) {
return networkProfiles(Output.of(networkProfiles));
}
/**
* @param networkProfiles A collection of `network_profile` blocks as documented below.
*
* @return builder
*
*/
public Builder networkProfiles(ScaleSetNetworkProfileArgs... networkProfiles) {
return networkProfiles(List.of(networkProfiles));
}
/**
* @param osProfile A `os_profile` block as documented below.
*
* @return builder
*
*/
public Builder osProfile(@Nullable Output osProfile) {
$.osProfile = osProfile;
return this;
}
/**
* @param osProfile A `os_profile` block as documented below.
*
* @return builder
*
*/
public Builder osProfile(ScaleSetOsProfileArgs osProfile) {
return osProfile(Output.of(osProfile));
}
/**
* @param osProfileLinuxConfig A `os_profile_linux_config` block as documented below.
*
* @return builder
*
*/
public Builder osProfileLinuxConfig(@Nullable Output osProfileLinuxConfig) {
$.osProfileLinuxConfig = osProfileLinuxConfig;
return this;
}
/**
* @param osProfileLinuxConfig A `os_profile_linux_config` block as documented below.
*
* @return builder
*
*/
public Builder osProfileLinuxConfig(ScaleSetOsProfileLinuxConfigArgs osProfileLinuxConfig) {
return osProfileLinuxConfig(Output.of(osProfileLinuxConfig));
}
/**
* @param osProfileSecrets A collection of `os_profile_secrets` blocks as documented below.
*
* @return builder
*
*/
public Builder osProfileSecrets(@Nullable Output> osProfileSecrets) {
$.osProfileSecrets = osProfileSecrets;
return this;
}
/**
* @param osProfileSecrets A collection of `os_profile_secrets` blocks as documented below.
*
* @return builder
*
*/
public Builder osProfileSecrets(List osProfileSecrets) {
return osProfileSecrets(Output.of(osProfileSecrets));
}
/**
* @param osProfileSecrets A collection of `os_profile_secrets` blocks as documented below.
*
* @return builder
*
*/
public Builder osProfileSecrets(ScaleSetOsProfileSecretArgs... osProfileSecrets) {
return osProfileSecrets(List.of(osProfileSecrets));
}
/**
* @param osProfileWindowsConfig A `os_profile_windows_config` block as documented below.
*
* @return builder
*
*/
public Builder osProfileWindowsConfig(@Nullable Output osProfileWindowsConfig) {
$.osProfileWindowsConfig = osProfileWindowsConfig;
return this;
}
/**
* @param osProfileWindowsConfig A `os_profile_windows_config` block as documented below.
*
* @return builder
*
*/
public Builder osProfileWindowsConfig(ScaleSetOsProfileWindowsConfigArgs osProfileWindowsConfig) {
return osProfileWindowsConfig(Output.of(osProfileWindowsConfig));
}
/**
* @param overprovision Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.
*
* @return builder
*
*/
public Builder overprovision(@Nullable Output overprovision) {
$.overprovision = overprovision;
return this;
}
/**
* @param overprovision Specifies whether the virtual machine scale set should be overprovisioned. Defaults to `true`.
*
* @return builder
*
*/
public Builder overprovision(Boolean overprovision) {
return overprovision(Output.of(overprovision));
}
/**
* @param plan A `plan` block as documented below.
*
* @return builder
*
*/
public Builder plan(@Nullable Output plan) {
$.plan = plan;
return this;
}
/**
* @param plan A `plan` block as documented below.
*
* @return builder
*
*/
public Builder plan(ScaleSetPlanArgs plan) {
return plan(Output.of(plan));
}
/**
* @param priority Specifies the priority for the Virtual Machines in the Scale Set. Possible values are `Low` and `Regular`. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder priority(@Nullable Output priority) {
$.priority = priority;
return this;
}
/**
* @param priority Specifies the priority for the Virtual Machines in the Scale Set. Possible values are `Low` and `Regular`. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder priority(String priority) {
return priority(Output.of(priority));
}
/**
* @param proximityPlacementGroupId The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
*
* @return builder
*
*/
public Builder proximityPlacementGroupId(@Nullable Output proximityPlacementGroupId) {
$.proximityPlacementGroupId = proximityPlacementGroupId;
return this;
}
/**
* @param proximityPlacementGroupId The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
*
* @return builder
*
*/
public Builder proximityPlacementGroupId(String proximityPlacementGroupId) {
return proximityPlacementGroupId(Output.of(proximityPlacementGroupId));
}
/**
* @param resourceGroupName The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(@Nullable Output resourceGroupName) {
$.resourceGroupName = resourceGroupName;
return this;
}
/**
* @param resourceGroupName The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(String resourceGroupName) {
return resourceGroupName(Output.of(resourceGroupName));
}
/**
* @param rollingUpgradePolicy A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.
*
* @return builder
*
*/
public Builder rollingUpgradePolicy(@Nullable Output rollingUpgradePolicy) {
$.rollingUpgradePolicy = rollingUpgradePolicy;
return this;
}
/**
* @param rollingUpgradePolicy A `rolling_upgrade_policy` block as defined below. This is only applicable when the `upgrade_policy_mode` is `Rolling`.
*
* @return builder
*
*/
public Builder rollingUpgradePolicy(ScaleSetRollingUpgradePolicyArgs rollingUpgradePolicy) {
return rollingUpgradePolicy(Output.of(rollingUpgradePolicy));
}
/**
* @param singlePlacementGroup Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See [documentation](https://docs.microsoft.com/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information. Defaults to `true`.
*
* @return builder
*
*/
public Builder singlePlacementGroup(@Nullable Output singlePlacementGroup) {
$.singlePlacementGroup = singlePlacementGroup;
return this;
}
/**
* @param singlePlacementGroup Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See [documentation](https://docs.microsoft.com/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups) for more information. Defaults to `true`.
*
* @return builder
*
*/
public Builder singlePlacementGroup(Boolean singlePlacementGroup) {
return singlePlacementGroup(Output.of(singlePlacementGroup));
}
/**
* @param sku A `sku` block as documented below.
*
* @return builder
*
*/
public Builder sku(@Nullable Output sku) {
$.sku = sku;
return this;
}
/**
* @param sku A `sku` block as documented below.
*
* @return builder
*
*/
public Builder sku(ScaleSetSkuArgs sku) {
return sku(Output.of(sku));
}
/**
* @param storageProfileDataDisks A `storage_profile_data_disk` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileDataDisks(@Nullable Output> storageProfileDataDisks) {
$.storageProfileDataDisks = storageProfileDataDisks;
return this;
}
/**
* @param storageProfileDataDisks A `storage_profile_data_disk` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileDataDisks(List storageProfileDataDisks) {
return storageProfileDataDisks(Output.of(storageProfileDataDisks));
}
/**
* @param storageProfileDataDisks A `storage_profile_data_disk` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileDataDisks(ScaleSetStorageProfileDataDiskArgs... storageProfileDataDisks) {
return storageProfileDataDisks(List.of(storageProfileDataDisks));
}
/**
* @param storageProfileImageReference A `storage_profile_image_reference` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileImageReference(@Nullable Output storageProfileImageReference) {
$.storageProfileImageReference = storageProfileImageReference;
return this;
}
/**
* @param storageProfileImageReference A `storage_profile_image_reference` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileImageReference(ScaleSetStorageProfileImageReferenceArgs storageProfileImageReference) {
return storageProfileImageReference(Output.of(storageProfileImageReference));
}
/**
* @param storageProfileOsDisk A `storage_profile_os_disk` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileOsDisk(@Nullable Output storageProfileOsDisk) {
$.storageProfileOsDisk = storageProfileOsDisk;
return this;
}
/**
* @param storageProfileOsDisk A `storage_profile_os_disk` block as documented below.
*
* @return builder
*
*/
public Builder storageProfileOsDisk(ScaleSetStorageProfileOsDiskArgs storageProfileOsDisk) {
return storageProfileOsDisk(Output.of(storageProfileOsDisk));
}
/**
* @param tags A mapping of tags to assign to the resource.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A mapping of tags to assign to the resource.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param upgradePolicyMode Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.
*
* @return builder
*
*/
public Builder upgradePolicyMode(@Nullable Output upgradePolicyMode) {
$.upgradePolicyMode = upgradePolicyMode;
return this;
}
/**
* @param upgradePolicyMode Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, `Rolling`, `Manual`, or `Automatic`. When choosing `Rolling`, you will need to set a health probe.
*
* @return builder
*
*/
public Builder upgradePolicyMode(String upgradePolicyMode) {
return upgradePolicyMode(Output.of(upgradePolicyMode));
}
/**
* @param zones A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created.
*
* > **NOTE:** Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).
*
* @return builder
*
*/
public Builder zones(@Nullable Output> zones) {
$.zones = zones;
return this;
}
/**
* @param zones A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created.
*
* > **NOTE:** Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).
*
* @return builder
*
*/
public Builder zones(List zones) {
return zones(Output.of(zones));
}
/**
* @param zones A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created.
*
* > **NOTE:** Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).
*
* @return builder
*
*/
public Builder zones(String... zones) {
return zones(List.of(zones));
}
public ScaleSetState build() {
return $;
}
}
}