import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type VolumeAttributes = {
    VolumeId: Attribute<string>;
};
export type Volume = AwsResource<'AWS::EC2::Volume', VolumeProperties, VolumeAttributes>;
/**
  Specifies an Amazon Elastic Block Store (Amazon EBS) volume. You can attach the volume to an instance in the same Availability Zone using <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html">AWS::EC2::VolumeAttachment</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html">the AWS Docs</a>
*/
export declare function volume(volumeProps: VolumeProperties): Volume;
/**
  Specifies an Amazon Elastic Block Store (Amazon EBS) volume. You can attach the volume to an instance in the same Availability Zone using <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html">AWS::EC2::VolumeAttachment</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html">the AWS Docs</a>
*/
export interface VolumeProperties {
    /** <code>MultiAttachEnabled</code>  <a name="cfn-ec2-volume-multiattachenabled"></a>
  Indicates whether Amazon EBS Multi-Attach is enabled.<br />
  AWS CloudFormation does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.<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> */
    multiAttachEnabled?: Value<boolean>;
    /** <code>SnapshotId</code>  <a name="cfn-ec2-volume-snapshotid"></a>
  The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.<br />
  
  Required: Conditional<br />
  
  Update requires: Updates are not supported. */
    snapshotId?: Value<string>;
    /** <p> */
    volumeType?: Value<string>;
    /** <p> */
    kmsKeyId?: Value<string>;
    /** <code>Encrypted</code>  <a name="cfn-ec2-volume-encrypted"></a>
  Indicates whether the volume should be encrypted. The effect of setting the encryption state to <code>true</code> depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default">Encryption by default</a> in the
  Amazon Elastic Compute Cloud User Guide: br />
  Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported instance types</a>.<br />
  
  Required: No<br />
  
  Update requires: Updates are not supported. */
    encrypted?: Value<boolean>;
    /** <p> */
    size?: Value<number>;
    /** <code>AutoEnableIO</code>  <a name="cfn-ec2-volume-autoenableio"></a>
  Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume’s data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it’s impaired, you can configure the volume to automatically enable I/O.<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> */
    autoEnableIO?: Value<boolean>;
    /** <code>OutpostArn</code>  <a name="cfn-ec2-volume-outpostarn"></a>
  The Amazon Resource Name (ARN) of the Outpost.<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> */
    outpostArn?: Value<string>;
    /** <code>AvailabilityZone</code>  <a name="cfn-ec2-volume-availabilityzone"></a>
  The ID of the Availability Zone in which to create the volume. For example, <code>us-east-1a</code>.<br />
  
  Required: Yes<br />
  
  Update requires: Updates are not supported. */
    availabilityZone: Value<string>;
    /** <code>Throughput</code>  <a name="cfn-ec2-volume-throughput"></a>
  The throughput to provision for a volume, with a maximum of 1,000 MiB/s.<br />
  This parameter is valid only for <code>gp3</code> volumes. The default value is 125.<br />
  Valid Range: Minimum value of 125. Maximum value of 1000.<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> */
    throughput?: Value<number>;
    /** <p> */
    iops?: Value<number>;
    /** <code>Tags</code>  <a name="cfn-ec2-volume-tags"></a>
  The tags to apply to the volume during creation.<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> */
    tags?: Tag[];
}
