import { Value } from '../../cloudformation/Value';
import { NetworkingProps } from './instance/NetworkingProps';
import { StateProps } from './instance/StateProps';
import { AddOnProps } from './instance/AddOnProps';
import { HardwareProps } from './instance/HardwareProps';
import { Tag } from '../Tag';
import { LocationProps } from './instance/LocationProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type InstanceAttributes = {
    SshKeyName: Attribute<string>;
    Networking_MonthlyTransfer_GbPerMonthAllocated: Attribute<string>;
    Hardware_CpuCount: Attribute<number>;
    IsStaticIp: Attribute<boolean>;
    PrivateIpAddress: Attribute<string>;
    UserName: Attribute<string>;
    ResourceType: Attribute<string>;
    Location_RegionName: Attribute<string>;
    PublicIpAddress: Attribute<string>;
    Location_AvailabilityZone: Attribute<string>;
    State_Code: Attribute<number>;
    SupportCode: Attribute<string>;
    State_Name: Attribute<string>;
    InstanceArn: Attribute<string>;
    Hardware_RamSizeInGb: Attribute<number>;
};
export type Instance = AwsResource<'AWS::Lightsail::Instance', InstanceProperties, InstanceAttributes>;
/**
  The <code>AWS::Lightsail::Instance</code> resource specifies an Amazon Lightsail instance.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html">the AWS Docs</a>
*/
export declare function instance(instanceProps: InstanceProperties): Instance;
/**
  The <code>AWS::Lightsail::Instance</code> resource specifies an Amazon Lightsail instance.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html">the AWS Docs</a>
*/
export interface InstanceProperties {
    /** <code>InstanceName</code>  <a name="cfn-lightsail-instance-instancename"></a>
  The name of the instance.<br />
  
  Required: Yes<br />
  
  Pattern: <code>\w[\w\-]*\w</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> */
    instanceName: Value<string>;
    /** <code>KeyPairName</code>  <a name="cfn-lightsail-instance-keypairname"></a>
  The name of the key pair to use for the instance.<br />
  If no key pair name is specified, the Regional Lightsail default key pair is used.<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> */
    keyPairName?: Value<string>;
    /** <code>BundleId</code>  <a name="cfn-lightsail-instance-bundleid"></a>
  The bundle ID for the instance (for example, <code>micro_1_0</code>).<br />
  
  Required: Yes<br />
  
  Update requires: Updates are not supported. */
    bundleId: Value<string>;
    /** <code>BlueprintId</code>  <a name="cfn-lightsail-instance-blueprintid"></a>
  The blueprint ID for the instance (for example, <code>os_amlinux_2016_03</code>).<br />
  
  Required: Yes<br />
  
  Update requires: Updates are not supported. */
    blueprintId: Value<string>;
    /** <code>Networking</code>  <a name="cfn-lightsail-instance-networking"></a>
  The public ports and the monthly amount of data transfer allocated for the 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-no-interrupt">No interruption</a> */
    networking?: NetworkingProps;
    /** <code>UserData</code>  <a name="cfn-lightsail-instance-userdata"></a>
  The optional launch script for the instance.<br />
  Specify a launch script to configure an instance with additional user data. For example, you might want to specify <code>apt-get -y update</code> as a launch script.<br />
  Depending on the blueprint of your instance, the command to get software on your instance varies. Amazon Linux and CentOS use <code>yum</code>, Debian and Ubuntu use <code>apt-get</code>, and FreeBSD uses <code>pkg</code>.
  
  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> */
    userData?: Value<string>;
    /** <code>State</code>  <a name="cfn-lightsail-instance-state"></a>
  The status code and the state (for example, <code>running</code>) of the instance.<br />
  The <code>State</code> property is read-only and should not be specified in a create instance or update instance request.
  
  Required: No<br />
  
  Update requires: Updates are not supported. */
    state?: StateProps;
    /** <code>AvailabilityZone</code>  <a name="cfn-lightsail-instance-availabilityzone"></a>
  The Availability Zone for the instance.<br />
  
  Required: No<br />
  
  Update requires: Updates are not supported. */
    availabilityZone?: Value<string>;
    /** <code>AddOns</code>  <a name="cfn-lightsail-instance-addons"></a>
  An array of add-ons for the instance.<br />
  If the instance has an add-on enabled when performing a delete instance request, the add-on is automatically disabled before the instance is deleted.
  
  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> */
    addOns?: AddOnProps[];
    /** <code>Hardware</code>  <a name="cfn-lightsail-instance-hardware"></a>
  The hardware properties for the instance, such as the vCPU count, attached disks, and amount of RAM.<br />
  The instance restarts when performing an attach disk or detach disk request. This resets the public IP address of your instance if a static IP isn’t attached to it.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">Some interruptions</a> */
    hardware?: HardwareProps;
    /** <code>Tags</code>  <a name="cfn-lightsail-instance-tags"></a>
  An array of key-value pairs to apply to this resource.<br />
  For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html">Tag</a> in the
  AWS CloudFormation User Guide: br />
  The <code>Value</code> of <code>Tags</code> is optional for Lightsail resources.
  
  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[];
    /** <code>Location</code>  <a name="cfn-lightsail-instance-location"></a>
  The location for the instance, such as the AWS Region and Availability Zone.<br />
  The <code>Location</code> property is read-only and should not be specified in a create instance or update instance request.
  
  Required: No<br />
  
  Update requires: Updates are not supported. */
    location?: LocationProps;
}
