import { Value } from '../../../cloudformation/Value';
/**
  <code>BlockDevice</code> is a property of the <code>EBS</code> property of the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html">AWS::AutoScaling::LaunchConfiguration BlockDeviceMapping</a> property type that describes an Amazon EBS volume.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html">the AWS Docs</a>
*/
export interface BlockDeviceProps {
    /** <code>SnapshotId</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevice-snapshotid"></a>
  The snapshot ID of the volume to use.<br />
  You must specify either a <code>VolumeSize</code> or a <code>SnapshotId</code>.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    snapshotId?: Value<string>;
    /** <code>VolumeType</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevice-volumetype"></a>
  The volume type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html">Amazon EBS volume types</a> in the
  Amazon EC2 User Guide for Linux Instances: br />
  Valid values: <code>standard</code> | <code>io1</code> | <code>gp2</code> | <code>st1</code> | <code>sc1</code> | <code>gp3</code><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> */
    volumeType?: Value<string>;
    /** <code>Encrypted</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevice-encrypted"></a>
  Specifies whether the volume should be encrypted. Encrypted EBS volumes can only 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>. If your AMI uses encrypted volumes, you can also only launch it on supported instance types.<br />
  If you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot. Also, you cannot specify a KMS key ID when using a launch configuration.<br />
  If you enable encryption by default, the EBS volumes that you create are always encrypted, either using the AWS managed KMS key or a customer-managed KMS key, regardless of whether the snapshot was encrypted.<br />
  For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-data-protection.html#encryption">Use AWS KMS keys to encrypt Amazon EBS volumes</a> in the
  Amazon EC2 Auto Scaling User Guide:
  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> */
    encrypted?: Value<boolean>;
    /** <code>Throughput</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevice-throughput"></a>
  The throughput (MiBps) to provision for a <code>gp3</code> volume.<br />
  
  Required: No<br />
  
  Minimum: <code>125</code><br />
  
  Maximum: <code>1000</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> */
    throughput?: Value<number>;
    /** <p> */
    iops?: Value<number>;
    /** <p> */
    volumeSize?: Value<number>;
    /** <code>DeleteOnTermination</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevice-deleteontermination"></a>
  Indicates whether the volume is deleted on instance termination. For Amazon EC2 Auto Scaling, the default value is <code>true</code>.<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> */
    deleteOnTermination?: Value<boolean>;
}
