import { Value } from '../../cloudformation/Value';
import { TargetCapacitySpecificationRequestProps } from './ec2fleet/TargetCapacitySpecificationRequestProps';
import { OnDemandOptionsRequestProps } from './ec2fleet/OnDemandOptionsRequestProps';
import { TagSpecificationProps } from './ec2fleet/TagSpecificationProps';
import { SpotOptionsRequestProps } from './ec2fleet/SpotOptionsRequestProps';
import { FleetLaunchTemplateConfigRequestProps } from './ec2fleet/FleetLaunchTemplateConfigRequestProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type EC2FleetAttributes = {
    FleetId: Attribute<string>;
};
export type EC2Fleet = AwsResource<'AWS::EC2::EC2Fleet', EC2FleetProperties, EC2FleetAttributes>;
/**
  Specifies the configuration information to launch a fleet--or group--of instances. An EC2 Fleet can launch multiple instance types across multiple Availability Zones, using the On-Demand Instance, Reserved Instance, and Spot Instance purchasing models together. Using EC2 Fleet, you can define separate On-Demand and Spot capacity targets, specify the instance types that work best for your applications, and specify how Amazon EC2 should distribute your fleet capacity within each purchasing model. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html">Launching an EC2 Fleet</a> in the <em>Amazon EC2 User Guide for Linux Instances</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html">the AWS Docs</a>
*/
export declare function eC2Fleet(eC2FleetProps: EC2FleetProperties): EC2Fleet;
/**
  Specifies the configuration information to launch a fleet--or group--of instances. An EC2 Fleet can launch multiple instance types across multiple Availability Zones, using the On-Demand Instance, Reserved Instance, and Spot Instance purchasing models together. Using EC2 Fleet, you can define separate On-Demand and Spot capacity targets, specify the instance types that work best for your applications, and specify how Amazon EC2 should distribute your fleet capacity within each purchasing model. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html">Launching an EC2 Fleet</a> in the <em>Amazon EC2 User Guide for Linux Instances</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html">the AWS Docs</a>
*/
export interface EC2FleetProperties {
    /** <code>Context</code>  <a name="cfn-ec2-ec2fleet-context"></a>
  Reserved.<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> */
    context?: Value<string>;
    /** <code>TargetCapacitySpecification</code>  <a name="cfn-ec2-ec2fleet-targetcapacityspecification"></a>
  The number of units to request.<br />
  
  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> */
    targetCapacitySpecification: TargetCapacitySpecificationRequestProps;
    /** <code>OnDemandOptions</code>  <a name="cfn-ec2-ec2fleet-ondemandoptions"></a>
  Describes the configuration of On-Demand Instances in an EC2 Fleet.<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> */
    onDemandOptions?: OnDemandOptionsRequestProps;
    /** <p> */
    type?: Value<string>;
    /** <code>ExcessCapacityTerminationPolicy</code>  <a name="cfn-ec2-ec2fleet-excesscapacityterminationpolicy"></a>
  Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.<br />
  Supported only for fleets of type <code>maintain</code>.<br />
  
  Required: No<br />
  
  Allowed values: <code>no-termination | termination</code><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> */
    excessCapacityTerminationPolicy?: Value<'no-termination' | 'termination'>;
    /** <code>TagSpecifications</code>  <a name="cfn-ec2-ec2fleet-tagspecifications"></a>
  The key-value pair for tagging the EC2 Fleet request on creation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tag your resources</a>.<br />
  If the fleet type is <code>instant</code>, specify a resource type of <code>fleet</code> to tag the fleet or <code>instance</code> to tag the instances at launch.<br />
  If the fleet type is <code>maintain</code> or <code>request</code>, specify a resource type of <code>fleet</code> to tag the fleet. You cannot specify a resource type of <code>instance</code>. To tag instances at launch, specify the tags in a <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch template</a>.<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> */
    tagSpecifications?: TagSpecificationProps[];
    /** <code>SpotOptions</code>  <a name="cfn-ec2-ec2fleet-spotoptions"></a>
  Describes the configuration of Spot Instances in an EC2 Fleet.<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> */
    spotOptions?: SpotOptionsRequestProps;
    /** <code>ValidFrom</code>  <a name="cfn-ec2-ec2fleet-validfrom"></a>
  The start date and time of the request, in UTC format (for example,
  YYYY: <
  MM: <
  DD: <
  HH: <
  SS: . The default is to start fulfilling the request immediately.<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> */
    validFrom?: Value<string>;
    /** <code>ReplaceUnhealthyInstances</code>  <a name="cfn-ec2-ec2fleet-replaceunhealthyinstances"></a>
  Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for fleets of type <code>maintain</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks">EC2 Fleet health checks</a> in the
  Amazon EC2 User Guide: 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> */
    replaceUnhealthyInstances?: Value<boolean>;
    /** <code>LaunchTemplateConfigs</code>  <a name="cfn-ec2-ec2fleet-launchtemplateconfigs"></a>
  The configuration for the EC2 Fleet.<br />
  
  Required: Yes<br />
  
  Maximum: <code>50</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> */
    launchTemplateConfigs: FleetLaunchTemplateConfigRequestProps[];
    /** <code>TerminateInstancesWithExpiration</code>  <a name="cfn-ec2-ec2fleet-terminateinstanceswithexpiration"></a>
  Indicates whether running instances should be terminated when the EC2 Fleet expires.<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> */
    terminateInstancesWithExpiration?: Value<boolean>;
    /** <code>ValidUntil</code>  <a name="cfn-ec2-ec2fleet-validuntil"></a>
  The end date and time of the request, in UTC format (for example,
  YYYY: <
  MM: <
  DD: <
  HH: <
  SS: . At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.<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> */
    validUntil?: Value<string>;
}
