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

com.pulumi.azurenative.networkcloud.AgentPoolArgs 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.AgentPoolMode;
import com.pulumi.azurenative.networkcloud.inputs.AdministratorConfigurationArgs;
import com.pulumi.azurenative.networkcloud.inputs.AgentOptionsArgs;
import com.pulumi.azurenative.networkcloud.inputs.AgentPoolUpgradeSettingsArgs;
import com.pulumi.azurenative.networkcloud.inputs.AttachedNetworkConfigurationArgs;
import com.pulumi.azurenative.networkcloud.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.networkcloud.inputs.KubernetesLabelArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Double;
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 AgentPoolArgs extends com.pulumi.resources.ResourceArgs {

    public static final AgentPoolArgs Empty = new AgentPoolArgs();

    /**
     * The administrator credentials to be used for the nodes in this agent pool.
     * 
     */
    @Import(name="administratorConfiguration")
    private @Nullable Output administratorConfiguration;

    /**
     * @return The administrator credentials to be used for the nodes in this agent pool.
     * 
     */
    public Optional> administratorConfiguration() {
        return Optional.ofNullable(this.administratorConfiguration);
    }

    /**
     * The configurations that will be applied to each agent in this agent pool.
     * 
     */
    @Import(name="agentOptions")
    private @Nullable Output agentOptions;

    /**
     * @return The configurations that will be applied to each agent in this agent pool.
     * 
     */
    public Optional> agentOptions() {
        return Optional.ofNullable(this.agentOptions);
    }

    /**
     * The name of the Kubernetes cluster agent pool.
     * 
     */
    @Import(name="agentPoolName")
    private @Nullable Output agentPoolName;

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

    /**
     * The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     * 
     */
    @Import(name="attachedNetworkConfiguration")
    private @Nullable Output attachedNetworkConfiguration;

    /**
     * @return The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     * 
     */
    public Optional> attachedNetworkConfiguration() {
        return Optional.ofNullable(this.attachedNetworkConfiguration);
    }

    /**
     * The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
     * 
     */
    @Import(name="availabilityZones")
    private @Nullable Output> availabilityZones;

    /**
     * @return The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
     * 
     */
    public Optional>> availabilityZones() {
        return Optional.ofNullable(this.availabilityZones);
    }

    /**
     * The number of virtual machines that use this configuration.
     * 
     */
    @Import(name="count", required=true)
    private Output count;

    /**
     * @return The number of virtual machines that use this configuration.
     * 
     */
    public Output count() {
        return this.count;
    }

    /**
     * The extended location of the cluster associated with the resource.
     * 
     */
    @Import(name="extendedLocation")
    private @Nullable Output extendedLocation;

    /**
     * @return The extended location of the cluster associated with the resource.
     * 
     */
    public Optional> extendedLocation() {
        return Optional.ofNullable(this.extendedLocation);
    }

    /**
     * The name of the Kubernetes cluster.
     * 
     */
    @Import(name="kubernetesClusterName", required=true)
    private Output kubernetesClusterName;

    /**
     * @return The name of the Kubernetes cluster.
     * 
     */
    public Output kubernetesClusterName() {
        return this.kubernetesClusterName;
    }

    /**
     * The labels applied to the nodes in this agent pool.
     * 
     */
    @Import(name="labels")
    private @Nullable Output> labels;

    /**
     * @return The labels applied to the nodes in this agent pool.
     * 
     */
    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

    /**
     * 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 selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
     * 
     */
    @Import(name="mode", required=true)
    private Output> mode;

    /**
     * @return The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
     * 
     */
    public Output> mode() {
        return this.mode;
    }

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

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

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

    /**
     * The taints applied to the nodes in this agent pool.
     * 
     */
    @Import(name="taints")
    private @Nullable Output> taints;

    /**
     * @return The taints applied to the nodes in this agent pool.
     * 
     */
    public Optional>> taints() {
        return Optional.ofNullable(this.taints);
    }

    /**
     * The configuration of the agent pool.
     * 
     */
    @Import(name="upgradeSettings")
    private @Nullable Output upgradeSettings;

    /**
     * @return The configuration of the agent pool.
     * 
     */
    public Optional> upgradeSettings() {
        return Optional.ofNullable(this.upgradeSettings);
    }

    /**
     * The name of the VM SKU that determines the size of resources allocated for node VMs.
     * 
     */
    @Import(name="vmSkuName", required=true)
    private Output vmSkuName;

    /**
     * @return The name of the VM SKU that determines the size of resources allocated for node VMs.
     * 
     */
    public Output vmSkuName() {
        return this.vmSkuName;
    }

    private AgentPoolArgs() {}

    private AgentPoolArgs(AgentPoolArgs $) {
        this.administratorConfiguration = $.administratorConfiguration;
        this.agentOptions = $.agentOptions;
        this.agentPoolName = $.agentPoolName;
        this.attachedNetworkConfiguration = $.attachedNetworkConfiguration;
        this.availabilityZones = $.availabilityZones;
        this.count = $.count;
        this.extendedLocation = $.extendedLocation;
        this.kubernetesClusterName = $.kubernetesClusterName;
        this.labels = $.labels;
        this.location = $.location;
        this.mode = $.mode;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.taints = $.taints;
        this.upgradeSettings = $.upgradeSettings;
        this.vmSkuName = $.vmSkuName;
    }

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

    public static final class Builder {
        private AgentPoolArgs $;

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

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

        /**
         * @param administratorConfiguration The administrator credentials to be used for the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder administratorConfiguration(@Nullable Output administratorConfiguration) {
            $.administratorConfiguration = administratorConfiguration;
            return this;
        }

        /**
         * @param administratorConfiguration The administrator credentials to be used for the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder administratorConfiguration(AdministratorConfigurationArgs administratorConfiguration) {
            return administratorConfiguration(Output.of(administratorConfiguration));
        }

        /**
         * @param agentOptions The configurations that will be applied to each agent in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder agentOptions(@Nullable Output agentOptions) {
            $.agentOptions = agentOptions;
            return this;
        }

        /**
         * @param agentOptions The configurations that will be applied to each agent in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder agentOptions(AgentOptionsArgs agentOptions) {
            return agentOptions(Output.of(agentOptions));
        }

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

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

        /**
         * @param attachedNetworkConfiguration The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder attachedNetworkConfiguration(@Nullable Output attachedNetworkConfiguration) {
            $.attachedNetworkConfiguration = attachedNetworkConfiguration;
            return this;
        }

        /**
         * @param attachedNetworkConfiguration The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
         * 
         * @return builder
         * 
         */
        public Builder attachedNetworkConfiguration(AttachedNetworkConfigurationArgs attachedNetworkConfiguration) {
            return attachedNetworkConfiguration(Output.of(attachedNetworkConfiguration));
        }

        /**
         * @param availabilityZones The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZones(@Nullable Output> availabilityZones) {
            $.availabilityZones = availabilityZones;
            return this;
        }

        /**
         * @param availabilityZones The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZones(List availabilityZones) {
            return availabilityZones(Output.of(availabilityZones));
        }

        /**
         * @param availabilityZones The list of availability zones of the Network Cloud cluster used for the provisioning of nodes in this agent pool. If not specified, all availability zones will be used.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZones(String... availabilityZones) {
            return availabilityZones(List.of(availabilityZones));
        }

        /**
         * @param count The number of virtual machines that use this configuration.
         * 
         * @return builder
         * 
         */
        public Builder count(Output count) {
            $.count = count;
            return this;
        }

        /**
         * @param count The number of virtual machines that use this configuration.
         * 
         * @return builder
         * 
         */
        public Builder count(Double count) {
            return count(Output.of(count));
        }

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

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

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

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

        /**
         * @param labels The labels applied to the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        /**
         * @param labels The labels applied to the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder labels(List labels) {
            return labels(Output.of(labels));
        }

        /**
         * @param labels The labels applied to the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder labels(KubernetesLabelArgs... labels) {
            return labels(List.of(labels));
        }

        /**
         * @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 mode The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
         * 
         * @return builder
         * 
         */
        public Builder mode(Output> mode) {
            $.mode = mode;
            return this;
        }

        /**
         * @param mode The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
         * 
         * @return builder
         * 
         */
        public Builder mode(Either mode) {
            return mode(Output.of(mode));
        }

        /**
         * @param mode The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
         * 
         * @return builder
         * 
         */
        public Builder mode(String mode) {
            return mode(Either.ofLeft(mode));
        }

        /**
         * @param mode The selection of how this agent pool is utilized, either as a system pool or a user pool. System pools run the features and critical services for the Kubernetes Cluster, while user pools are dedicated to user workloads. Every Kubernetes cluster must contain at least one system node pool with at least one node.
         * 
         * @return builder
         * 
         */
        public Builder mode(AgentPoolMode mode) {
            return mode(Either.ofRight(mode));
        }

        /**
         * @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 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 taints The taints applied to the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder taints(@Nullable Output> taints) {
            $.taints = taints;
            return this;
        }

        /**
         * @param taints The taints applied to the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder taints(List taints) {
            return taints(Output.of(taints));
        }

        /**
         * @param taints The taints applied to the nodes in this agent pool.
         * 
         * @return builder
         * 
         */
        public Builder taints(KubernetesLabelArgs... taints) {
            return taints(List.of(taints));
        }

        /**
         * @param upgradeSettings The configuration of the agent pool.
         * 
         * @return builder
         * 
         */
        public Builder upgradeSettings(@Nullable Output upgradeSettings) {
            $.upgradeSettings = upgradeSettings;
            return this;
        }

        /**
         * @param upgradeSettings The configuration of the agent pool.
         * 
         * @return builder
         * 
         */
        public Builder upgradeSettings(AgentPoolUpgradeSettingsArgs upgradeSettings) {
            return upgradeSettings(Output.of(upgradeSettings));
        }

        /**
         * @param vmSkuName The name of the VM SKU that determines the size of resources allocated for node VMs.
         * 
         * @return builder
         * 
         */
        public Builder vmSkuName(Output vmSkuName) {
            $.vmSkuName = vmSkuName;
            return this;
        }

        /**
         * @param vmSkuName The name of the VM SKU that determines the size of resources allocated for node VMs.
         * 
         * @return builder
         * 
         */
        public Builder vmSkuName(String vmSkuName) {
            return vmSkuName(Output.of(vmSkuName));
        }

        public AgentPoolArgs build() {
            if ($.count == null) {
                throw new MissingRequiredPropertyException("AgentPoolArgs", "count");
            }
            if ($.kubernetesClusterName == null) {
                throw new MissingRequiredPropertyException("AgentPoolArgs", "kubernetesClusterName");
            }
            if ($.mode == null) {
                throw new MissingRequiredPropertyException("AgentPoolArgs", "mode");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AgentPoolArgs", "resourceGroupName");
            }
            if ($.vmSkuName == null) {
                throw new MissingRequiredPropertyException("AgentPoolArgs", "vmSkuName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy