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

com.pulumi.azurenative.compute.AvailabilitySetArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
Show newest version
// *** 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.azurenative.compute;

import com.pulumi.azurenative.compute.inputs.SkuArgs;
import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
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 AvailabilitySetArgs extends com.pulumi.resources.ResourceArgs {

    public static final AvailabilitySetArgs Empty = new AvailabilitySetArgs();

    /**
     * The name of the availability set.
     * 
     */
    @Import(name="availabilitySetName")
    private @Nullable Output availabilitySetName;

    /**
     * @return The name of the availability set.
     * 
     */
    public Optional> availabilitySetName() {
        return Optional.ofNullable(this.availabilitySetName);
    }

    /**
     * Resource location
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Fault Domain count.
     * 
     */
    @Import(name="platformFaultDomainCount")
    private @Nullable Output platformFaultDomainCount;

    /**
     * @return Fault Domain count.
     * 
     */
    public Optional> platformFaultDomainCount() {
        return Optional.ofNullable(this.platformFaultDomainCount);
    }

    /**
     * Update Domain count.
     * 
     */
    @Import(name="platformUpdateDomainCount")
    private @Nullable Output platformUpdateDomainCount;

    /**
     * @return Update Domain count.
     * 
     */
    public Optional> platformUpdateDomainCount() {
        return Optional.ofNullable(this.platformUpdateDomainCount);
    }

    /**
     * Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01.
     * 
     */
    @Import(name="proximityPlacementGroup")
    private @Nullable Output proximityPlacementGroup;

    /**
     * @return Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01.
     * 
     */
    public Optional> proximityPlacementGroup() {
        return Optional.ofNullable(this.proximityPlacementGroup);
    }

    /**
     * The name of the resource group.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * Resource tags
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * A list of references to all virtual machines in the availability set.
     * 
     */
    @Import(name="virtualMachines")
    private @Nullable Output> virtualMachines;

    /**
     * @return A list of references to all virtual machines in the availability set.
     * 
     */
    public Optional>> virtualMachines() {
        return Optional.ofNullable(this.virtualMachines);
    }

    private AvailabilitySetArgs() {}

    private AvailabilitySetArgs(AvailabilitySetArgs $) {
        this.availabilitySetName = $.availabilitySetName;
        this.location = $.location;
        this.platformFaultDomainCount = $.platformFaultDomainCount;
        this.platformUpdateDomainCount = $.platformUpdateDomainCount;
        this.proximityPlacementGroup = $.proximityPlacementGroup;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
        this.virtualMachines = $.virtualMachines;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(AvailabilitySetArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private AvailabilitySetArgs $;

        public Builder() {
            $ = new AvailabilitySetArgs();
        }

        public Builder(AvailabilitySetArgs defaults) {
            $ = new AvailabilitySetArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param availabilitySetName The name of the availability set.
         * 
         * @return builder
         * 
         */
        public Builder availabilitySetName(@Nullable Output availabilitySetName) {
            $.availabilitySetName = availabilitySetName;
            return this;
        }

        /**
         * @param availabilitySetName The name of the availability set.
         * 
         * @return builder
         * 
         */
        public Builder availabilitySetName(String availabilitySetName) {
            return availabilitySetName(Output.of(availabilitySetName));
        }

        /**
         * @param location Resource location
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param platformFaultDomainCount Fault Domain count.
         * 
         * @return builder
         * 
         */
        public Builder platformFaultDomainCount(@Nullable Output platformFaultDomainCount) {
            $.platformFaultDomainCount = platformFaultDomainCount;
            return this;
        }

        /**
         * @param platformFaultDomainCount Fault Domain count.
         * 
         * @return builder
         * 
         */
        public Builder platformFaultDomainCount(Integer platformFaultDomainCount) {
            return platformFaultDomainCount(Output.of(platformFaultDomainCount));
        }

        /**
         * @param platformUpdateDomainCount Update Domain count.
         * 
         * @return builder
         * 
         */
        public Builder platformUpdateDomainCount(@Nullable Output platformUpdateDomainCount) {
            $.platformUpdateDomainCount = platformUpdateDomainCount;
            return this;
        }

        /**
         * @param platformUpdateDomainCount Update Domain count.
         * 
         * @return builder
         * 
         */
        public Builder platformUpdateDomainCount(Integer platformUpdateDomainCount) {
            return platformUpdateDomainCount(Output.of(platformUpdateDomainCount));
        }

        /**
         * @param proximityPlacementGroup Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01.
         * 
         * @return builder
         * 
         */
        public Builder proximityPlacementGroup(@Nullable Output proximityPlacementGroup) {
            $.proximityPlacementGroup = proximityPlacementGroup;
            return this;
        }

        /**
         * @param proximityPlacementGroup Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01.
         * 
         * @return builder
         * 
         */
        public Builder proximityPlacementGroup(SubResourceArgs proximityPlacementGroup) {
            return proximityPlacementGroup(Output.of(proximityPlacementGroup));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param sku Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param tags Resource tags
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param virtualMachines A list of references to all virtual machines in the availability set.
         * 
         * @return builder
         * 
         */
        public Builder virtualMachines(@Nullable Output> virtualMachines) {
            $.virtualMachines = virtualMachines;
            return this;
        }

        /**
         * @param virtualMachines A list of references to all virtual machines in the availability set.
         * 
         * @return builder
         * 
         */
        public Builder virtualMachines(List virtualMachines) {
            return virtualMachines(Output.of(virtualMachines));
        }

        /**
         * @param virtualMachines A list of references to all virtual machines in the availability set.
         * 
         * @return builder
         * 
         */
        public Builder virtualMachines(SubResourceArgs... virtualMachines) {
            return virtualMachines(List.of(virtualMachines));
        }

        public AvailabilitySetArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AvailabilitySetArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy