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

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

There is a newer version: 2.72.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.DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
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 DedicatedHostGroupArgs extends com.pulumi.resources.ResourceArgs {

    public static final DedicatedHostGroupArgs Empty = new DedicatedHostGroupArgs();

    /**
     * Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01.
     * 
     */
    @Import(name="additionalCapabilities")
    private @Nullable Output additionalCapabilities;

    /**
     * @return Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01.
     * 
     */
    public Optional> additionalCapabilities() {
        return Optional.ofNullable(this.additionalCapabilities);
    }

    /**
     * The name of the dedicated host group.
     * 
     */
    @Import(name="hostGroupName")
    private @Nullable Output hostGroupName;

    /**
     * @return The name of the dedicated host group.
     * 
     */
    public Optional> hostGroupName() {
        return Optional.ofNullable(this.hostGroupName);
    }

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

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

    /**
     * Number of fault domains that the host group can span.
     * 
     */
    @Import(name="platformFaultDomainCount", required=true)
    private Output platformFaultDomainCount;

    /**
     * @return Number of fault domains that the host group can span.
     * 
     */
    public Output platformFaultDomainCount() {
        return this.platformFaultDomainCount;
    }

    /**
     * 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;
    }

    /**
     * Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01.
     * 
     */
    @Import(name="supportAutomaticPlacement")
    private @Nullable Output supportAutomaticPlacement;

    /**
     * @return Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01.
     * 
     */
    public Optional> supportAutomaticPlacement() {
        return Optional.ofNullable(this.supportAutomaticPlacement);
    }

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

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

    /**
     * Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private DedicatedHostGroupArgs() {}

    private DedicatedHostGroupArgs(DedicatedHostGroupArgs $) {
        this.additionalCapabilities = $.additionalCapabilities;
        this.hostGroupName = $.hostGroupName;
        this.location = $.location;
        this.platformFaultDomainCount = $.platformFaultDomainCount;
        this.resourceGroupName = $.resourceGroupName;
        this.supportAutomaticPlacement = $.supportAutomaticPlacement;
        this.tags = $.tags;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private DedicatedHostGroupArgs $;

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

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

        /**
         * @param additionalCapabilities Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01.
         * 
         * @return builder
         * 
         */
        public Builder additionalCapabilities(@Nullable Output additionalCapabilities) {
            $.additionalCapabilities = additionalCapabilities;
            return this;
        }

        /**
         * @param additionalCapabilities Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01.
         * 
         * @return builder
         * 
         */
        public Builder additionalCapabilities(DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs additionalCapabilities) {
            return additionalCapabilities(Output.of(additionalCapabilities));
        }

        /**
         * @param hostGroupName The name of the dedicated host group.
         * 
         * @return builder
         * 
         */
        public Builder hostGroupName(@Nullable Output hostGroupName) {
            $.hostGroupName = hostGroupName;
            return this;
        }

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

        /**
         * @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 Number of fault domains that the host group can span.
         * 
         * @return builder
         * 
         */
        public Builder platformFaultDomainCount(Output platformFaultDomainCount) {
            $.platformFaultDomainCount = platformFaultDomainCount;
            return this;
        }

        /**
         * @param platformFaultDomainCount Number of fault domains that the host group can span.
         * 
         * @return builder
         * 
         */
        public Builder platformFaultDomainCount(Integer platformFaultDomainCount) {
            return platformFaultDomainCount(Output.of(platformFaultDomainCount));
        }

        /**
         * @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 supportAutomaticPlacement Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01.
         * 
         * @return builder
         * 
         */
        public Builder supportAutomaticPlacement(@Nullable Output supportAutomaticPlacement) {
            $.supportAutomaticPlacement = supportAutomaticPlacement;
            return this;
        }

        /**
         * @param supportAutomaticPlacement Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01.
         * 
         * @return builder
         * 
         */
        public Builder supportAutomaticPlacement(Boolean supportAutomaticPlacement) {
            return supportAutomaticPlacement(Output.of(supportAutomaticPlacement));
        }

        /**
         * @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 zones Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy