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

com.pulumi.azurenative.networkcloud.ClusterArgs 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.networkcloud;

import com.pulumi.azurenative.networkcloud.enums.ClusterType;
import com.pulumi.azurenative.networkcloud.inputs.ClusterSecretArchiveArgs;
import com.pulumi.azurenative.networkcloud.inputs.ClusterUpdateStrategyArgs;
import com.pulumi.azurenative.networkcloud.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.networkcloud.inputs.ManagedResourceGroupConfigurationArgs;
import com.pulumi.azurenative.networkcloud.inputs.RackDefinitionArgs;
import com.pulumi.azurenative.networkcloud.inputs.RuntimeProtectionConfigurationArgs;
import com.pulumi.azurenative.networkcloud.inputs.ServicePrincipalInformationArgs;
import com.pulumi.azurenative.networkcloud.inputs.ValidationThresholdArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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 ClusterArgs extends com.pulumi.resources.ResourceArgs {

    public static final ClusterArgs Empty = new ClusterArgs();

    /**
     * The rack definition that is intended to reflect only a single rack in a single rack cluster, or an aggregator rack in a multi-rack cluster.
     * 
     */
    @Import(name="aggregatorOrSingleRackDefinition", required=true)
    private Output aggregatorOrSingleRackDefinition;

    /**
     * @return The rack definition that is intended to reflect only a single rack in a single rack cluster, or an aggregator rack in a multi-rack cluster.
     * 
     */
    public Output aggregatorOrSingleRackDefinition() {
        return this.aggregatorOrSingleRackDefinition;
    }

    /**
     * The resource ID of the Log Analytics Workspace that will be used for storing relevant logs.
     * 
     */
    @Import(name="analyticsWorkspaceId")
    private @Nullable Output analyticsWorkspaceId;

    /**
     * @return The resource ID of the Log Analytics Workspace that will be used for storing relevant logs.
     * 
     */
    public Optional> analyticsWorkspaceId() {
        return Optional.ofNullable(this.analyticsWorkspaceId);
    }

    /**
     * The customer-provided location information to identify where the cluster resides.
     * 
     */
    @Import(name="clusterLocation")
    private @Nullable Output clusterLocation;

    /**
     * @return The customer-provided location information to identify where the cluster resides.
     * 
     */
    public Optional> clusterLocation() {
        return Optional.ofNullable(this.clusterLocation);
    }

    /**
     * The name of the cluster.
     * 
     */
    @Import(name="clusterName")
    private @Nullable Output clusterName;

    /**
     * @return The name of the cluster.
     * 
     */
    public Optional> clusterName() {
        return Optional.ofNullable(this.clusterName);
    }

    /**
     * The service principal to be used by the cluster during Arc Appliance installation.
     * 
     */
    @Import(name="clusterServicePrincipal")
    private @Nullable Output clusterServicePrincipal;

    /**
     * @return The service principal to be used by the cluster during Arc Appliance installation.
     * 
     */
    public Optional> clusterServicePrincipal() {
        return Optional.ofNullable(this.clusterServicePrincipal);
    }

    /**
     * The type of rack configuration for the cluster.
     * 
     */
    @Import(name="clusterType", required=true)
    private Output> clusterType;

    /**
     * @return The type of rack configuration for the cluster.
     * 
     */
    public Output> clusterType() {
        return this.clusterType;
    }

    /**
     * The current runtime version of the cluster.
     * 
     */
    @Import(name="clusterVersion", required=true)
    private Output clusterVersion;

    /**
     * @return The current runtime version of the cluster.
     * 
     */
    public Output clusterVersion() {
        return this.clusterVersion;
    }

    /**
     * The validation threshold indicating the allowable failures of compute machines during environment validation and deployment.
     * 
     */
    @Import(name="computeDeploymentThreshold")
    private @Nullable Output computeDeploymentThreshold;

    /**
     * @return The validation threshold indicating the allowable failures of compute machines during environment validation and deployment.
     * 
     */
    public Optional> computeDeploymentThreshold() {
        return Optional.ofNullable(this.computeDeploymentThreshold);
    }

    /**
     * The list of rack definitions for the compute racks in a multi-rack
     * cluster, or an empty list in a single-rack cluster.
     * 
     */
    @Import(name="computeRackDefinitions")
    private @Nullable Output> computeRackDefinitions;

    /**
     * @return The list of rack definitions for the compute racks in a multi-rack
     * cluster, or an empty list in a single-rack cluster.
     * 
     */
    public Optional>> computeRackDefinitions() {
        return Optional.ofNullable(this.computeRackDefinitions);
    }

    /**
     * The extended location of the cluster manager associated with the cluster.
     * 
     */
    @Import(name="extendedLocation", required=true)
    private Output extendedLocation;

    /**
     * @return The extended location of the cluster manager associated with the cluster.
     * 
     */
    public Output extendedLocation() {
        return this.extendedLocation;
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The configuration of the managed resource group associated with the resource.
     * 
     */
    @Import(name="managedResourceGroupConfiguration")
    private @Nullable Output managedResourceGroupConfiguration;

    /**
     * @return The configuration of the managed resource group associated with the resource.
     * 
     */
    public Optional> managedResourceGroupConfiguration() {
        return Optional.ofNullable(this.managedResourceGroupConfiguration);
    }

    /**
     * The resource ID of the Network Fabric associated with the cluster.
     * 
     */
    @Import(name="networkFabricId", required=true)
    private Output networkFabricId;

    /**
     * @return The resource ID of the Network Fabric associated with the cluster.
     * 
     */
    public Output networkFabricId() {
        return this.networkFabricId;
    }

    /**
     * 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 settings for cluster runtime protection.
     * 
     */
    @Import(name="runtimeProtectionConfiguration")
    private @Nullable Output runtimeProtectionConfiguration;

    /**
     * @return The settings for cluster runtime protection.
     * 
     */
    public Optional> runtimeProtectionConfiguration() {
        return Optional.ofNullable(this.runtimeProtectionConfiguration);
    }

    /**
     * The configuration for use of a key vault to store secrets for later retrieval by the operator.
     * 
     */
    @Import(name="secretArchive")
    private @Nullable Output secretArchive;

    /**
     * @return The configuration for use of a key vault to store secrets for later retrieval by the operator.
     * 
     */
    public Optional> secretArchive() {
        return Optional.ofNullable(this.secretArchive);
    }

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

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

    /**
     * The strategy for updating the cluster.
     * 
     */
    @Import(name="updateStrategy")
    private @Nullable Output updateStrategy;

    /**
     * @return The strategy for updating the cluster.
     * 
     */
    public Optional> updateStrategy() {
        return Optional.ofNullable(this.updateStrategy);
    }

    private ClusterArgs() {}

    private ClusterArgs(ClusterArgs $) {
        this.aggregatorOrSingleRackDefinition = $.aggregatorOrSingleRackDefinition;
        this.analyticsWorkspaceId = $.analyticsWorkspaceId;
        this.clusterLocation = $.clusterLocation;
        this.clusterName = $.clusterName;
        this.clusterServicePrincipal = $.clusterServicePrincipal;
        this.clusterType = $.clusterType;
        this.clusterVersion = $.clusterVersion;
        this.computeDeploymentThreshold = $.computeDeploymentThreshold;
        this.computeRackDefinitions = $.computeRackDefinitions;
        this.extendedLocation = $.extendedLocation;
        this.location = $.location;
        this.managedResourceGroupConfiguration = $.managedResourceGroupConfiguration;
        this.networkFabricId = $.networkFabricId;
        this.resourceGroupName = $.resourceGroupName;
        this.runtimeProtectionConfiguration = $.runtimeProtectionConfiguration;
        this.secretArchive = $.secretArchive;
        this.tags = $.tags;
        this.updateStrategy = $.updateStrategy;
    }

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

    public static final class Builder {
        private ClusterArgs $;

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

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

        /**
         * @param aggregatorOrSingleRackDefinition The rack definition that is intended to reflect only a single rack in a single rack cluster, or an aggregator rack in a multi-rack cluster.
         * 
         * @return builder
         * 
         */
        public Builder aggregatorOrSingleRackDefinition(Output aggregatorOrSingleRackDefinition) {
            $.aggregatorOrSingleRackDefinition = aggregatorOrSingleRackDefinition;
            return this;
        }

        /**
         * @param aggregatorOrSingleRackDefinition The rack definition that is intended to reflect only a single rack in a single rack cluster, or an aggregator rack in a multi-rack cluster.
         * 
         * @return builder
         * 
         */
        public Builder aggregatorOrSingleRackDefinition(RackDefinitionArgs aggregatorOrSingleRackDefinition) {
            return aggregatorOrSingleRackDefinition(Output.of(aggregatorOrSingleRackDefinition));
        }

        /**
         * @param analyticsWorkspaceId The resource ID of the Log Analytics Workspace that will be used for storing relevant logs.
         * 
         * @return builder
         * 
         */
        public Builder analyticsWorkspaceId(@Nullable Output analyticsWorkspaceId) {
            $.analyticsWorkspaceId = analyticsWorkspaceId;
            return this;
        }

        /**
         * @param analyticsWorkspaceId The resource ID of the Log Analytics Workspace that will be used for storing relevant logs.
         * 
         * @return builder
         * 
         */
        public Builder analyticsWorkspaceId(String analyticsWorkspaceId) {
            return analyticsWorkspaceId(Output.of(analyticsWorkspaceId));
        }

        /**
         * @param clusterLocation The customer-provided location information to identify where the cluster resides.
         * 
         * @return builder
         * 
         */
        public Builder clusterLocation(@Nullable Output clusterLocation) {
            $.clusterLocation = clusterLocation;
            return this;
        }

        /**
         * @param clusterLocation The customer-provided location information to identify where the cluster resides.
         * 
         * @return builder
         * 
         */
        public Builder clusterLocation(String clusterLocation) {
            return clusterLocation(Output.of(clusterLocation));
        }

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

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

        /**
         * @param clusterServicePrincipal The service principal to be used by the cluster during Arc Appliance installation.
         * 
         * @return builder
         * 
         */
        public Builder clusterServicePrincipal(@Nullable Output clusterServicePrincipal) {
            $.clusterServicePrincipal = clusterServicePrincipal;
            return this;
        }

        /**
         * @param clusterServicePrincipal The service principal to be used by the cluster during Arc Appliance installation.
         * 
         * @return builder
         * 
         */
        public Builder clusterServicePrincipal(ServicePrincipalInformationArgs clusterServicePrincipal) {
            return clusterServicePrincipal(Output.of(clusterServicePrincipal));
        }

        /**
         * @param clusterType The type of rack configuration for the cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterType(Output> clusterType) {
            $.clusterType = clusterType;
            return this;
        }

        /**
         * @param clusterType The type of rack configuration for the cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterType(Either clusterType) {
            return clusterType(Output.of(clusterType));
        }

        /**
         * @param clusterType The type of rack configuration for the cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterType(String clusterType) {
            return clusterType(Either.ofLeft(clusterType));
        }

        /**
         * @param clusterType The type of rack configuration for the cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterType(ClusterType clusterType) {
            return clusterType(Either.ofRight(clusterType));
        }

        /**
         * @param clusterVersion The current runtime version of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterVersion(Output clusterVersion) {
            $.clusterVersion = clusterVersion;
            return this;
        }

        /**
         * @param clusterVersion The current runtime version of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterVersion(String clusterVersion) {
            return clusterVersion(Output.of(clusterVersion));
        }

        /**
         * @param computeDeploymentThreshold The validation threshold indicating the allowable failures of compute machines during environment validation and deployment.
         * 
         * @return builder
         * 
         */
        public Builder computeDeploymentThreshold(@Nullable Output computeDeploymentThreshold) {
            $.computeDeploymentThreshold = computeDeploymentThreshold;
            return this;
        }

        /**
         * @param computeDeploymentThreshold The validation threshold indicating the allowable failures of compute machines during environment validation and deployment.
         * 
         * @return builder
         * 
         */
        public Builder computeDeploymentThreshold(ValidationThresholdArgs computeDeploymentThreshold) {
            return computeDeploymentThreshold(Output.of(computeDeploymentThreshold));
        }

        /**
         * @param computeRackDefinitions The list of rack definitions for the compute racks in a multi-rack
         * cluster, or an empty list in a single-rack cluster.
         * 
         * @return builder
         * 
         */
        public Builder computeRackDefinitions(@Nullable Output> computeRackDefinitions) {
            $.computeRackDefinitions = computeRackDefinitions;
            return this;
        }

        /**
         * @param computeRackDefinitions The list of rack definitions for the compute racks in a multi-rack
         * cluster, or an empty list in a single-rack cluster.
         * 
         * @return builder
         * 
         */
        public Builder computeRackDefinitions(List computeRackDefinitions) {
            return computeRackDefinitions(Output.of(computeRackDefinitions));
        }

        /**
         * @param computeRackDefinitions The list of rack definitions for the compute racks in a multi-rack
         * cluster, or an empty list in a single-rack cluster.
         * 
         * @return builder
         * 
         */
        public Builder computeRackDefinitions(RackDefinitionArgs... computeRackDefinitions) {
            return computeRackDefinitions(List.of(computeRackDefinitions));
        }

        /**
         * @param extendedLocation The extended location of the cluster manager associated with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(Output extendedLocation) {
            $.extendedLocation = extendedLocation;
            return this;
        }

        /**
         * @param extendedLocation The extended location of the cluster manager associated with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
            return extendedLocation(Output.of(extendedLocation));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param managedResourceGroupConfiguration The configuration of the managed resource group associated with the resource.
         * 
         * @return builder
         * 
         */
        public Builder managedResourceGroupConfiguration(@Nullable Output managedResourceGroupConfiguration) {
            $.managedResourceGroupConfiguration = managedResourceGroupConfiguration;
            return this;
        }

        /**
         * @param managedResourceGroupConfiguration The configuration of the managed resource group associated with the resource.
         * 
         * @return builder
         * 
         */
        public Builder managedResourceGroupConfiguration(ManagedResourceGroupConfigurationArgs managedResourceGroupConfiguration) {
            return managedResourceGroupConfiguration(Output.of(managedResourceGroupConfiguration));
        }

        /**
         * @param networkFabricId The resource ID of the Network Fabric associated with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder networkFabricId(Output networkFabricId) {
            $.networkFabricId = networkFabricId;
            return this;
        }

        /**
         * @param networkFabricId The resource ID of the Network Fabric associated with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder networkFabricId(String networkFabricId) {
            return networkFabricId(Output.of(networkFabricId));
        }

        /**
         * @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 runtimeProtectionConfiguration The settings for cluster runtime protection.
         * 
         * @return builder
         * 
         */
        public Builder runtimeProtectionConfiguration(@Nullable Output runtimeProtectionConfiguration) {
            $.runtimeProtectionConfiguration = runtimeProtectionConfiguration;
            return this;
        }

        /**
         * @param runtimeProtectionConfiguration The settings for cluster runtime protection.
         * 
         * @return builder
         * 
         */
        public Builder runtimeProtectionConfiguration(RuntimeProtectionConfigurationArgs runtimeProtectionConfiguration) {
            return runtimeProtectionConfiguration(Output.of(runtimeProtectionConfiguration));
        }

        /**
         * @param secretArchive The configuration for use of a key vault to store secrets for later retrieval by the operator.
         * 
         * @return builder
         * 
         */
        public Builder secretArchive(@Nullable Output secretArchive) {
            $.secretArchive = secretArchive;
            return this;
        }

        /**
         * @param secretArchive The configuration for use of a key vault to store secrets for later retrieval by the operator.
         * 
         * @return builder
         * 
         */
        public Builder secretArchive(ClusterSecretArchiveArgs secretArchive) {
            return secretArchive(Output.of(secretArchive));
        }

        /**
         * @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 updateStrategy The strategy for updating the cluster.
         * 
         * @return builder
         * 
         */
        public Builder updateStrategy(@Nullable Output updateStrategy) {
            $.updateStrategy = updateStrategy;
            return this;
        }

        /**
         * @param updateStrategy The strategy for updating the cluster.
         * 
         * @return builder
         * 
         */
        public Builder updateStrategy(ClusterUpdateStrategyArgs updateStrategy) {
            return updateStrategy(Output.of(updateStrategy));
        }

        public ClusterArgs build() {
            if ($.aggregatorOrSingleRackDefinition == null) {
                throw new MissingRequiredPropertyException("ClusterArgs", "aggregatorOrSingleRackDefinition");
            }
            if ($.clusterType == null) {
                throw new MissingRequiredPropertyException("ClusterArgs", "clusterType");
            }
            if ($.clusterVersion == null) {
                throw new MissingRequiredPropertyException("ClusterArgs", "clusterVersion");
            }
            if ($.extendedLocation == null) {
                throw new MissingRequiredPropertyException("ClusterArgs", "extendedLocation");
            }
            if ($.networkFabricId == null) {
                throw new MissingRequiredPropertyException("ClusterArgs", "networkFabricId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ClusterArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy