import { Value } from '../../cloudformation/Value';
import { TagSpecificationProps } from './capacityreservation/TagSpecificationProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type CapacityReservationAttributes = {
    Tenancy: Attribute<string>;
    AvailableInstanceCount: Attribute<number>;
    AvailabilityZone: Attribute<string>;
    TotalInstanceCount: Attribute<number>;
    Id: Attribute<string>;
    InstanceType: Attribute<string>;
};
export type CapacityReservation = AwsResource<'AWS::EC2::CapacityReservation', CapacityReservationProperties, CapacityReservationAttributes>;
/**
  Creates a new Capacity Reservation with the specified attributes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html">Capacity Reservations</a> in the <em>Amazon EC2 User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html">the AWS Docs</a>
*/
export declare function capacityReservation(capacityReservationProps: CapacityReservationProperties): CapacityReservation;
/**
  Creates a new Capacity Reservation with the specified attributes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html">Capacity Reservations</a> in the <em>Amazon EC2 User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html">the AWS Docs</a>
*/
export interface CapacityReservationProperties {
    /** <p> */
    tenancy?: Value<string>;
    /** <p> */
    endDateType?: Value<string>;
    /** <code>TagSpecifications</code>  <a name="cfn-ec2-capacityreservation-tagspecifications"></a>
  The tags to apply to the Capacity Reservation during launch.<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>AvailabilityZone</code>  <a name="cfn-ec2-capacityreservation-availabilityzone"></a>
  The Availability Zone in which to create the Capacity Reservation.<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> */
    availabilityZone: Value<string>;
    /** <code>EndDate</code>  <a name="cfn-ec2-capacityreservation-enddate"></a>
  The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation’s state changes to <code>expired</code> when it reaches its end date and time.<br />
  You must provide an <code>EndDate</code> value if <code>EndDateType</code> is <code>limited</code>. Omit <code>EndDate</code> if <code>EndDateType</code> is <code>unlimited</code>.<br />
  If the <code>EndDateType</code> is <code>limited</code>, the Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019.<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> */
    endDate?: Value<string>;
    /** <code>EbsOptimized</code>  <a name="cfn-ec2-capacityreservation-ebsoptimized"></a>
  Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn’t available with all instance types. Additional usage charges apply when using an EBS- optimized instance.<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> */
    ebsOptimized?: Value<boolean>;
    /** <code>OutPostArn</code>  <a name="cfn-ec2-capacityreservation-outpostarn"></a>
  The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity Reservation.<br />
  
  Required: No<br />
  
  Pattern: <code>^arn:aws([a-z-]+)?:outposts:[a-z\d-]+:\d{12}:outpost/op-[a-f0-9]{17}$</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> */
    outPostArn?: Value<string>;
    /** <code>InstanceCount</code>  <a name="cfn-ec2-capacityreservation-instancecount"></a>
  The number of instances for which to reserve capacity.<br />
  Valid range: 1 - 1000<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> */
    instanceCount: Value<number>;
    /** <code>PlacementGroupArn</code>  <a name="cfn-ec2-capacityreservation-placementgrouparn"></a>
  The Amazon Resource Name (ARN) of the cluster placement group in which to create the Capacity Reservation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html"> Capacity Reservations for cluster placement groups</a> in the
  Amazon EC2 User Guide: br />
  
  Required: No<br />
  
  Pattern: <code>^arn:aws([a-z-]+)?:ec2:[a-z\d-]+:\d{12}:placement-group/^.{1,255}$</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> */
    placementGroupArn?: Value<string>;
    /** <code>InstancePlatform</code>  <a name="cfn-ec2-capacityreservation-instanceplatform"></a>
  The type of operating system for which to reserve capacity.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web</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> */
    instancePlatform: Value<'Linux with SQL Server Enterprise' | 'Linux with SQL Server Standard' | 'Linux with SQL Server Web' | 'Linux/UNIX' | 'Red Hat Enterprise Linux' | 'RHEL with HA' | 'RHEL with HA and SQL Server Enterprise' | 'RHEL with HA and SQL Server Standard' | 'RHEL with SQL Server Enterprise' | 'RHEL with SQL Server Standard' | 'RHEL with SQL Server Web' | 'SUSE Linux' | 'Windows' | 'Windows with SQL Server' | 'Windows with SQL Server Enterprise' | 'Windows with SQL Server Standard' | 'Windows with SQL Server Web'>;
    /** <code>InstanceType</code>  <a name="cfn-ec2-capacityreservation-instancetype"></a>
  The instance type for which to reserve capacity. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the
  Amazon EC2 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> */
    instanceType: Value<string>;
    /** <code>EphemeralStorage</code>  <a name="cfn-ec2-capacityreservation-ephemeralstorage"></a>
  
  Deprecated.: r />
  
  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> */
    ephemeralStorage?: Value<boolean>;
    /** <p> */
    instanceMatchCriteria?: Value<string>;
}
