import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Uses Azure REST API version 2025-02-01. In version 2.x of the Azure Native provider, it used API version 2023-10-01-preview.
 *
 * Other available API versions: 2024-07-01, 2024-10-01-preview, 2025-07-01-preview, 2025-09-01. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native networkcloud [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class AgentPool extends pulumi.CustomResource {
    /**
     * Get an existing AgentPool resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): AgentPool;
    /**
     * Returns true if the given object is an instance of AgentPool.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is AgentPool;
    /**
     * The administrator credentials to be used for the nodes in this agent pool.
     */
    readonly administratorConfiguration: pulumi.Output<outputs.networkcloud.AdministratorConfigurationResponse | undefined>;
    /**
     * The configurations that will be applied to each agent in this agent pool.
     */
    readonly agentOptions: pulumi.Output<outputs.networkcloud.AgentOptionsResponse | undefined>;
    /**
     * The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     */
    readonly attachedNetworkConfiguration: pulumi.Output<outputs.networkcloud.AttachedNetworkConfigurationResponse | undefined>;
    /**
     * 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.
     */
    readonly availabilityZones: pulumi.Output<string[] | undefined>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * The number of virtual machines that use this configuration.
     */
    readonly count: pulumi.Output<number>;
    /**
     * The current status of the agent pool.
     */
    readonly detailedStatus: pulumi.Output<string>;
    /**
     * The descriptive message about the current detailed status.
     */
    readonly detailedStatusMessage: pulumi.Output<string>;
    /**
     * Resource ETag.
     */
    readonly etag: pulumi.Output<string>;
    /**
     * The extended location of the cluster associated with the resource.
     */
    readonly extendedLocation: pulumi.Output<outputs.networkcloud.ExtendedLocationResponse | undefined>;
    /**
     * The Kubernetes version running in this agent pool.
     */
    readonly kubernetesVersion: pulumi.Output<string>;
    /**
     * The labels applied to the nodes in this agent pool.
     */
    readonly labels: pulumi.Output<outputs.networkcloud.KubernetesLabelResponse[] | undefined>;
    /**
     * The geo-location where the resource lives
     */
    readonly location: pulumi.Output<string>;
    /**
     * 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.
     */
    readonly mode: pulumi.Output<string>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * The provisioning state of the agent pool.
     */
    readonly provisioningState: pulumi.Output<string>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.networkcloud.SystemDataResponse>;
    /**
     * Resource tags.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The taints applied to the nodes in this agent pool.
     */
    readonly taints: pulumi.Output<outputs.networkcloud.KubernetesLabelResponse[] | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * The configuration of the agent pool.
     */
    readonly upgradeSettings: pulumi.Output<outputs.networkcloud.AgentPoolUpgradeSettingsResponse | undefined>;
    /**
     * The name of the VM SKU that determines the size of resources allocated for node VMs.
     */
    readonly vmSkuName: pulumi.Output<string>;
    /**
     * Create a AgentPool resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: AgentPoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a AgentPool resource.
 */
export interface AgentPoolArgs {
    /**
     * The administrator credentials to be used for the nodes in this agent pool.
     */
    administratorConfiguration?: pulumi.Input<inputs.networkcloud.AdministratorConfigurationArgs>;
    /**
     * The configurations that will be applied to each agent in this agent pool.
     */
    agentOptions?: pulumi.Input<inputs.networkcloud.AgentOptionsArgs>;
    /**
     * The name of the Kubernetes cluster agent pool.
     */
    agentPoolName?: pulumi.Input<string>;
    /**
     * The configuration of networks being attached to the agent pool for use by the workloads that run on this Kubernetes cluster.
     */
    attachedNetworkConfiguration?: pulumi.Input<inputs.networkcloud.AttachedNetworkConfigurationArgs>;
    /**
     * 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.
     */
    availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The number of virtual machines that use this configuration.
     */
    count: pulumi.Input<number>;
    /**
     * The extended location of the cluster associated with the resource.
     */
    extendedLocation?: pulumi.Input<inputs.networkcloud.ExtendedLocationArgs>;
    /**
     * The name of the Kubernetes cluster.
     */
    kubernetesClusterName: pulumi.Input<string>;
    /**
     * The labels applied to the nodes in this agent pool.
     */
    labels?: pulumi.Input<pulumi.Input<inputs.networkcloud.KubernetesLabelArgs>[]>;
    /**
     * The geo-location where the resource lives
     */
    location?: pulumi.Input<string>;
    /**
     * 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.
     */
    mode: pulumi.Input<string | enums.networkcloud.AgentPoolMode>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Resource tags.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The taints applied to the nodes in this agent pool.
     */
    taints?: pulumi.Input<pulumi.Input<inputs.networkcloud.KubernetesLabelArgs>[]>;
    /**
     * The configuration of the agent pool.
     */
    upgradeSettings?: pulumi.Input<inputs.networkcloud.AgentPoolUpgradeSettingsArgs>;
    /**
     * The name of the VM SKU that determines the size of resources allocated for node VMs.
     */
    vmSkuName: pulumi.Input<string>;
}
