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

com.pulumi.azurenative.avs.PrivateCloudArgs 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.avs;

import com.pulumi.azurenative.avs.enums.InternetEnum;
import com.pulumi.azurenative.avs.inputs.AvailabilityPropertiesArgs;
import com.pulumi.azurenative.avs.inputs.EncryptionArgs;
import com.pulumi.azurenative.avs.inputs.IdentitySourceArgs;
import com.pulumi.azurenative.avs.inputs.ManagementClusterArgs;
import com.pulumi.azurenative.avs.inputs.PrivateCloudIdentityArgs;
import com.pulumi.azurenative.avs.inputs.SkuArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 PrivateCloudArgs extends com.pulumi.resources.ResourceArgs {

    public static final PrivateCloudArgs Empty = new PrivateCloudArgs();

    /**
     * Properties describing how the cloud is distributed across availability zones
     * 
     */
    @Import(name="availability")
    private @Nullable Output availability;

    /**
     * @return Properties describing how the cloud is distributed across availability zones
     * 
     */
    public Optional> availability() {
        return Optional.ofNullable(this.availability);
    }

    /**
     * Customer managed key encryption, can be enabled or disabled
     * 
     */
    @Import(name="encryption")
    private @Nullable Output encryption;

    /**
     * @return Customer managed key encryption, can be enabled or disabled
     * 
     */
    public Optional> encryption() {
        return Optional.ofNullable(this.encryption);
    }

    /**
     * The identity of the private cloud, if configured.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The identity of the private cloud, if configured.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * vCenter Single Sign On Identity Sources
     * 
     */
    @Import(name="identitySources")
    private @Nullable Output> identitySources;

    /**
     * @return vCenter Single Sign On Identity Sources
     * 
     */
    public Optional>> identitySources() {
        return Optional.ofNullable(this.identitySources);
    }

    /**
     * Connectivity to internet is enabled or disabled
     * 
     */
    @Import(name="internet")
    private @Nullable Output> internet;

    /**
     * @return Connectivity to internet is enabled or disabled
     * 
     */
    public Optional>> internet() {
        return Optional.ofNullable(this.internet);
    }

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

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

    /**
     * The default cluster used for management
     * 
     */
    @Import(name="managementCluster", required=true)
    private Output managementCluster;

    /**
     * @return The default cluster used for management
     * 
     */
    public Output managementCluster() {
        return this.managementCluster;
    }

    /**
     * The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22
     * 
     */
    @Import(name="networkBlock", required=true)
    private Output networkBlock;

    /**
     * @return The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22
     * 
     */
    public Output networkBlock() {
        return this.networkBlock;
    }

    /**
     * Optionally, set the NSX-T Manager password when the private cloud is created
     * 
     */
    @Import(name="nsxtPassword")
    private @Nullable Output nsxtPassword;

    /**
     * @return Optionally, set the NSX-T Manager password when the private cloud is created
     * 
     */
    public Optional> nsxtPassword() {
        return Optional.ofNullable(this.nsxtPassword);
    }

    /**
     * Name of the private cloud
     * 
     */
    @Import(name="privateCloudName")
    private @Nullable Output privateCloudName;

    /**
     * @return Name of the private cloud
     * 
     */
    public Optional> privateCloudName() {
        return Optional.ofNullable(this.privateCloudName);
    }

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

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

    /**
     * The private cloud SKU
     * 
     */
    @Import(name="sku", required=true)
    private Output sku;

    /**
     * @return The private cloud SKU
     * 
     */
    public Output sku() {
        return this.sku;
    }

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

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

    /**
     * Optionally, set the vCenter admin password when the private cloud is created
     * 
     */
    @Import(name="vcenterPassword")
    private @Nullable Output vcenterPassword;

    /**
     * @return Optionally, set the vCenter admin password when the private cloud is created
     * 
     */
    public Optional> vcenterPassword() {
        return Optional.ofNullable(this.vcenterPassword);
    }

    private PrivateCloudArgs() {}

    private PrivateCloudArgs(PrivateCloudArgs $) {
        this.availability = $.availability;
        this.encryption = $.encryption;
        this.identity = $.identity;
        this.identitySources = $.identitySources;
        this.internet = $.internet;
        this.location = $.location;
        this.managementCluster = $.managementCluster;
        this.networkBlock = $.networkBlock;
        this.nsxtPassword = $.nsxtPassword;
        this.privateCloudName = $.privateCloudName;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
        this.vcenterPassword = $.vcenterPassword;
    }

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

    public static final class Builder {
        private PrivateCloudArgs $;

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

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

        /**
         * @param availability Properties describing how the cloud is distributed across availability zones
         * 
         * @return builder
         * 
         */
        public Builder availability(@Nullable Output availability) {
            $.availability = availability;
            return this;
        }

        /**
         * @param availability Properties describing how the cloud is distributed across availability zones
         * 
         * @return builder
         * 
         */
        public Builder availability(AvailabilityPropertiesArgs availability) {
            return availability(Output.of(availability));
        }

        /**
         * @param encryption Customer managed key encryption, can be enabled or disabled
         * 
         * @return builder
         * 
         */
        public Builder encryption(@Nullable Output encryption) {
            $.encryption = encryption;
            return this;
        }

        /**
         * @param encryption Customer managed key encryption, can be enabled or disabled
         * 
         * @return builder
         * 
         */
        public Builder encryption(EncryptionArgs encryption) {
            return encryption(Output.of(encryption));
        }

        /**
         * @param identity The identity of the private cloud, if configured.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The identity of the private cloud, if configured.
         * 
         * @return builder
         * 
         */
        public Builder identity(PrivateCloudIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param identitySources vCenter Single Sign On Identity Sources
         * 
         * @return builder
         * 
         */
        public Builder identitySources(@Nullable Output> identitySources) {
            $.identitySources = identitySources;
            return this;
        }

        /**
         * @param identitySources vCenter Single Sign On Identity Sources
         * 
         * @return builder
         * 
         */
        public Builder identitySources(List identitySources) {
            return identitySources(Output.of(identitySources));
        }

        /**
         * @param identitySources vCenter Single Sign On Identity Sources
         * 
         * @return builder
         * 
         */
        public Builder identitySources(IdentitySourceArgs... identitySources) {
            return identitySources(List.of(identitySources));
        }

        /**
         * @param internet Connectivity to internet is enabled or disabled
         * 
         * @return builder
         * 
         */
        public Builder internet(@Nullable Output> internet) {
            $.internet = internet;
            return this;
        }

        /**
         * @param internet Connectivity to internet is enabled or disabled
         * 
         * @return builder
         * 
         */
        public Builder internet(Either internet) {
            return internet(Output.of(internet));
        }

        /**
         * @param internet Connectivity to internet is enabled or disabled
         * 
         * @return builder
         * 
         */
        public Builder internet(String internet) {
            return internet(Either.ofLeft(internet));
        }

        /**
         * @param internet Connectivity to internet is enabled or disabled
         * 
         * @return builder
         * 
         */
        public Builder internet(InternetEnum internet) {
            return internet(Either.ofRight(internet));
        }

        /**
         * @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 managementCluster The default cluster used for management
         * 
         * @return builder
         * 
         */
        public Builder managementCluster(Output managementCluster) {
            $.managementCluster = managementCluster;
            return this;
        }

        /**
         * @param managementCluster The default cluster used for management
         * 
         * @return builder
         * 
         */
        public Builder managementCluster(ManagementClusterArgs managementCluster) {
            return managementCluster(Output.of(managementCluster));
        }

        /**
         * @param networkBlock The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22
         * 
         * @return builder
         * 
         */
        public Builder networkBlock(Output networkBlock) {
            $.networkBlock = networkBlock;
            return this;
        }

        /**
         * @param networkBlock The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22
         * 
         * @return builder
         * 
         */
        public Builder networkBlock(String networkBlock) {
            return networkBlock(Output.of(networkBlock));
        }

        /**
         * @param nsxtPassword Optionally, set the NSX-T Manager password when the private cloud is created
         * 
         * @return builder
         * 
         */
        public Builder nsxtPassword(@Nullable Output nsxtPassword) {
            $.nsxtPassword = nsxtPassword;
            return this;
        }

        /**
         * @param nsxtPassword Optionally, set the NSX-T Manager password when the private cloud is created
         * 
         * @return builder
         * 
         */
        public Builder nsxtPassword(String nsxtPassword) {
            return nsxtPassword(Output.of(nsxtPassword));
        }

        /**
         * @param privateCloudName Name of the private cloud
         * 
         * @return builder
         * 
         */
        public Builder privateCloudName(@Nullable Output privateCloudName) {
            $.privateCloudName = privateCloudName;
            return this;
        }

        /**
         * @param privateCloudName Name of the private cloud
         * 
         * @return builder
         * 
         */
        public Builder privateCloudName(String privateCloudName) {
            return privateCloudName(Output.of(privateCloudName));
        }

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

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

        /**
         * @param sku The private cloud SKU
         * 
         * @return builder
         * 
         */
        public Builder sku(Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The private cloud SKU
         * 
         * @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 vcenterPassword Optionally, set the vCenter admin password when the private cloud is created
         * 
         * @return builder
         * 
         */
        public Builder vcenterPassword(@Nullable Output vcenterPassword) {
            $.vcenterPassword = vcenterPassword;
            return this;
        }

        /**
         * @param vcenterPassword Optionally, set the vCenter admin password when the private cloud is created
         * 
         * @return builder
         * 
         */
        public Builder vcenterPassword(String vcenterPassword) {
            return vcenterPassword(Output.of(vcenterPassword));
        }

        public PrivateCloudArgs build() {
            $.internet = Codegen.stringProp("internet").left(InternetEnum.class).output().arg($.internet).def("Disabled").getNullable();
            if ($.managementCluster == null) {
                throw new MissingRequiredPropertyException("PrivateCloudArgs", "managementCluster");
            }
            if ($.networkBlock == null) {
                throw new MissingRequiredPropertyException("PrivateCloudArgs", "networkBlock");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("PrivateCloudArgs", "resourceGroupName");
            }
            if ($.sku == null) {
                throw new MissingRequiredPropertyException("PrivateCloudArgs", "sku");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy