import { BlockDeviceProps } from './BlockDeviceProps';
import { Value } from '../../../cloudformation/Value';
/**
  <code>BlockDeviceMapping</code> specifies a block device mapping for the <code>BlockDeviceMappings</code> property of the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html">AWS::AutoScaling::LaunchConfiguration</a> resource.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html">the AWS Docs</a>
*/
export interface BlockDeviceMappingProps {
    /** <code>Ebs</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevicemapping-ebs"></a>
  Information to attach an EBS volume to an instance at 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> */
    ebs?: BlockDeviceProps;
    /** <code>NoDevice</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevicemapping-nodevice"></a>
  Setting this value to <code>true</code> prevents a volume that is included in the block device mapping of the AMI from being mapped to the specified device name at launch.<br />
  If <code>NoDevice</code> is <code>true</code> for the root device, instances might fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.<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> */
    noDevice?: Value<boolean>;
    /** <code>VirtualName</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevicemapping-virtualname"></a>
  The name of the instance store volume (virtual device) to attach to an instance at launch. The name must be in the form ephemeral
  X: s a number starting from zero (0), for example, <code>ephemeral0</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> */
    virtualName?: Value<string>;
    /** <code>DeviceName</code>  <a name="cfn-autoscaling-launchconfiguration-blockdevicemapping-devicename"></a>
  The device name assigned to the volume (for example, <code>/dev/sdh</code> or <code>xvdh</code>). For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html">Device naming on Linux instances</a> in the
  Amazon EC2 User Guide for Linux Instances: br />
  To define a block device mapping, set the device name and exactly one of the following properties: <code>Ebs</code>, <code>NoDevice</code>, or <code>VirtualName</code>.
  
  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> */
    deviceName: Value<string>;
}
