import { LoggingProps } from './cluster/LoggingProps';
import { Value } from '../../cloudformation/Value';
import { OutpostConfigProps } from './cluster/OutpostConfigProps';
import { EncryptionConfigProps } from './cluster/EncryptionConfigProps';
import { KubernetesNetworkConfigProps } from './cluster/KubernetesNetworkConfigProps';
import { ResourcesVpcConfigProps } from './cluster/ResourcesVpcConfigProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ClusterAttributes = {
    Endpoint: Attribute<string>;
    ClusterSecurityGroupId: Attribute<string>;
    EncryptionConfigKeyArn: Attribute<string>;
    Id: Attribute<string>;
    CertificateAuthorityData: Attribute<string>;
    Arn: Attribute<string>;
    KubernetesNetworkConfig_ServiceIpv6Cidr: Attribute<string>;
    OpenIdConnectIssuerUrl: Attribute<string>;
};
export type Cluster = AwsResource<'AWS::EKS::Cluster', ClusterProperties, ClusterAttributes>;
/**
  Creates an Amazon EKS control plane.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html">the AWS Docs</a>
*/
export declare function cluster(clusterProps: ClusterProperties): Cluster;
/**
  Creates an Amazon EKS control plane.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html">the AWS Docs</a>
*/
export interface ClusterProperties {
    /** <code>Logging</code>  <a name="cfn-eks-cluster-logging"></a>
  The logging configuration for your cluster.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    logging?: LoggingProps;
    /** <code>Version</code>  <a name="cfn-eks-cluster-version"></a>
  The desired Kubernetes version for your cluster. If you don’t specify a value here, the default version available in Amazon EKS is used.<br />
  The default version might not be the latest version available.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    version?: Value<string>;
    /** <code>OutpostConfig</code>  <a name="cfn-eks-cluster-outpostconfig"></a>
  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.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    outpostConfig?: OutpostConfigProps;
    /** <code>EncryptionConfig</code>  <a name="cfn-eks-cluster-encryptionconfig"></a>
  The encryption configuration for the cluster.<br />
  
  Required: No<br />
  
  Maximum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    encryptionConfig?: EncryptionConfigProps[];
    /** <code>KubernetesNetworkConfig</code>  <a name="cfn-eks-cluster-kubernetesnetworkconfig"></a>
  The Kubernetes network configuration for the cluster.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    kubernetesNetworkConfig?: KubernetesNetworkConfigProps;
    /** <code>RoleArn</code>  <a name="cfn-eks-cluster-rolearn"></a>
  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. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html">Amazon EKS Service IAM Role</a> in the *
  Amazon EKS User Guide: .<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    roleArn: Value<string>;
    /** <code>ResourcesVpcConfig</code>  <a name="cfn-eks-cluster-resourcesvpcconfig"></a>
  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 <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> 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.<br />
  Updates require replacement of the <code>SecurityGroupIds</code> and <code>SubnetIds</code> sub-properties.
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    resourcesVpcConfig: ResourcesVpcConfigProps;
    /** <code>Tags</code>  <a name="cfn-eks-cluster-tags"></a>
  The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags don’t propagate to any other resources associated with the cluster.<br />
  You must have the <code>eks:TagResource</code> and <code>eks:UntagResource</code> permissions for your <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html">IAM principal</a> to manage the AWS CloudFormation stack. If you don’t have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
    /** <code>Name</code>  <a name="cfn-eks-cluster-name"></a>
  The unique name to give to your cluster.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Pattern: <code>^[0-9A-Za-z][A-Za-z0-9\-_]*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name?: Value<string>;
}
