import { CfnResource, Resolvable } from '../../base';
export declare type Cluster_Type = 'AWS::ECS::Cluster';
export declare const Cluster_Type = "AWS::ECS::Cluster";
/**
 * Create an Elastic Container Service (ECS) cluster. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html}
 */
export default function Cluster(props: Cluster_Properties): CfnResource<Cluster_Properties>;
/**
 * Create an Elastic Container Service (ECS) cluster. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html}
 */
export declare type Cluster_Properties = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-tags}
     */
    Tags?: Tag[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustername}
     */
    ClusterName?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustersettings}
     */
    ClusterSettings?: ClusterSettings[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-configuration}
     */
    Configuration?: ClusterConfiguration;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-capacityproviders}
     */
    CapacityProviders?: Resolvable<string>[];
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-defaultcapacityproviderstrategy}
     */
    DefaultCapacityProviderStrategy?: CapacityProviderStrategyItem[];
    Arn?: Resolvable<string>;
};
export declare type Tag = {
    Key?: Resolvable<string>;
    Value?: Resolvable<string>;
};
/**
 * The setting to use when creating a cluster. This parameter is used to
 * enable CloudWatch Container Insights for a cluster. If this value is
 * specified, it will override the containerInsights value set with
 * PutAccountSetting or PutAccountSettingDefault. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html}
 */
export declare type ClusterSettings = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html#cfn-ecs-cluster-clustersettings-name}
     */
    Name?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html#cfn-ecs-cluster-clustersettings-value}
     */
    Value?: Resolvable<string>;
};
/**
 * The configurations to be set at cluster level. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html}
 */
export declare type ClusterConfiguration = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html#cfn-ecs-cluster-clusterconfiguration-executecommandconfiguration}
     */
    ExecuteCommandConfiguration?: ExecuteCommandConfiguration;
};
/**
 * The configuration for ExecuteCommand. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html}
 */
export declare type ExecuteCommandConfiguration = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-kmskeyid}
     */
    KmsKeyId?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-logging}
     */
    Logging?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-logconfiguration}
     */
    LogConfiguration?: ExecuteCommandLogConfiguration;
};
/**
 * The session logging configuration for ExecuteCommand. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html}
 */
export declare type ExecuteCommandLogConfiguration = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-cloudwatchloggroupname}
     */
    CloudWatchLogGroupName?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-cloudwatchencryptionenabled}
     */
    CloudWatchEncryptionEnabled?: Resolvable<boolean>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3bucketname}
     */
    S3BucketName?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3encryptionenabled}
     */
    S3EncryptionEnabled?: Resolvable<boolean>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3keyprefix}
     */
    S3KeyPrefix?: Resolvable<string>;
};
/**
 * A capacity provider strategy consists of one or more capacity
 * providers along with the `base` and `weight` to assign to them. A
 * capacity provider must be associated with the cluster to be used in a
 * capacity provider strategy. The PutClusterCapacityProviders API is
 * used to associate a capacity provider with a cluster. Only capacity
 * providers with an `ACTIVE` or `UPDATING` status can be used. {@link
 * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html}
 */
export declare type CapacityProviderStrategyItem = {
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-capacityprovider}
     */
    CapacityProvider?: Resolvable<string>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-weight}
     */
    Weight?: Resolvable<number>;
    /**
     * {@link
     * http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-base}
     */
    Base?: Resolvable<number>;
};
