import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * An object representing an Amazon EKS cluster.
 */
export declare class Cluster extends pulumi.CustomResource {
    /**
     * Get an existing Cluster 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): Cluster;
    /**
     * Returns true if the given object is an instance of Cluster.  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 Cluster;
    /**
     * The access configuration for the cluster.
     */
    readonly accessConfig: pulumi.Output<outputs.eks.ClusterAccessConfig | undefined>;
    /**
     * The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The unique ID given to your cluster.
     */
    readonly awsId: pulumi.Output<string>;
    /**
     * Set this value to false to avoid creating the default networking add-ons when the cluster is created.
     */
    readonly bootstrapSelfManagedAddons: pulumi.Output<boolean | undefined>;
    /**
     * The certificate-authority-data for your cluster.
     */
    readonly certificateAuthorityData: pulumi.Output<string>;
    /**
     * The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.
     */
    readonly clusterSecurityGroupId: pulumi.Output<string>;
    /**
     * Indicates the current configuration of the compute capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the compute capability is enabled, EKS Auto Mode will create and delete EC2 Managed Instances in your AWS account. For more information, see EKS Auto Mode compute capability in the *Amazon EKS User Guide* .
     */
    readonly computeConfig: pulumi.Output<outputs.eks.ClusterComputeConfig | undefined>;
    /**
     * The encryption configuration for the cluster.
     */
    readonly encryptionConfig: pulumi.Output<outputs.eks.ClusterEncryptionConfig[] | undefined>;
    /**
     * Amazon Resource Name (ARN) or alias of the customer master key (CMK).
     */
    readonly encryptionConfigKeyArn: pulumi.Output<string>;
    /**
     * The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.
     */
    readonly endpoint: pulumi.Output<string>;
    /**
     * Force cluster version update
     */
    readonly force: pulumi.Output<boolean | undefined>;
    /**
     * The Kubernetes network configuration for the cluster.
     */
    readonly kubernetesNetworkConfig: pulumi.Output<outputs.eks.ClusterKubernetesNetworkConfig | undefined>;
    /**
     * The logging configuration for your cluster.
     */
    readonly logging: pulumi.Output<outputs.eks.Logging | undefined>;
    /**
     * The unique name to give to your cluster.
     */
    readonly name: pulumi.Output<string | undefined>;
    /**
     * The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.
     */
    readonly openIdConnectIssuerUrl: pulumi.Output<string>;
    /**
     * An object representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This object isn't available for clusters on the AWS cloud.
     */
    readonly outpostConfig: pulumi.Output<outputs.eks.ClusterOutpostConfig | undefined>;
    /**
     * The configuration in the cluster for EKS Hybrid Nodes. You can add, change, or remove this configuration after the cluster is created.
     */
    readonly remoteNetworkConfig: pulumi.Output<outputs.eks.ClusterRemoteNetworkConfig | undefined>;
    /**
     * The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see [Cluster VPC Considerations](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) and [Cluster Security Group Considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the *Amazon EKS User Guide* . You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
     */
    readonly resourcesVpcConfig: pulumi.Output<outputs.eks.ClusterResourcesVpcConfig>;
    /**
     * The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.
     */
    readonly roleArn: pulumi.Output<string>;
    /**
     * Indicates the current configuration of the block storage capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the block storage capability is enabled, EKS Auto Mode will create and delete EBS volumes in your AWS account. For more information, see EKS Auto Mode block storage capability in the *Amazon EKS User Guide* .
     */
    readonly storageConfig: pulumi.Output<outputs.eks.ClusterStorageConfig | undefined>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * This value indicates if extended support is enabled or disabled for the cluster.
     *
     * [Learn more about EKS Extended Support in the *Amazon EKS User Guide* .](https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html)
     */
    readonly upgradePolicy: pulumi.Output<outputs.eks.ClusterUpgradePolicy | undefined>;
    /**
     * The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.
     */
    readonly version: pulumi.Output<string | undefined>;
    /**
     * The configuration for zonal shift for the cluster.
     */
    readonly zonalShiftConfig: pulumi.Output<outputs.eks.ClusterZonalShiftConfig | undefined>;
    /**
     * Create a Cluster 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: ClusterArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Cluster resource.
 */
export interface ClusterArgs {
    /**
     * The access configuration for the cluster.
     */
    accessConfig?: pulumi.Input<inputs.eks.ClusterAccessConfigArgs>;
    /**
     * Set this value to false to avoid creating the default networking add-ons when the cluster is created.
     */
    bootstrapSelfManagedAddons?: pulumi.Input<boolean>;
    /**
     * Indicates the current configuration of the compute capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the compute capability is enabled, EKS Auto Mode will create and delete EC2 Managed Instances in your AWS account. For more information, see EKS Auto Mode compute capability in the *Amazon EKS User Guide* .
     */
    computeConfig?: pulumi.Input<inputs.eks.ClusterComputeConfigArgs>;
    /**
     * The encryption configuration for the cluster.
     */
    encryptionConfig?: pulumi.Input<pulumi.Input<inputs.eks.ClusterEncryptionConfigArgs>[]>;
    /**
     * Force cluster version update
     */
    force?: pulumi.Input<boolean>;
    /**
     * The Kubernetes network configuration for the cluster.
     */
    kubernetesNetworkConfig?: pulumi.Input<inputs.eks.ClusterKubernetesNetworkConfigArgs>;
    /**
     * The logging configuration for your cluster.
     */
    logging?: pulumi.Input<inputs.eks.LoggingArgs>;
    /**
     * The unique name to give to your cluster.
     */
    name?: pulumi.Input<string>;
    /**
     * An object representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This object isn't available for clusters on the AWS cloud.
     */
    outpostConfig?: pulumi.Input<inputs.eks.ClusterOutpostConfigArgs>;
    /**
     * The configuration in the cluster for EKS Hybrid Nodes. You can add, change, or remove this configuration after the cluster is created.
     */
    remoteNetworkConfig?: pulumi.Input<inputs.eks.ClusterRemoteNetworkConfigArgs>;
    /**
     * The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see [Cluster VPC Considerations](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) and [Cluster Security Group Considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the *Amazon EKS User Guide* . You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
     */
    resourcesVpcConfig: pulumi.Input<inputs.eks.ClusterResourcesVpcConfigArgs>;
    /**
     * The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.
     */
    roleArn: pulumi.Input<string>;
    /**
     * Indicates the current configuration of the block storage capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the block storage capability is enabled, EKS Auto Mode will create and delete EBS volumes in your AWS account. For more information, see EKS Auto Mode block storage capability in the *Amazon EKS User Guide* .
     */
    storageConfig?: pulumi.Input<inputs.eks.ClusterStorageConfigArgs>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * This value indicates if extended support is enabled or disabled for the cluster.
     *
     * [Learn more about EKS Extended Support in the *Amazon EKS User Guide* .](https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html)
     */
    upgradePolicy?: pulumi.Input<inputs.eks.ClusterUpgradePolicyArgs>;
    /**
     * The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.
     */
    version?: pulumi.Input<string>;
    /**
     * The configuration for zonal shift for the cluster.
     */
    zonalShiftConfig?: pulumi.Input<inputs.eks.ClusterZonalShiftConfigArgs>;
}
