💾 Archived View for gmi.noulin.net › gitRepositories › git-off › file › src › node_modules › aws-sdk… captured on 2023-01-29 at 11:51:22. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

git-off

Log

Files

Refs

README

ec2.d.ts (695371B)

     1 import {Request} from '../lib/request';
     2 import {Response} from '../lib/response';
     3 import {AWSError} from '../lib/error';
     4 import {Service} from '../lib/service';
     5 import {ServiceConfigurationOptions} from '../lib/service';
     6 import {ConfigBase as Config} from '../lib/config';
     7 interface Blob {}
     8 declare class EC2 extends Service {
     9   /**
    10    * Constructs a service object. This object has one method for each API operation.
    11    */
    12   constructor(options?: EC2.Types.ClientConfiguration)
    13   config: Config & EC2.Types.ClientConfiguration;
    14   /**
    15    * Purchases Convertible Reserved Instance offerings described in the GetReservedInstancesExchangeQuote call.
    16    */
    17   acceptReservedInstancesExchangeQuote(params: EC2.Types.AcceptReservedInstancesExchangeQuoteRequest, callback?: (err: AWSError, data: EC2.Types.AcceptReservedInstancesExchangeQuoteResult) => void): Request<EC2.Types.AcceptReservedInstancesExchangeQuoteResult, AWSError>;
    18   /**
    19    * Purchases Convertible Reserved Instance offerings described in the GetReservedInstancesExchangeQuote call.
    20    */
    21   acceptReservedInstancesExchangeQuote(callback?: (err: AWSError, data: EC2.Types.AcceptReservedInstancesExchangeQuoteResult) => void): Request<EC2.Types.AcceptReservedInstancesExchangeQuoteResult, AWSError>;
    22   /**
    23    * Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests.
    24    */
    25   acceptVpcPeeringConnection(params: EC2.Types.AcceptVpcPeeringConnectionRequest, callback?: (err: AWSError, data: EC2.Types.AcceptVpcPeeringConnectionResult) => void): Request<EC2.Types.AcceptVpcPeeringConnectionResult, AWSError>;
    26   /**
    27    * Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests.
    28    */
    29   acceptVpcPeeringConnection(callback?: (err: AWSError, data: EC2.Types.AcceptVpcPeeringConnectionResult) => void): Request<EC2.Types.AcceptVpcPeeringConnectionResult, AWSError>;
    30   /**
    31    * Acquires an Elastic IP address. An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.
    32    */
    33   allocateAddress(params: EC2.Types.AllocateAddressRequest, callback?: (err: AWSError, data: EC2.Types.AllocateAddressResult) => void): Request<EC2.Types.AllocateAddressResult, AWSError>;
    34   /**
    35    * Acquires an Elastic IP address. An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.
    36    */
    37   allocateAddress(callback?: (err: AWSError, data: EC2.Types.AllocateAddressResult) => void): Request<EC2.Types.AllocateAddressResult, AWSError>;
    38   /**
    39    * Allocates a Dedicated Host to your account. At minimum you need to specify the instance size type, Availability Zone, and quantity of hosts you want to allocate.
    40    */
    41   allocateHosts(params: EC2.Types.AllocateHostsRequest, callback?: (err: AWSError, data: EC2.Types.AllocateHostsResult) => void): Request<EC2.Types.AllocateHostsResult, AWSError>;
    42   /**
    43    * Allocates a Dedicated Host to your account. At minimum you need to specify the instance size type, Availability Zone, and quantity of hosts you want to allocate.
    44    */
    45   allocateHosts(callback?: (err: AWSError, data: EC2.Types.AllocateHostsResult) => void): Request<EC2.Types.AllocateHostsResult, AWSError>;
    46   /**
    47    * Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. AssignPrivateIpAddresses is available only in EC2-VPC.
    48    */
    49   assignPrivateIpAddresses(params: EC2.Types.AssignPrivateIpAddressesRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    50   /**
    51    * Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. AssignPrivateIpAddresses is available only in EC2-VPC.
    52    */
    53   assignPrivateIpAddresses(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    54   /**
    55    * Associates an Elastic IP address with an instance or a network interface. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. [EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance. [VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation.  This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error, and you may be charged for each time the Elastic IP address is remapped to the same instance. For more information, see the Elastic IP Addresses section of Amazon EC2 Pricing. 
    56    */
    57   associateAddress(params: EC2.Types.AssociateAddressRequest, callback?: (err: AWSError, data: EC2.Types.AssociateAddressResult) => void): Request<EC2.Types.AssociateAddressResult, AWSError>;
    58   /**
    59    * Associates an Elastic IP address with an instance or a network interface. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. [EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance. [VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation.  This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error, and you may be charged for each time the Elastic IP address is remapped to the same instance. For more information, see the Elastic IP Addresses section of Amazon EC2 Pricing. 
    60    */
    61   associateAddress(callback?: (err: AWSError, data: EC2.Types.AssociateAddressResult) => void): Request<EC2.Types.AssociateAddressResult, AWSError>;
    62   /**
    63    * Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC. After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance. For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.
    64    */
    65   associateDhcpOptions(params: EC2.Types.AssociateDhcpOptionsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    66   /**
    67    * Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC. After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance. For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.
    68    */
    69   associateDhcpOptions(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    70   /**
    71    * Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
    72    */
    73   associateRouteTable(params: EC2.Types.AssociateRouteTableRequest, callback?: (err: AWSError, data: EC2.Types.AssociateRouteTableResult) => void): Request<EC2.Types.AssociateRouteTableResult, AWSError>;
    74   /**
    75    * Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
    76    */
    77   associateRouteTable(callback?: (err: AWSError, data: EC2.Types.AssociateRouteTableResult) => void): Request<EC2.Types.AssociateRouteTableResult, AWSError>;
    78   /**
    79    * Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it. After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again. Linking your instance to a VPC is sometimes referred to as attaching your instance.
    80    */
    81   attachClassicLinkVpc(params: EC2.Types.AttachClassicLinkVpcRequest, callback?: (err: AWSError, data: EC2.Types.AttachClassicLinkVpcResult) => void): Request<EC2.Types.AttachClassicLinkVpcResult, AWSError>;
    82   /**
    83    * Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it. After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again. Linking your instance to a VPC is sometimes referred to as attaching your instance.
    84    */
    85   attachClassicLinkVpc(callback?: (err: AWSError, data: EC2.Types.AttachClassicLinkVpcResult) => void): Request<EC2.Types.AttachClassicLinkVpcResult, AWSError>;
    86   /**
    87    * Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.
    88    */
    89   attachInternetGateway(params: EC2.Types.AttachInternetGatewayRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    90   /**
    91    * Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.
    92    */
    93   attachInternetGateway(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    94   /**
    95    * Attaches a network interface to an instance.
    96    */
    97   attachNetworkInterface(params: EC2.Types.AttachNetworkInterfaceRequest, callback?: (err: AWSError, data: EC2.Types.AttachNetworkInterfaceResult) => void): Request<EC2.Types.AttachNetworkInterfaceResult, AWSError>;
    98   /**
    99    * Attaches a network interface to an instance.
   100    */
   101   attachNetworkInterface(callback?: (err: AWSError, data: EC2.Types.AttachNetworkInterfaceResult) => void): Request<EC2.Types.AttachNetworkInterfaceResult, AWSError>;
   102   /**
   103    * Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name. Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide. For a list of supported device names, see Attaching an EBS Volume to an Instance. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For more information, see Amazon EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide. If a volume has an AWS Marketplace product code:   The volume can be attached only to a stopped instance.   AWS Marketplace product codes are copied from the volume to the instance.   You must be subscribed to the product.   The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance.   For an overview of the AWS Marketplace, see Introducing AWS Marketplace. For more information about EBS volumes, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.
   104    */
   105   attachVolume(params: EC2.Types.AttachVolumeRequest, callback?: (err: AWSError, data: EC2.Types.VolumeAttachment) => void): Request<EC2.Types.VolumeAttachment, AWSError>;
   106   /**
   107    * Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name. Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide. For a list of supported device names, see Attaching an EBS Volume to an Instance. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For more information, see Amazon EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide. If a volume has an AWS Marketplace product code:   The volume can be attached only to a stopped instance.   AWS Marketplace product codes are copied from the volume to the instance.   You must be subscribed to the product.   The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance.   For an overview of the AWS Marketplace, see Introducing AWS Marketplace. For more information about EBS volumes, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.
   108    */
   109   attachVolume(callback?: (err: AWSError, data: EC2.Types.VolumeAttachment) => void): Request<EC2.Types.VolumeAttachment, AWSError>;
   110   /**
   111    * Attaches a virtual private gateway to a VPC. For more information, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   112    */
   113   attachVpnGateway(params: EC2.Types.AttachVpnGatewayRequest, callback?: (err: AWSError, data: EC2.Types.AttachVpnGatewayResult) => void): Request<EC2.Types.AttachVpnGatewayResult, AWSError>;
   114   /**
   115    * Attaches a virtual private gateway to a VPC. For more information, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   116    */
   117   attachVpnGateway(callback?: (err: AWSError, data: EC2.Types.AttachVpnGatewayResult) => void): Request<EC2.Types.AttachVpnGatewayResult, AWSError>;
   118   /**
   119    * [EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination CIDR IP address ranges, or to one or more destination security groups for the same VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.  You can have up to 50 rules per security group (covering both ingress and egress rules).  Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes. Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.
   120    */
   121   authorizeSecurityGroupEgress(params: EC2.Types.AuthorizeSecurityGroupEgressRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   122   /**
   123    * [EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination CIDR IP address ranges, or to one or more destination security groups for the same VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.  You can have up to 50 rules per security group (covering both ingress and egress rules).  Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes. Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.
   124    */
   125   authorizeSecurityGroupEgress(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   126   /**
   127    * Adds one or more ingress rules to a security group.  EC2-Classic: You can have up to 100 rules per group. EC2-VPC: You can have up to 50 rules per group (covering both ingress and egress rules).  Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. [EC2-Classic] This action gives one or more CIDR IP address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another. [EC2-VPC] This action gives one or more CIDR IP address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC.
   128    */
   129   authorizeSecurityGroupIngress(params: EC2.Types.AuthorizeSecurityGroupIngressRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   130   /**
   131    * Adds one or more ingress rules to a security group.  EC2-Classic: You can have up to 100 rules per group. EC2-VPC: You can have up to 50 rules per group (covering both ingress and egress rules).  Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. [EC2-Classic] This action gives one or more CIDR IP address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another. [EC2-VPC] This action gives one or more CIDR IP address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC.
   132    */
   133   authorizeSecurityGroupIngress(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   134   /**
   135    * Bundles an Amazon instance store-backed Windows instance. During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not preserved.  This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.  For more information, see Creating an Instance Store-Backed Windows AMI.
   136    */
   137   bundleInstance(params: EC2.Types.BundleInstanceRequest, callback?: (err: AWSError, data: EC2.Types.BundleInstanceResult) => void): Request<EC2.Types.BundleInstanceResult, AWSError>;
   138   /**
   139    * Bundles an Amazon instance store-backed Windows instance. During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not preserved.  This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.  For more information, see Creating an Instance Store-Backed Windows AMI.
   140    */
   141   bundleInstance(callback?: (err: AWSError, data: EC2.Types.BundleInstanceResult) => void): Request<EC2.Types.BundleInstanceResult, AWSError>;
   142   /**
   143    * Cancels a bundling operation for an instance store-backed Windows instance.
   144    */
   145   cancelBundleTask(params: EC2.Types.CancelBundleTaskRequest, callback?: (err: AWSError, data: EC2.Types.CancelBundleTaskResult) => void): Request<EC2.Types.CancelBundleTaskResult, AWSError>;
   146   /**
   147    * Cancels a bundling operation for an instance store-backed Windows instance.
   148    */
   149   cancelBundleTask(callback?: (err: AWSError, data: EC2.Types.CancelBundleTaskResult) => void): Request<EC2.Types.CancelBundleTaskResult, AWSError>;
   150   /**
   151    * Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI.
   152    */
   153   cancelConversionTask(params: EC2.Types.CancelConversionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   154   /**
   155    * Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI.
   156    */
   157   cancelConversionTask(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   158   /**
   159    * Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.
   160    */
   161   cancelExportTask(params: EC2.Types.CancelExportTaskRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   162   /**
   163    * Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.
   164    */
   165   cancelExportTask(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   166   /**
   167    * Cancels an in-process import virtual machine or import snapshot task.
   168    */
   169   cancelImportTask(params: EC2.Types.CancelImportTaskRequest, callback?: (err: AWSError, data: EC2.Types.CancelImportTaskResult) => void): Request<EC2.Types.CancelImportTaskResult, AWSError>;
   170   /**
   171    * Cancels an in-process import virtual machine or import snapshot task.
   172    */
   173   cancelImportTask(callback?: (err: AWSError, data: EC2.Types.CancelImportTaskResult) => void): Request<EC2.Types.CancelImportTaskResult, AWSError>;
   174   /**
   175    * Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   176    */
   177   cancelReservedInstancesListing(params: EC2.Types.CancelReservedInstancesListingRequest, callback?: (err: AWSError, data: EC2.Types.CancelReservedInstancesListingResult) => void): Request<EC2.Types.CancelReservedInstancesListingResult, AWSError>;
   178   /**
   179    * Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   180    */
   181   cancelReservedInstancesListing(callback?: (err: AWSError, data: EC2.Types.CancelReservedInstancesListingResult) => void): Request<EC2.Types.CancelReservedInstancesListingResult, AWSError>;
   182   /**
   183    * Cancels the specified Spot fleet requests. After you cancel a Spot fleet request, the Spot fleet launches no new Spot instances. You must specify whether the Spot fleet should also terminate its Spot instances. If you terminate the instances, the Spot fleet request enters the cancelled_terminating state. Otherwise, the Spot fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually.
   184    */
   185   cancelSpotFleetRequests(params: EC2.Types.CancelSpotFleetRequestsRequest, callback?: (err: AWSError, data: EC2.Types.CancelSpotFleetRequestsResponse) => void): Request<EC2.Types.CancelSpotFleetRequestsResponse, AWSError>;
   186   /**
   187    * Cancels the specified Spot fleet requests. After you cancel a Spot fleet request, the Spot fleet launches no new Spot instances. You must specify whether the Spot fleet should also terminate its Spot instances. If you terminate the instances, the Spot fleet request enters the cancelled_terminating state. Otherwise, the Spot fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually.
   188    */
   189   cancelSpotFleetRequests(callback?: (err: AWSError, data: EC2.Types.CancelSpotFleetRequestsResponse) => void): Request<EC2.Types.CancelSpotFleetRequestsResponse, AWSError>;
   190   /**
   191    * Cancels one or more Spot instance requests. Spot instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.  Canceling a Spot instance request does not terminate running Spot instances associated with the request. 
   192    */
   193   cancelSpotInstanceRequests(params: EC2.Types.CancelSpotInstanceRequestsRequest, callback?: (err: AWSError, data: EC2.Types.CancelSpotInstanceRequestsResult) => void): Request<EC2.Types.CancelSpotInstanceRequestsResult, AWSError>;
   194   /**
   195    * Cancels one or more Spot instance requests. Spot instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.  Canceling a Spot instance request does not terminate running Spot instances associated with the request. 
   196    */
   197   cancelSpotInstanceRequests(callback?: (err: AWSError, data: EC2.Types.CancelSpotInstanceRequestsResult) => void): Request<EC2.Types.CancelSpotInstanceRequestsResult, AWSError>;
   198   /**
   199    * Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.
   200    */
   201   confirmProductInstance(params: EC2.Types.ConfirmProductInstanceRequest, callback?: (err: AWSError, data: EC2.Types.ConfirmProductInstanceResult) => void): Request<EC2.Types.ConfirmProductInstanceResult, AWSError>;
   202   /**
   203    * Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.
   204    */
   205   confirmProductInstance(callback?: (err: AWSError, data: EC2.Types.ConfirmProductInstanceResult) => void): Request<EC2.Types.ConfirmProductInstanceResult, AWSError>;
   206   /**
   207    * Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request. For more information, see Copying AMIs in the Amazon Elastic Compute Cloud User Guide.
   208    */
   209   copyImage(params: EC2.Types.CopyImageRequest, callback?: (err: AWSError, data: EC2.Types.CopyImageResult) => void): Request<EC2.Types.CopyImageResult, AWSError>;
   210   /**
   211    * Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request. For more information, see Copying AMIs in the Amazon Elastic Compute Cloud User Guide.
   212    */
   213   copyImage(callback?: (err: AWSError, data: EC2.Types.CopyImageResult) => void): Request<EC2.Types.CopyImageResult, AWSError>;
   214   /**
   215    * Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy the snapshot within the same region or from one region to another. You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to. Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless the Encrypted flag is specified during the snapshot copy operation. By default, encrypted snapshot copies use the default AWS Key Management Service (AWS KMS) customer master key (CMK); however, you can specify a non-default CMK with the KmsKeyId parameter.   To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK used to encrypt the snapshot.   Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.  For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.
   216    */
   217   copySnapshot(params: EC2.Types.CopySnapshotRequest, callback?: (err: AWSError, data: EC2.Types.CopySnapshotResult) => void): Request<EC2.Types.CopySnapshotResult, AWSError>;
   218   /**
   219    * Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy the snapshot within the same region or from one region to another. You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to. Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless the Encrypted flag is specified during the snapshot copy operation. By default, encrypted snapshot copies use the default AWS Key Management Service (AWS KMS) customer master key (CMK); however, you can specify a non-default CMK with the KmsKeyId parameter.   To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK used to encrypt the snapshot.   Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.  For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.
   220    */
   221   copySnapshot(callback?: (err: AWSError, data: EC2.Types.CopySnapshotResult) => void): Request<EC2.Types.CopySnapshotResult, AWSError>;
   222   /**
   223    * Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT). For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).  Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.  For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.  You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources. 
   224    */
   225   createCustomerGateway(params: EC2.Types.CreateCustomerGatewayRequest, callback?: (err: AWSError, data: EC2.Types.CreateCustomerGatewayResult) => void): Request<EC2.Types.CreateCustomerGatewayResult, AWSError>;
   226   /**
   227    * Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT). For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).  Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.  For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.  You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources. 
   228    */
   229   createCustomerGateway(callback?: (err: AWSError, data: EC2.Types.CreateCustomerGatewayResult) => void): Request<EC2.Types.CreateCustomerGatewayResult, AWSError>;
   230   /**
   231    * Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see RFC 2132.    domain-name-servers - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas. If you want your instance to receive a custom DNS hostname as specified in domain-name, you must set domain-name-servers to a custom DNS server.    domain-name - If you're using AmazonProvidedDNS in "us-east-1", specify "ec2.internal". If you're using AmazonProvidedDNS in another region, specify "region.compute.internal" (for example, "ap-northeast-1.compute.internal"). Otherwise, specify a domain name (for example, "MyCompany.com"). This value is used to complete unqualified DNS hostnames. Important: Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating systems, specify only one domain name.    ntp-servers - The IP addresses of up to four Network Time Protocol (NTP) servers.    netbios-name-servers - The IP addresses of up to four NetBIOS name servers.    netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast are not currently supported). For more information about these node types, see RFC 2132.   Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set the domain-name-servers option either to AmazonProvidedDNS or to a domain name server of your choice. For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.
   232    */
   233   createDhcpOptions(params: EC2.Types.CreateDhcpOptionsRequest, callback?: (err: AWSError, data: EC2.Types.CreateDhcpOptionsResult) => void): Request<EC2.Types.CreateDhcpOptionsResult, AWSError>;
   234   /**
   235    * Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see RFC 2132.    domain-name-servers - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas. If you want your instance to receive a custom DNS hostname as specified in domain-name, you must set domain-name-servers to a custom DNS server.    domain-name - If you're using AmazonProvidedDNS in "us-east-1", specify "ec2.internal". If you're using AmazonProvidedDNS in another region, specify "region.compute.internal" (for example, "ap-northeast-1.compute.internal"). Otherwise, specify a domain name (for example, "MyCompany.com"). This value is used to complete unqualified DNS hostnames. Important: Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating systems, specify only one domain name.    ntp-servers - The IP addresses of up to four Network Time Protocol (NTP) servers.    netbios-name-servers - The IP addresses of up to four NetBIOS name servers.    netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast are not currently supported). For more information about these node types, see RFC 2132.   Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set the domain-name-servers option either to AmazonProvidedDNS or to a domain name server of your choice. For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.
   236    */
   237   createDhcpOptions(callback?: (err: AWSError, data: EC2.Types.CreateDhcpOptionsResult) => void): Request<EC2.Types.CreateDhcpOptionsResult, AWSError>;
   238   /**
   239    * Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request, a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can include information about accepted and rejected traffic to a network interface. You can view the data in your log streams using Amazon CloudWatch Logs. In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs.
   240    */
   241   createFlowLogs(params: EC2.Types.CreateFlowLogsRequest, callback?: (err: AWSError, data: EC2.Types.CreateFlowLogsResult) => void): Request<EC2.Types.CreateFlowLogsResult, AWSError>;
   242   /**
   243    * Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request, a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can include information about accepted and rejected traffic to a network interface. You can view the data in your log streams using Amazon CloudWatch Logs. In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs.
   244    */
   245   createFlowLogs(callback?: (err: AWSError, data: EC2.Types.CreateFlowLogsResult) => void): Request<EC2.Types.CreateFlowLogsResult, AWSError>;
   246   /**
   247    * Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes. For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.
   248    */
   249   createImage(params: EC2.Types.CreateImageRequest, callback?: (err: AWSError, data: EC2.Types.CreateImageResult) => void): Request<EC2.Types.CreateImageResult, AWSError>;
   250   /**
   251    * Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes. For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.
   252    */
   253   createImage(callback?: (err: AWSError, data: EC2.Types.CreateImageResult) => void): Request<EC2.Types.CreateImageResult, AWSError>;
   254   /**
   255    * Exports a running or stopped instance to an S3 bucket. For information about the supported operating systems, image formats, and known limitations for the types of instances you can export, see Exporting an Instance as a VM Using VM Import/Export in the VM Import/Export User Guide.
   256    */
   257   createInstanceExportTask(params: EC2.Types.CreateInstanceExportTaskRequest, callback?: (err: AWSError, data: EC2.Types.CreateInstanceExportTaskResult) => void): Request<EC2.Types.CreateInstanceExportTaskResult, AWSError>;
   258   /**
   259    * Exports a running or stopped instance to an S3 bucket. For information about the supported operating systems, image formats, and known limitations for the types of instances you can export, see Exporting an Instance as a VM Using VM Import/Export in the VM Import/Export User Guide.
   260    */
   261   createInstanceExportTask(callback?: (err: AWSError, data: EC2.Types.CreateInstanceExportTaskResult) => void): Request<EC2.Types.CreateInstanceExportTaskResult, AWSError>;
   262   /**
   263    * Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using AttachInternetGateway. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.
   264    */
   265   createInternetGateway(params: EC2.Types.CreateInternetGatewayRequest, callback?: (err: AWSError, data: EC2.Types.CreateInternetGatewayResult) => void): Request<EC2.Types.CreateInternetGatewayResult, AWSError>;
   266   /**
   267    * Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using AttachInternetGateway. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.
   268    */
   269   createInternetGateway(callback?: (err: AWSError, data: EC2.Types.CreateInternetGatewayResult) => void): Request<EC2.Types.CreateInternetGatewayResult, AWSError>;
   270   /**
   271    * Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 returns an error. You can have up to five thousand key pairs per region. The key pair returned to you is available only in the region in which you create it. To create a key pair that is available in all regions, use ImportKeyPair. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.
   272    */
   273   createKeyPair(params: EC2.Types.CreateKeyPairRequest, callback?: (err: AWSError, data: EC2.Types.KeyPair) => void): Request<EC2.Types.KeyPair, AWSError>;
   274   /**
   275    * Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 returns an error. You can have up to five thousand key pairs per region. The key pair returned to you is available only in the region in which you create it. To create a key pair that is available in all regions, use ImportKeyPair. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.
   276    */
   277   createKeyPair(callback?: (err: AWSError, data: EC2.Types.KeyPair) => void): Request<EC2.Types.KeyPair, AWSError>;
   278   /**
   279    * Creates a NAT gateway in the specified subnet. A NAT gateway can be used to enable instances in a private subnet to connect to the Internet. This action creates a network interface in the specified subnet with a private IP address from the IP address range of the subnet. For more information, see NAT Gateways in the Amazon Virtual Private Cloud User Guide.
   280    */
   281   createNatGateway(params: EC2.Types.CreateNatGatewayRequest, callback?: (err: AWSError, data: EC2.Types.CreateNatGatewayResult) => void): Request<EC2.Types.CreateNatGatewayResult, AWSError>;
   282   /**
   283    * Creates a NAT gateway in the specified subnet. A NAT gateway can be used to enable instances in a private subnet to connect to the Internet. This action creates a network interface in the specified subnet with a private IP address from the IP address range of the subnet. For more information, see NAT Gateways in the Amazon Virtual Private Cloud User Guide.
   284    */
   285   createNatGateway(callback?: (err: AWSError, data: EC2.Types.CreateNatGatewayResult) => void): Request<EC2.Types.CreateNatGatewayResult, AWSError>;
   286   /**
   287    * Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
   288    */
   289   createNetworkAcl(params: EC2.Types.CreateNetworkAclRequest, callback?: (err: AWSError, data: EC2.Types.CreateNetworkAclResult) => void): Request<EC2.Types.CreateNetworkAclResult, AWSError>;
   290   /**
   291    * Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
   292    */
   293   createNetworkAcl(callback?: (err: AWSError, data: EC2.Types.CreateNetworkAclResult) => void): Request<EC2.Types.CreateNetworkAclResult, AWSError>;
   294   /**
   295    * Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules. We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules. After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
   296    */
   297   createNetworkAclEntry(params: EC2.Types.CreateNetworkAclEntryRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   298   /**
   299    * Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules. We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules. After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
   300    */
   301   createNetworkAclEntry(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   302   /**
   303    * Creates a network interface in the specified subnet. For more information about network interfaces, see Elastic Network Interfaces in the Amazon Elastic Compute Cloud User Guide.
   304    */
   305   createNetworkInterface(params: EC2.Types.CreateNetworkInterfaceRequest, callback?: (err: AWSError, data: EC2.Types.CreateNetworkInterfaceResult) => void): Request<EC2.Types.CreateNetworkInterfaceResult, AWSError>;
   306   /**
   307    * Creates a network interface in the specified subnet. For more information about network interfaces, see Elastic Network Interfaces in the Amazon Elastic Compute Cloud User Guide.
   308    */
   309   createNetworkInterface(callback?: (err: AWSError, data: EC2.Types.CreateNetworkInterfaceResult) => void): Request<EC2.Types.CreateNetworkInterfaceResult, AWSError>;
   310   /**
   311    * Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.
   312    */
   313   createPlacementGroup(params: EC2.Types.CreatePlacementGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   314   /**
   315    * Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.
   316    */
   317   createPlacementGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   318   /**
   319    * Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation. The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   320    */
   321   createReservedInstancesListing(params: EC2.Types.CreateReservedInstancesListingRequest, callback?: (err: AWSError, data: EC2.Types.CreateReservedInstancesListingResult) => void): Request<EC2.Types.CreateReservedInstancesListingResult, AWSError>;
   322   /**
   323    * Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation. The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   324    */
   325   createReservedInstancesListing(callback?: (err: AWSError, data: EC2.Types.CreateReservedInstancesListingResult) => void): Request<EC2.Types.CreateReservedInstancesListingResult, AWSError>;
   326   /**
   327    * Creates a route in a route table within a VPC. You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, or network interface. When determining how to route traffic, we use the route with the most specific match. For example, let's say the traffic is destined for 192.0.2.3, and the route table includes the following two routes:    192.0.2.0/24 (goes to some target A)    192.0.2.0/28 (goes to some target B)   Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
   328    */
   329   createRoute(params: EC2.Types.CreateRouteRequest, callback?: (err: AWSError, data: EC2.Types.CreateRouteResult) => void): Request<EC2.Types.CreateRouteResult, AWSError>;
   330   /**
   331    * Creates a route in a route table within a VPC. You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, or network interface. When determining how to route traffic, we use the route with the most specific match. For example, let's say the traffic is destined for 192.0.2.3, and the route table includes the following two routes:    192.0.2.0/24 (goes to some target A)    192.0.2.0/28 (goes to some target B)   Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
   332    */
   333   createRoute(callback?: (err: AWSError, data: EC2.Types.CreateRouteResult) => void): Request<EC2.Types.CreateRouteResult, AWSError>;
   334   /**
   335    * Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
   336    */
   337   createRouteTable(params: EC2.Types.CreateRouteTableRequest, callback?: (err: AWSError, data: EC2.Types.CreateRouteTableResult) => void): Request<EC2.Types.CreateRouteTableResult, AWSError>;
   338   /**
   339    * Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
   340    */
   341   createRouteTable(callback?: (err: AWSError, data: EC2.Types.CreateRouteTableResult) => void): Request<EC2.Types.CreateRouteTableResult, AWSError>;
   342   /**
   343    * Creates a security group. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.  EC2-Classic: You can have up to 500 security groups. EC2-VPC: You can create up to 500 security groups per VPC.  When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name. You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other. You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.
   344    */
   345   createSecurityGroup(params: EC2.Types.CreateSecurityGroupRequest, callback?: (err: AWSError, data: EC2.Types.CreateSecurityGroupResult) => void): Request<EC2.Types.CreateSecurityGroupResult, AWSError>;
   346   /**
   347    * Creates a security group. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.  EC2-Classic: You can have up to 500 security groups. EC2-VPC: You can create up to 500 security groups per VPC.  When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name. You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other. You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.
   348    */
   349   createSecurityGroup(callback?: (err: AWSError, data: EC2.Types.CreateSecurityGroupResult) => void): Request<EC2.Types.CreateSecurityGroupResult, AWSError>;
   350   /**
   351    * Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance. When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot. You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending. To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot. Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected. For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.
   352    */
   353   createSnapshot(params: EC2.Types.CreateSnapshotRequest, callback?: (err: AWSError, data: EC2.Types.Snapshot) => void): Request<EC2.Types.Snapshot, AWSError>;
   354   /**
   355    * Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance. When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot. You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending. To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot. Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected. For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.
   356    */
   357   createSnapshot(callback?: (err: AWSError, data: EC2.Types.Snapshot) => void): Request<EC2.Types.Snapshot, AWSError>;
   358   /**
   359    * Creates a data feed for Spot instances, enabling you to view Spot instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.
   360    */
   361   createSpotDatafeedSubscription(params: EC2.Types.CreateSpotDatafeedSubscriptionRequest, callback?: (err: AWSError, data: EC2.Types.CreateSpotDatafeedSubscriptionResult) => void): Request<EC2.Types.CreateSpotDatafeedSubscriptionResult, AWSError>;
   362   /**
   363    * Creates a data feed for Spot instances, enabling you to view Spot instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.
   364    */
   365   createSpotDatafeedSubscription(callback?: (err: AWSError, data: EC2.Types.CreateSpotDatafeedSubscriptionResult) => void): Request<EC2.Types.CreateSpotDatafeedSubscriptionResult, AWSError>;
   366   /**
   367    * Creates a subnet in an existing VPC. When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's CIDR block can be the same as the VPC's CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest subnet (and VPC) you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses).  AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for use.  If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.
   368    */
   369   createSubnet(params: EC2.Types.CreateSubnetRequest, callback?: (err: AWSError, data: EC2.Types.CreateSubnetResult) => void): Request<EC2.Types.CreateSubnetResult, AWSError>;
   370   /**
   371    * Creates a subnet in an existing VPC. When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's CIDR block can be the same as the VPC's CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest subnet (and VPC) you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses).  AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for use.  If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.
   372    */
   373   createSubnet(callback?: (err: AWSError, data: EC2.Types.CreateSubnetResult) => void): Request<EC2.Types.CreateSubnetResult, AWSError>;
   374   /**
   375    * Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide.
   376    */
   377   createTags(params: EC2.Types.CreateTagsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   378   /**
   379    * Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide.
   380    */
   381   createTags(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   382   /**
   383    * Creates an EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in the regional endpoint that you send the HTTP request to. For more information see Regions and Endpoints. You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume. You can create encrypted volumes with the Encrypted parameter. Encrypted volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide. For more information, see Creating or Restoring an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.
   384    */
   385   createVolume(params: EC2.Types.CreateVolumeRequest, callback?: (err: AWSError, data: EC2.Types.Volume) => void): Request<EC2.Types.Volume, AWSError>;
   386   /**
   387    * Creates an EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in the regional endpoint that you send the HTTP request to. For more information see Regions and Endpoints. You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume. You can create encrypted volumes with the Encrypted parameter. Encrypted volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide. For more information, see Creating or Restoring an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.
   388    */
   389   createVolume(callback?: (err: AWSError, data: EC2.Types.Volume) => void): Request<EC2.Types.Volume, AWSError>;
   390   /**
   391    * Creates a VPC with the specified CIDR block. The smallest VPC you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Virtual Private Cloud User Guide.
   392    */
   393   createVpc(params: EC2.Types.CreateVpcRequest, callback?: (err: AWSError, data: EC2.Types.CreateVpcResult) => void): Request<EC2.Types.CreateVpcResult, AWSError>;
   394   /**
   395    * Creates a VPC with the specified CIDR block. The smallest VPC you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Virtual Private Cloud User Guide.
   396    */
   397   createVpc(callback?: (err: AWSError, data: EC2.Types.CreateVpcResult) => void): Request<EC2.Types.CreateVpcResult, AWSError>;
   398   /**
   399    * Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. Currently, only endpoints to Amazon S3 are supported.
   400    */
   401   createVpcEndpoint(params: EC2.Types.CreateVpcEndpointRequest, callback?: (err: AWSError, data: EC2.Types.CreateVpcEndpointResult) => void): Request<EC2.Types.CreateVpcEndpointResult, AWSError>;
   402   /**
   403    * Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. Currently, only endpoints to Amazon S3 are supported.
   404    */
   405   createVpcEndpoint(callback?: (err: AWSError, data: EC2.Types.CreateVpcEndpointResult) => void): Request<EC2.Types.CreateVpcEndpointResult, AWSError>;
   406   /**
   407    * Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks. The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected. A CreateVpcPeeringConnection request between VPCs with overlapping CIDR blocks results in the VPC peering connection having a status of failed.
   408    */
   409   createVpcPeeringConnection(params: EC2.Types.CreateVpcPeeringConnectionRequest, callback?: (err: AWSError, data: EC2.Types.CreateVpcPeeringConnectionResult) => void): Request<EC2.Types.CreateVpcPeeringConnectionResult, AWSError>;
   410   /**
   411    * Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks. The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected. A CreateVpcPeeringConnection request between VPCs with overlapping CIDR blocks results in the VPC peering connection having a status of failed.
   412    */
   413   createVpcPeeringConnection(callback?: (err: AWSError, data: EC2.Types.CreateVpcPeeringConnectionResult) => void): Request<EC2.Types.CreateVpcPeeringConnectionResult, AWSError>;
   414   /**
   415    * Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1. The response includes information that you need to give to your network administrator to configure your customer gateway.  We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.  If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   416    */
   417   createVpnConnection(params: EC2.Types.CreateVpnConnectionRequest, callback?: (err: AWSError, data: EC2.Types.CreateVpnConnectionResult) => void): Request<EC2.Types.CreateVpnConnectionResult, AWSError>;
   418   /**
   419    * Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1. The response includes information that you need to give to your network administrator to configure your customer gateway.  We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.  If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   420    */
   421   createVpnConnection(callback?: (err: AWSError, data: EC2.Types.CreateVpnConnectionResult) => void): Request<EC2.Types.CreateVpnConnectionResult, AWSError>;
   422   /**
   423    * Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   424    */
   425   createVpnConnectionRoute(params: EC2.Types.CreateVpnConnectionRouteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   426   /**
   427    * Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   428    */
   429   createVpnConnectionRoute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   430   /**
   431    * Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself. For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   432    */
   433   createVpnGateway(params: EC2.Types.CreateVpnGatewayRequest, callback?: (err: AWSError, data: EC2.Types.CreateVpnGatewayResult) => void): Request<EC2.Types.CreateVpnGatewayResult, AWSError>;
   434   /**
   435    * Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself. For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   436    */
   437   createVpnGateway(callback?: (err: AWSError, data: EC2.Types.CreateVpnGatewayResult) => void): Request<EC2.Types.CreateVpnGatewayResult, AWSError>;
   438   /**
   439    * Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.
   440    */
   441   deleteCustomerGateway(params: EC2.Types.DeleteCustomerGatewayRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   442   /**
   443    * Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.
   444    */
   445   deleteCustomerGateway(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   446   /**
   447    * Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.
   448    */
   449   deleteDhcpOptions(params: EC2.Types.DeleteDhcpOptionsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   450   /**
   451    * Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.
   452    */
   453   deleteDhcpOptions(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   454   /**
   455    * Deletes one or more flow logs.
   456    */
   457   deleteFlowLogs(params: EC2.Types.DeleteFlowLogsRequest, callback?: (err: AWSError, data: EC2.Types.DeleteFlowLogsResult) => void): Request<EC2.Types.DeleteFlowLogsResult, AWSError>;
   458   /**
   459    * Deletes one or more flow logs.
   460    */
   461   deleteFlowLogs(callback?: (err: AWSError, data: EC2.Types.DeleteFlowLogsResult) => void): Request<EC2.Types.DeleteFlowLogsResult, AWSError>;
   462   /**
   463    * Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete it.
   464    */
   465   deleteInternetGateway(params: EC2.Types.DeleteInternetGatewayRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   466   /**
   467    * Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete it.
   468    */
   469   deleteInternetGateway(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   470   /**
   471    * Deletes the specified key pair, by removing the public key from Amazon EC2.
   472    */
   473   deleteKeyPair(params: EC2.Types.DeleteKeyPairRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   474   /**
   475    * Deletes the specified key pair, by removing the public key from Amazon EC2.
   476    */
   477   deleteKeyPair(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   478   /**
   479    * Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.
   480    */
   481   deleteNatGateway(params: EC2.Types.DeleteNatGatewayRequest, callback?: (err: AWSError, data: EC2.Types.DeleteNatGatewayResult) => void): Request<EC2.Types.DeleteNatGatewayResult, AWSError>;
   482   /**
   483    * Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.
   484    */
   485   deleteNatGateway(callback?: (err: AWSError, data: EC2.Types.DeleteNatGatewayResult) => void): Request<EC2.Types.DeleteNatGatewayResult, AWSError>;
   486   /**
   487    * Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.
   488    */
   489   deleteNetworkAcl(params: EC2.Types.DeleteNetworkAclRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   490   /**
   491    * Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.
   492    */
   493   deleteNetworkAcl(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   494   /**
   495    * Deletes the specified ingress or egress entry (rule) from the specified network ACL.
   496    */
   497   deleteNetworkAclEntry(params: EC2.Types.DeleteNetworkAclEntryRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   498   /**
   499    * Deletes the specified ingress or egress entry (rule) from the specified network ACL.
   500    */
   501   deleteNetworkAclEntry(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   502   /**
   503    * Deletes the specified network interface. You must detach the network interface before you can delete it.
   504    */
   505   deleteNetworkInterface(params: EC2.Types.DeleteNetworkInterfaceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   506   /**
   507    * Deletes the specified network interface. You must detach the network interface before you can delete it.
   508    */
   509   deleteNetworkInterface(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   510   /**
   511    * Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.
   512    */
   513   deletePlacementGroup(params: EC2.Types.DeletePlacementGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   514   /**
   515    * Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.
   516    */
   517   deletePlacementGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   518   /**
   519    * Deletes the specified route from the specified route table.
   520    */
   521   deleteRoute(params: EC2.Types.DeleteRouteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   522   /**
   523    * Deletes the specified route from the specified route table.
   524    */
   525   deleteRoute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   526   /**
   527    * Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.
   528    */
   529   deleteRouteTable(params: EC2.Types.DeleteRouteTableRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   530   /**
   531    * Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.
   532    */
   533   deleteRouteTable(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   534   /**
   535    * Deletes a security group. If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.
   536    */
   537   deleteSecurityGroup(params: EC2.Types.DeleteSecurityGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   538   /**
   539    * Deletes a security group. If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.
   540    */
   541   deleteSecurityGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   542   /**
   543    * Deletes the specified snapshot. When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume. You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot. For more information, see Deleting an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.
   544    */
   545   deleteSnapshot(params: EC2.Types.DeleteSnapshotRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   546   /**
   547    * Deletes the specified snapshot. When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume. You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot. For more information, see Deleting an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.
   548    */
   549   deleteSnapshot(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   550   /**
   551    * Deletes the data feed for Spot instances.
   552    */
   553   deleteSpotDatafeedSubscription(params: EC2.Types.DeleteSpotDatafeedSubscriptionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   554   /**
   555    * Deletes the data feed for Spot instances.
   556    */
   557   deleteSpotDatafeedSubscription(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   558   /**
   559    * Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.
   560    */
   561   deleteSubnet(params: EC2.Types.DeleteSubnetRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   562   /**
   563    * Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.
   564    */
   565   deleteSubnet(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   566   /**
   567    * Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.
   568    */
   569   deleteTags(params: EC2.Types.DeleteTagsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   570   /**
   571    * Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.
   572    */
   573   deleteTags(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   574   /**
   575    * Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance).  The volume may remain in the deleting state for several minutes.  For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.
   576    */
   577   deleteVolume(params: EC2.Types.DeleteVolumeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   578   /**
   579    * Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance).  The volume may remain in the deleting state for several minutes.  For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.
   580    */
   581   deleteVolume(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   582   /**
   583    * Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.
   584    */
   585   deleteVpc(params: EC2.Types.DeleteVpcRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   586   /**
   587    * Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.
   588    */
   589   deleteVpc(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   590   /**
   591    * Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint.
   592    */
   593   deleteVpcEndpoints(params: EC2.Types.DeleteVpcEndpointsRequest, callback?: (err: AWSError, data: EC2.Types.DeleteVpcEndpointsResult) => void): Request<EC2.Types.DeleteVpcEndpointsResult, AWSError>;
   594   /**
   595    * Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint.
   596    */
   597   deleteVpcEndpoints(callback?: (err: AWSError, data: EC2.Types.DeleteVpcEndpointsResult) => void): Request<EC2.Types.DeleteVpcEndpointsResult, AWSError>;
   598   /**
   599    * Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state. 
   600    */
   601   deleteVpcPeeringConnection(params: EC2.Types.DeleteVpcPeeringConnectionRequest, callback?: (err: AWSError, data: EC2.Types.DeleteVpcPeeringConnectionResult) => void): Request<EC2.Types.DeleteVpcPeeringConnectionResult, AWSError>;
   602   /**
   603    * Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state. 
   604    */
   605   deleteVpcPeeringConnection(callback?: (err: AWSError, data: EC2.Types.DeleteVpcPeeringConnectionResult) => void): Request<EC2.Types.DeleteVpcPeeringConnectionResult, AWSError>;
   606   /**
   607    * Deletes the specified VPN connection. If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID.
   608    */
   609   deleteVpnConnection(params: EC2.Types.DeleteVpnConnectionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   610   /**
   611    * Deletes the specified VPN connection. If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID.
   612    */
   613   deleteVpnConnection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   614   /**
   615    * Deletes the specified static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.
   616    */
   617   deleteVpnConnectionRoute(params: EC2.Types.DeleteVpnConnectionRouteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   618   /**
   619    * Deletes the specified static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.
   620    */
   621   deleteVpnConnectionRoute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   622   /**
   623    * Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.
   624    */
   625   deleteVpnGateway(params: EC2.Types.DeleteVpnGatewayRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   626   /**
   627    * Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.
   628    */
   629   deleteVpnGateway(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   630   /**
   631    * Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances. This command does not delete the AMI.
   632    */
   633   deregisterImage(params: EC2.Types.DeregisterImageRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   634   /**
   635    * Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances. This command does not delete the AMI.
   636    */
   637   deregisterImage(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   638   /**
   639    * Describes attributes of your AWS account. The following are the supported account attributes:    supported-platforms: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC.    default-vpc: The ID of the default VPC for your account, or none.    max-instances: The maximum number of On-Demand instances that you can run.    vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to a network interface.    max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.     vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC.  
   640    */
   641   describeAccountAttributes(params: EC2.Types.DescribeAccountAttributesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeAccountAttributesResult) => void): Request<EC2.Types.DescribeAccountAttributesResult, AWSError>;
   642   /**
   643    * Describes attributes of your AWS account. The following are the supported account attributes:    supported-platforms: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC.    default-vpc: The ID of the default VPC for your account, or none.    max-instances: The maximum number of On-Demand instances that you can run.    vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to a network interface.    max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.     vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC.  
   644    */
   645   describeAccountAttributes(callback?: (err: AWSError, data: EC2.Types.DescribeAccountAttributesResult) => void): Request<EC2.Types.DescribeAccountAttributesResult, AWSError>;
   646   /**
   647    * Describes one or more of your Elastic IP addresses. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.
   648    */
   649   describeAddresses(params: EC2.Types.DescribeAddressesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeAddressesResult) => void): Request<EC2.Types.DescribeAddressesResult, AWSError>;
   650   /**
   651    * Describes one or more of your Elastic IP addresses. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.
   652    */
   653   describeAddresses(callback?: (err: AWSError, data: EC2.Types.DescribeAddressesResult) => void): Request<EC2.Types.DescribeAddressesResult, AWSError>;
   654   /**
   655    * Describes one or more of the Availability Zones that are available to you. The results include zones only for the region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone. For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.
   656    */
   657   describeAvailabilityZones(params: EC2.Types.DescribeAvailabilityZonesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeAvailabilityZonesResult) => void): Request<EC2.Types.DescribeAvailabilityZonesResult, AWSError>;
   658   /**
   659    * Describes one or more of the Availability Zones that are available to you. The results include zones only for the region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone. For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.
   660    */
   661   describeAvailabilityZones(callback?: (err: AWSError, data: EC2.Types.DescribeAvailabilityZonesResult) => void): Request<EC2.Types.DescribeAvailabilityZonesResult, AWSError>;
   662   /**
   663    * Describes one or more of your bundling tasks.  Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use RegisterImage with the Amazon S3 bucket name and image manifest name you provided to the bundle task. 
   664    */
   665   describeBundleTasks(params: EC2.Types.DescribeBundleTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeBundleTasksResult) => void): Request<EC2.Types.DescribeBundleTasksResult, AWSError>;
   666   /**
   667    * Describes one or more of your bundling tasks.  Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use RegisterImage with the Amazon S3 bucket name and image manifest name you provided to the bundle task. 
   668    */
   669   describeBundleTasks(callback?: (err: AWSError, data: EC2.Types.DescribeBundleTasksResult) => void): Request<EC2.Types.DescribeBundleTasksResult, AWSError>;
   670   /**
   671    * Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information about other instances.
   672    */
   673   describeClassicLinkInstances(params: EC2.Types.DescribeClassicLinkInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeClassicLinkInstancesResult) => void): Request<EC2.Types.DescribeClassicLinkInstancesResult, AWSError>;
   674   /**
   675    * Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information about other instances.
   676    */
   677   describeClassicLinkInstances(callback?: (err: AWSError, data: EC2.Types.DescribeClassicLinkInstancesResult) => void): Request<EC2.Types.DescribeClassicLinkInstancesResult, AWSError>;
   678   /**
   679    * Describes one or more of your conversion tasks. For more information, see the VM Import/Export User Guide. For information about the import manifest referenced by this API action, see VM Import Manifest.
   680    */
   681   describeConversionTasks(params: EC2.Types.DescribeConversionTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
   682   /**
   683    * Describes one or more of your conversion tasks. For more information, see the VM Import/Export User Guide. For information about the import manifest referenced by this API action, see VM Import Manifest.
   684    */
   685   describeConversionTasks(callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
   686   /**
   687    * Describes one or more of your VPN customer gateways. For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   688    */
   689   describeCustomerGateways(params: EC2.Types.DescribeCustomerGatewaysRequest, callback?: (err: AWSError, data: EC2.Types.DescribeCustomerGatewaysResult) => void): Request<EC2.Types.DescribeCustomerGatewaysResult, AWSError>;
   690   /**
   691    * Describes one or more of your VPN customer gateways. For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
   692    */
   693   describeCustomerGateways(callback?: (err: AWSError, data: EC2.Types.DescribeCustomerGatewaysResult) => void): Request<EC2.Types.DescribeCustomerGatewaysResult, AWSError>;
   694   /**
   695    * Describes one or more of your DHCP options sets. For more information about DHCP options sets, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.
   696    */
   697   describeDhcpOptions(params: EC2.Types.DescribeDhcpOptionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeDhcpOptionsResult) => void): Request<EC2.Types.DescribeDhcpOptionsResult, AWSError>;
   698   /**
   699    * Describes one or more of your DHCP options sets. For more information about DHCP options sets, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.
   700    */
   701   describeDhcpOptions(callback?: (err: AWSError, data: EC2.Types.DescribeDhcpOptionsResult) => void): Request<EC2.Types.DescribeDhcpOptionsResult, AWSError>;
   702   /**
   703    * Describes one or more of your export tasks.
   704    */
   705   describeExportTasks(params: EC2.Types.DescribeExportTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeExportTasksResult) => void): Request<EC2.Types.DescribeExportTasksResult, AWSError>;
   706   /**
   707    * Describes one or more of your export tasks.
   708    */
   709   describeExportTasks(callback?: (err: AWSError, data: EC2.Types.DescribeExportTasksResult) => void): Request<EC2.Types.DescribeExportTasksResult, AWSError>;
   710   /**
   711    * Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.
   712    */
   713   describeFlowLogs(params: EC2.Types.DescribeFlowLogsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeFlowLogsResult) => void): Request<EC2.Types.DescribeFlowLogsResult, AWSError>;
   714   /**
   715    * Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.
   716    */
   717   describeFlowLogs(callback?: (err: AWSError, data: EC2.Types.DescribeFlowLogsResult) => void): Request<EC2.Types.DescribeFlowLogsResult, AWSError>;
   718   /**
   719    * Describes the Dedicated Host Reservations that are available to purchase. The results describe all the Dedicated Host Reservation offerings, including offerings that may not match the instance family and region of your Dedicated Hosts. When purchasing an offering, ensure that the the instance family and region of the offering matches that of the Dedicated Host/s it will be associated with. For an overview of supported instance types, see Dedicated Hosts Overview in the Amazon Elastic Compute Cloud User Guide. 
   720    */
   721   describeHostReservationOfferings(params: EC2.Types.DescribeHostReservationOfferingsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeHostReservationOfferingsResult) => void): Request<EC2.Types.DescribeHostReservationOfferingsResult, AWSError>;
   722   /**
   723    * Describes the Dedicated Host Reservations that are available to purchase. The results describe all the Dedicated Host Reservation offerings, including offerings that may not match the instance family and region of your Dedicated Hosts. When purchasing an offering, ensure that the the instance family and region of the offering matches that of the Dedicated Host/s it will be associated with. For an overview of supported instance types, see Dedicated Hosts Overview in the Amazon Elastic Compute Cloud User Guide. 
   724    */
   725   describeHostReservationOfferings(callback?: (err: AWSError, data: EC2.Types.DescribeHostReservationOfferingsResult) => void): Request<EC2.Types.DescribeHostReservationOfferingsResult, AWSError>;
   726   /**
   727    * Describes Dedicated Host Reservations which are associated with Dedicated Hosts in your account.
   728    */
   729   describeHostReservations(params: EC2.Types.DescribeHostReservationsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeHostReservationsResult) => void): Request<EC2.Types.DescribeHostReservationsResult, AWSError>;
   730   /**
   731    * Describes Dedicated Host Reservations which are associated with Dedicated Hosts in your account.
   732    */
   733   describeHostReservations(callback?: (err: AWSError, data: EC2.Types.DescribeHostReservationsResult) => void): Request<EC2.Types.DescribeHostReservationsResult, AWSError>;
   734   /**
   735    * Describes one or more of your Dedicated Hosts. The results describe only the Dedicated Hosts in the region you're currently using. All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have recently been released will be listed with the state released.
   736    */
   737   describeHosts(params: EC2.Types.DescribeHostsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeHostsResult) => void): Request<EC2.Types.DescribeHostsResult, AWSError>;
   738   /**
   739    * Describes one or more of your Dedicated Hosts. The results describe only the Dedicated Hosts in the region you're currently using. All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have recently been released will be listed with the state released.
   740    */
   741   describeHosts(callback?: (err: AWSError, data: EC2.Types.DescribeHostsResult) => void): Request<EC2.Types.DescribeHostsResult, AWSError>;
   742   /**
   743    * Describes the ID format settings for your resources on a per-region basis, for example, to view which resource types are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types. The following resource types support longer IDs: instance | reservation | snapshot | volume.  These settings apply to the IAM user who makes the request; they do not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user, unless they explicitly override the settings by running the ModifyIdFormat command. Resources created with longer IDs are visible to all IAM users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.
   744    */
   745   describeIdFormat(params: EC2.Types.DescribeIdFormatRequest, callback?: (err: AWSError, data: EC2.Types.DescribeIdFormatResult) => void): Request<EC2.Types.DescribeIdFormatResult, AWSError>;
   746   /**
   747    * Describes the ID format settings for your resources on a per-region basis, for example, to view which resource types are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types. The following resource types support longer IDs: instance | reservation | snapshot | volume.  These settings apply to the IAM user who makes the request; they do not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user, unless they explicitly override the settings by running the ModifyIdFormat command. Resources created with longer IDs are visible to all IAM users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.
   748    */
   749   describeIdFormat(callback?: (err: AWSError, data: EC2.Types.DescribeIdFormatResult) => void): Request<EC2.Types.DescribeIdFormatResult, AWSError>;
   750   /**
   751    * Describes the ID format settings for resources for the specified IAM user, IAM role, or root user. For example, you can view the resource types that are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.  The following resource types support longer IDs: instance | reservation | snapshot | volume.  These settings apply to the principal specified in the request. They do not apply to the principal that makes the request.
   752    */
   753   describeIdentityIdFormat(params: EC2.Types.DescribeIdentityIdFormatRequest, callback?: (err: AWSError, data: EC2.Types.DescribeIdentityIdFormatResult) => void): Request<EC2.Types.DescribeIdentityIdFormatResult, AWSError>;
   754   /**
   755    * Describes the ID format settings for resources for the specified IAM user, IAM role, or root user. For example, you can view the resource types that are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.  The following resource types support longer IDs: instance | reservation | snapshot | volume.  These settings apply to the principal specified in the request. They do not apply to the principal that makes the request.
   756    */
   757   describeIdentityIdFormat(callback?: (err: AWSError, data: EC2.Types.DescribeIdentityIdFormatResult) => void): Request<EC2.Types.DescribeIdentityIdFormatResult, AWSError>;
   758   /**
   759    * Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.
   760    */
   761   describeImageAttribute(params: EC2.Types.DescribeImageAttributeRequest, callback?: (err: AWSError, data: EC2.Types.ImageAttribute) => void): Request<EC2.Types.ImageAttribute, AWSError>;
   762   /**
   763    * Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.
   764    */
   765   describeImageAttribute(callback?: (err: AWSError, data: EC2.Types.ImageAttribute) => void): Request<EC2.Types.ImageAttribute, AWSError>;
   766   /**
   767    * Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include public images, private images that you own, and private images owned by other AWS accounts but for which you have explicit launch permissions.  Deregistered images are included in the returned results for an unspecified interval after deregistration. 
   768    */
   769   describeImages(params: EC2.Types.DescribeImagesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeImagesResult) => void): Request<EC2.Types.DescribeImagesResult, AWSError>;
   770   /**
   771    * Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include public images, private images that you own, and private images owned by other AWS accounts but for which you have explicit launch permissions.  Deregistered images are included in the returned results for an unspecified interval after deregistration. 
   772    */
   773   describeImages(callback?: (err: AWSError, data: EC2.Types.DescribeImagesResult) => void): Request<EC2.Types.DescribeImagesResult, AWSError>;
   774   /**
   775    * Displays details about an import virtual machine or import snapshot tasks that are already created.
   776    */
   777   describeImportImageTasks(params: EC2.Types.DescribeImportImageTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeImportImageTasksResult) => void): Request<EC2.Types.DescribeImportImageTasksResult, AWSError>;
   778   /**
   779    * Displays details about an import virtual machine or import snapshot tasks that are already created.
   780    */
   781   describeImportImageTasks(callback?: (err: AWSError, data: EC2.Types.DescribeImportImageTasksResult) => void): Request<EC2.Types.DescribeImportImageTasksResult, AWSError>;
   782   /**
   783    * Describes your import snapshot tasks.
   784    */
   785   describeImportSnapshotTasks(params: EC2.Types.DescribeImportSnapshotTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeImportSnapshotTasksResult) => void): Request<EC2.Types.DescribeImportSnapshotTasksResult, AWSError>;
   786   /**
   787    * Describes your import snapshot tasks.
   788    */
   789   describeImportSnapshotTasks(callback?: (err: AWSError, data: EC2.Types.DescribeImportSnapshotTasksResult) => void): Request<EC2.Types.DescribeImportSnapshotTasksResult, AWSError>;
   790   /**
   791    * Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: instanceType | kernel | ramdisk | userData | disableApiTermination | instanceInitiatedShutdownBehavior | rootDeviceName | blockDeviceMapping | productCodes | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport 
   792    */
   793   describeInstanceAttribute(params: EC2.Types.DescribeInstanceAttributeRequest, callback?: (err: AWSError, data: EC2.Types.InstanceAttribute) => void): Request<EC2.Types.InstanceAttribute, AWSError>;
   794   /**
   795    * Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: instanceType | kernel | ramdisk | userData | disableApiTermination | instanceInitiatedShutdownBehavior | rootDeviceName | blockDeviceMapping | productCodes | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport 
   796    */
   797   describeInstanceAttribute(callback?: (err: AWSError, data: EC2.Types.InstanceAttribute) => void): Request<EC2.Types.InstanceAttribute, AWSError>;
   798   /**
   799    * Describes the status of one or more instances. By default, only running instances are described, unless specified otherwise. Instance status includes the following components:    Status checks - Amazon EC2 performs status checks on running EC2 instances to identify hardware and software issues. For more information, see Status Checks for Your Instances and Troubleshooting Instances with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide.    Scheduled events - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances related to hardware issues, software updates, or system maintenance. For more information, see Scheduled Events for Your Instances in the Amazon Elastic Compute Cloud User Guide.    Instance state - You can manage your instances from the moment you launch them through their termination. For more information, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.  
   800    */
   801   describeInstanceStatus(params: EC2.Types.DescribeInstanceStatusRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstanceStatusResult) => void): Request<EC2.Types.DescribeInstanceStatusResult, AWSError>;
   802   /**
   803    * Describes the status of one or more instances. By default, only running instances are described, unless specified otherwise. Instance status includes the following components:    Status checks - Amazon EC2 performs status checks on running EC2 instances to identify hardware and software issues. For more information, see Status Checks for Your Instances and Troubleshooting Instances with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide.    Scheduled events - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances related to hardware issues, software updates, or system maintenance. For more information, see Scheduled Events for Your Instances in the Amazon Elastic Compute Cloud User Guide.    Instance state - You can manage your instances from the moment you launch them through their termination. For more information, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.  
   804    */
   805   describeInstanceStatus(callback?: (err: AWSError, data: EC2.Types.DescribeInstanceStatusResult) => void): Request<EC2.Types.DescribeInstanceStatusResult, AWSError>;
   806   /**
   807    * Describes one or more of your instances. If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results. Recently terminated instances might appear in the returned results. This interval is usually less than one hour. If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.
   808    */
   809   describeInstances(params: EC2.Types.DescribeInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
   810   /**
   811    * Describes one or more of your instances. If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results. Recently terminated instances might appear in the returned results. This interval is usually less than one hour. If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.
   812    */
   813   describeInstances(callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
   814   /**
   815    * Describes one or more of your Internet gateways.
   816    */
   817   describeInternetGateways(params: EC2.Types.DescribeInternetGatewaysRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInternetGatewaysResult) => void): Request<EC2.Types.DescribeInternetGatewaysResult, AWSError>;
   818   /**
   819    * Describes one or more of your Internet gateways.
   820    */
   821   describeInternetGateways(callback?: (err: AWSError, data: EC2.Types.DescribeInternetGatewaysResult) => void): Request<EC2.Types.DescribeInternetGatewaysResult, AWSError>;
   822   /**
   823    * Describes one or more of your key pairs. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.
   824    */
   825   describeKeyPairs(params: EC2.Types.DescribeKeyPairsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeKeyPairsResult) => void): Request<EC2.Types.DescribeKeyPairsResult, AWSError>;
   826   /**
   827    * Describes one or more of your key pairs. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.
   828    */
   829   describeKeyPairs(callback?: (err: AWSError, data: EC2.Types.DescribeKeyPairsResult) => void): Request<EC2.Types.DescribeKeyPairsResult, AWSError>;
   830   /**
   831    * Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.
   832    */
   833   describeMovingAddresses(params: EC2.Types.DescribeMovingAddressesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeMovingAddressesResult) => void): Request<EC2.Types.DescribeMovingAddressesResult, AWSError>;
   834   /**
   835    * Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.
   836    */
   837   describeMovingAddresses(callback?: (err: AWSError, data: EC2.Types.DescribeMovingAddressesResult) => void): Request<EC2.Types.DescribeMovingAddressesResult, AWSError>;
   838   /**
   839    * Describes one or more of the your NAT gateways.
   840    */
   841   describeNatGateways(params: EC2.Types.DescribeNatGatewaysRequest, callback?: (err: AWSError, data: EC2.Types.DescribeNatGatewaysResult) => void): Request<EC2.Types.DescribeNatGatewaysResult, AWSError>;
   842   /**
   843    * Describes one or more of the your NAT gateways.
   844    */
   845   describeNatGateways(callback?: (err: AWSError, data: EC2.Types.DescribeNatGatewaysResult) => void): Request<EC2.Types.DescribeNatGatewaysResult, AWSError>;
   846   /**
   847    * Describes one or more of your network ACLs. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
   848    */
   849   describeNetworkAcls(params: EC2.Types.DescribeNetworkAclsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeNetworkAclsResult) => void): Request<EC2.Types.DescribeNetworkAclsResult, AWSError>;
   850   /**
   851    * Describes one or more of your network ACLs. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
   852    */
   853   describeNetworkAcls(callback?: (err: AWSError, data: EC2.Types.DescribeNetworkAclsResult) => void): Request<EC2.Types.DescribeNetworkAclsResult, AWSError>;
   854   /**
   855    * Describes a network interface attribute. You can specify only one attribute at a time.
   856    */
   857   describeNetworkInterfaceAttribute(params: EC2.Types.DescribeNetworkInterfaceAttributeRequest, callback?: (err: AWSError, data: EC2.Types.DescribeNetworkInterfaceAttributeResult) => void): Request<EC2.Types.DescribeNetworkInterfaceAttributeResult, AWSError>;
   858   /**
   859    * Describes a network interface attribute. You can specify only one attribute at a time.
   860    */
   861   describeNetworkInterfaceAttribute(callback?: (err: AWSError, data: EC2.Types.DescribeNetworkInterfaceAttributeResult) => void): Request<EC2.Types.DescribeNetworkInterfaceAttributeResult, AWSError>;
   862   /**
   863    * Describes one or more of your network interfaces.
   864    */
   865   describeNetworkInterfaces(params: EC2.Types.DescribeNetworkInterfacesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeNetworkInterfacesResult) => void): Request<EC2.Types.DescribeNetworkInterfacesResult, AWSError>;
   866   /**
   867    * Describes one or more of your network interfaces.
   868    */
   869   describeNetworkInterfaces(callback?: (err: AWSError, data: EC2.Types.DescribeNetworkInterfacesResult) => void): Request<EC2.Types.DescribeNetworkInterfacesResult, AWSError>;
   870   /**
   871    * Describes one or more of your placement groups. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.
   872    */
   873   describePlacementGroups(params: EC2.Types.DescribePlacementGroupsRequest, callback?: (err: AWSError, data: EC2.Types.DescribePlacementGroupsResult) => void): Request<EC2.Types.DescribePlacementGroupsResult, AWSError>;
   874   /**
   875    * Describes one or more of your placement groups. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.
   876    */
   877   describePlacementGroups(callback?: (err: AWSError, data: EC2.Types.DescribePlacementGroupsResult) => void): Request<EC2.Types.DescribePlacementGroupsResult, AWSError>;
   878   /**
   879    * Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a VPC endpoint.
   880    */
   881   describePrefixLists(params: EC2.Types.DescribePrefixListsRequest, callback?: (err: AWSError, data: EC2.Types.DescribePrefixListsResult) => void): Request<EC2.Types.DescribePrefixListsResult, AWSError>;
   882   /**
   883    * Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a VPC endpoint.
   884    */
   885   describePrefixLists(callback?: (err: AWSError, data: EC2.Types.DescribePrefixListsResult) => void): Request<EC2.Types.DescribePrefixListsResult, AWSError>;
   886   /**
   887    * Describes one or more regions that are currently available to you. For a list of the regions supported by Amazon EC2, see Regions and Endpoints.
   888    */
   889   describeRegions(params: EC2.Types.DescribeRegionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeRegionsResult) => void): Request<EC2.Types.DescribeRegionsResult, AWSError>;
   890   /**
   891    * Describes one or more regions that are currently available to you. For a list of the regions supported by Amazon EC2, see Regions and Endpoints.
   892    */
   893   describeRegions(callback?: (err: AWSError, data: EC2.Types.DescribeRegionsResult) => void): Request<EC2.Types.DescribeRegionsResult, AWSError>;
   894   /**
   895    * Describes one or more of the Reserved Instances that you purchased. For more information about Reserved Instances, see Reserved Instances in the Amazon Elastic Compute Cloud User Guide.
   896    */
   897   describeReservedInstances(params: EC2.Types.DescribeReservedInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesResult) => void): Request<EC2.Types.DescribeReservedInstancesResult, AWSError>;
   898   /**
   899    * Describes one or more of the Reserved Instances that you purchased. For more information about Reserved Instances, see Reserved Instances in the Amazon Elastic Compute Cloud User Guide.
   900    */
   901   describeReservedInstances(callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesResult) => void): Request<EC2.Types.DescribeReservedInstancesResult, AWSError>;
   902   /**
   903    * Describes your account's Reserved Instance listings in the Reserved Instance Marketplace. The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase. As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   904    */
   905   describeReservedInstancesListings(params: EC2.Types.DescribeReservedInstancesListingsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesListingsResult) => void): Request<EC2.Types.DescribeReservedInstancesListingsResult, AWSError>;
   906   /**
   907    * Describes your account's Reserved Instance listings in the Reserved Instance Marketplace. The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase. As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   908    */
   909   describeReservedInstancesListings(callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesListingsResult) => void): Request<EC2.Types.DescribeReservedInstancesListingsResult, AWSError>;
   910   /**
   911    * Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned. For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.
   912    */
   913   describeReservedInstancesModifications(params: EC2.Types.DescribeReservedInstancesModificationsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesModificationsResult) => void): Request<EC2.Types.DescribeReservedInstancesModificationsResult, AWSError>;
   914   /**
   915    * Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned. For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.
   916    */
   917   describeReservedInstancesModifications(callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesModificationsResult) => void): Request<EC2.Types.DescribeReservedInstancesModificationsResult, AWSError>;
   918   /**
   919    * Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used. If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be excluded from these results. This is to ensure that you do not purchase your own Reserved Instances. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   920    */
   921   describeReservedInstancesOfferings(params: EC2.Types.DescribeReservedInstancesOfferingsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesOfferingsResult) => void): Request<EC2.Types.DescribeReservedInstancesOfferingsResult, AWSError>;
   922   /**
   923    * Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used. If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be excluded from these results. This is to ensure that you do not purchase your own Reserved Instances. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
   924    */
   925   describeReservedInstancesOfferings(callback?: (err: AWSError, data: EC2.Types.DescribeReservedInstancesOfferingsResult) => void): Request<EC2.Types.DescribeReservedInstancesOfferingsResult, AWSError>;
   926   /**
   927    * Describes one or more of your route tables. Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any route table, it is implicitly associated with the main route table. This command does not return the subnet ID for implicit associations. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
   928    */
   929   describeRouteTables(params: EC2.Types.DescribeRouteTablesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeRouteTablesResult) => void): Request<EC2.Types.DescribeRouteTablesResult, AWSError>;
   930   /**
   931    * Describes one or more of your route tables. Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any route table, it is implicitly associated with the main route table. This command does not return the subnet ID for implicit associations. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
   932    */
   933   describeRouteTables(callback?: (err: AWSError, data: EC2.Types.DescribeRouteTablesResult) => void): Request<EC2.Types.DescribeRouteTablesResult, AWSError>;
   934   /**
   935    * Finds available schedules that meet the specified criteria. You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours. After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled Instances with that schedule.
   936    */
   937   describeScheduledInstanceAvailability(params: EC2.Types.DescribeScheduledInstanceAvailabilityRequest, callback?: (err: AWSError, data: EC2.Types.DescribeScheduledInstanceAvailabilityResult) => void): Request<EC2.Types.DescribeScheduledInstanceAvailabilityResult, AWSError>;
   938   /**
   939    * Finds available schedules that meet the specified criteria. You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours. After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled Instances with that schedule.
   940    */
   941   describeScheduledInstanceAvailability(callback?: (err: AWSError, data: EC2.Types.DescribeScheduledInstanceAvailabilityResult) => void): Request<EC2.Types.DescribeScheduledInstanceAvailabilityResult, AWSError>;
   942   /**
   943    * Describes one or more of your Scheduled Instances.
   944    */
   945   describeScheduledInstances(params: EC2.Types.DescribeScheduledInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeScheduledInstancesResult) => void): Request<EC2.Types.DescribeScheduledInstancesResult, AWSError>;
   946   /**
   947    * Describes one or more of your Scheduled Instances.
   948    */
   949   describeScheduledInstances(callback?: (err: AWSError, data: EC2.Types.DescribeScheduledInstancesResult) => void): Request<EC2.Types.DescribeScheduledInstancesResult, AWSError>;
   950   /**
   951    * [EC2-VPC only] Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.
   952    */
   953   describeSecurityGroupReferences(params: EC2.Types.DescribeSecurityGroupReferencesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSecurityGroupReferencesResult) => void): Request<EC2.Types.DescribeSecurityGroupReferencesResult, AWSError>;
   954   /**
   955    * [EC2-VPC only] Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.
   956    */
   957   describeSecurityGroupReferences(callback?: (err: AWSError, data: EC2.Types.DescribeSecurityGroupReferencesResult) => void): Request<EC2.Types.DescribeSecurityGroupReferencesResult, AWSError>;
   958   /**
   959    * Describes one or more of your security groups. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.
   960    */
   961   describeSecurityGroups(params: EC2.Types.DescribeSecurityGroupsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSecurityGroupsResult) => void): Request<EC2.Types.DescribeSecurityGroupsResult, AWSError>;
   962   /**
   963    * Describes one or more of your security groups. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.
   964    */
   965   describeSecurityGroups(callback?: (err: AWSError, data: EC2.Types.DescribeSecurityGroupsResult) => void): Request<EC2.Types.DescribeSecurityGroupsResult, AWSError>;
   966   /**
   967    * Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time. For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.
   968    */
   969   describeSnapshotAttribute(params: EC2.Types.DescribeSnapshotAttributeRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSnapshotAttributeResult) => void): Request<EC2.Types.DescribeSnapshotAttributeResult, AWSError>;
   970   /**
   971    * Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time. For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.
   972    */
   973   describeSnapshotAttribute(callback?: (err: AWSError, data: EC2.Types.DescribeSnapshotAttributeResult) => void): Request<EC2.Types.DescribeSnapshotAttributeResult, AWSError>;
   974   /**
   975    * Describes one or more of the EBS snapshots available to you. Available snapshots include public snapshots available for any AWS account to launch, private snapshots that you own, and private snapshots owned by another AWS account but for which you've been given explicit create volume permissions. The create volume permissions fall into the following categories:    public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All AWS accounts have create volume permissions for these snapshots.    explicit: The owner of the snapshot granted create volume permissions to a specific AWS account.    implicit: An AWS account has implicit create volume permissions for all snapshots it owns.   The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions. If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results. If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own. If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots. If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results. For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.
   976    */
   977   describeSnapshots(params: EC2.Types.DescribeSnapshotsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSnapshotsResult) => void): Request<EC2.Types.DescribeSnapshotsResult, AWSError>;
   978   /**
   979    * Describes one or more of the EBS snapshots available to you. Available snapshots include public snapshots available for any AWS account to launch, private snapshots that you own, and private snapshots owned by another AWS account but for which you've been given explicit create volume permissions. The create volume permissions fall into the following categories:    public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All AWS accounts have create volume permissions for these snapshots.    explicit: The owner of the snapshot granted create volume permissions to a specific AWS account.    implicit: An AWS account has implicit create volume permissions for all snapshots it owns.   The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions. If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results. If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own. If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots. If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results. For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.
   980    */
   981   describeSnapshots(callback?: (err: AWSError, data: EC2.Types.DescribeSnapshotsResult) => void): Request<EC2.Types.DescribeSnapshotsResult, AWSError>;
   982   /**
   983    * Describes the data feed for Spot instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.
   984    */
   985   describeSpotDatafeedSubscription(params: EC2.Types.DescribeSpotDatafeedSubscriptionRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotDatafeedSubscriptionResult) => void): Request<EC2.Types.DescribeSpotDatafeedSubscriptionResult, AWSError>;
   986   /**
   987    * Describes the data feed for Spot instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.
   988    */
   989   describeSpotDatafeedSubscription(callback?: (err: AWSError, data: EC2.Types.DescribeSpotDatafeedSubscriptionResult) => void): Request<EC2.Types.DescribeSpotDatafeedSubscriptionResult, AWSError>;
   990   /**
   991    * Describes the running instances for the specified Spot fleet.
   992    */
   993   describeSpotFleetInstances(params: EC2.Types.DescribeSpotFleetInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotFleetInstancesResponse) => void): Request<EC2.Types.DescribeSpotFleetInstancesResponse, AWSError>;
   994   /**
   995    * Describes the running instances for the specified Spot fleet.
   996    */
   997   describeSpotFleetInstances(callback?: (err: AWSError, data: EC2.Types.DescribeSpotFleetInstancesResponse) => void): Request<EC2.Types.DescribeSpotFleetInstancesResponse, AWSError>;
   998   /**
   999    * Describes the events for the specified Spot fleet request during the specified time. Spot fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event.
  1000    */
  1001   describeSpotFleetRequestHistory(params: EC2.Types.DescribeSpotFleetRequestHistoryRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotFleetRequestHistoryResponse) => void): Request<EC2.Types.DescribeSpotFleetRequestHistoryResponse, AWSError>;
  1002   /**
  1003    * Describes the events for the specified Spot fleet request during the specified time. Spot fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event.
  1004    */
  1005   describeSpotFleetRequestHistory(callback?: (err: AWSError, data: EC2.Types.DescribeSpotFleetRequestHistoryResponse) => void): Request<EC2.Types.DescribeSpotFleetRequestHistoryResponse, AWSError>;
  1006   /**
  1007    * Describes your Spot fleet requests. Spot fleet requests are deleted 48 hours after they are canceled and their instances are terminated.
  1008    */
  1009   describeSpotFleetRequests(params: EC2.Types.DescribeSpotFleetRequestsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotFleetRequestsResponse) => void): Request<EC2.Types.DescribeSpotFleetRequestsResponse, AWSError>;
  1010   /**
  1011    * Describes your Spot fleet requests. Spot fleet requests are deleted 48 hours after they are canceled and their instances are terminated.
  1012    */
  1013   describeSpotFleetRequests(callback?: (err: AWSError, data: EC2.Types.DescribeSpotFleetRequestsResponse) => void): Request<EC2.Types.DescribeSpotFleetRequestsResponse, AWSError>;
  1014   /**
  1015    * Describes the Spot instance requests that belong to your account. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. You can use DescribeSpotInstanceRequests to find a running Spot instance by examining the response. If the status of the Spot instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot. Spot instance requests are deleted 4 hours after they are canceled and their instances are terminated.
  1016    */
  1017   describeSpotInstanceRequests(params: EC2.Types.DescribeSpotInstanceRequestsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotInstanceRequestsResult) => void): Request<EC2.Types.DescribeSpotInstanceRequestsResult, AWSError>;
  1018   /**
  1019    * Describes the Spot instance requests that belong to your account. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. You can use DescribeSpotInstanceRequests to find a running Spot instance by examining the response. If the status of the Spot instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot. Spot instance requests are deleted 4 hours after they are canceled and their instances are terminated.
  1020    */
  1021   describeSpotInstanceRequests(callback?: (err: AWSError, data: EC2.Types.DescribeSpotInstanceRequestsResult) => void): Request<EC2.Types.DescribeSpotInstanceRequestsResult, AWSError>;
  1022   /**
  1023    * Describes the Spot price history. The prices returned are listed in chronological order, from the oldest to the most recent, for up to the past 90 days. For more information, see Spot Instance Pricing History in the Amazon Elastic Compute Cloud User Guide. When you specify a start and end time, this operation returns the prices of the instance types within the time range that you specified and the time when the price changed. The price is valid within the time period that you specified; the response merely indicates the last time that the price changed.
  1024    */
  1025   describeSpotPriceHistory(params: EC2.Types.DescribeSpotPriceHistoryRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotPriceHistoryResult) => void): Request<EC2.Types.DescribeSpotPriceHistoryResult, AWSError>;
  1026   /**
  1027    * Describes the Spot price history. The prices returned are listed in chronological order, from the oldest to the most recent, for up to the past 90 days. For more information, see Spot Instance Pricing History in the Amazon Elastic Compute Cloud User Guide. When you specify a start and end time, this operation returns the prices of the instance types within the time range that you specified and the time when the price changed. The price is valid within the time period that you specified; the response merely indicates the last time that the price changed.
  1028    */
  1029   describeSpotPriceHistory(callback?: (err: AWSError, data: EC2.Types.DescribeSpotPriceHistoryResult) => void): Request<EC2.Types.DescribeSpotPriceHistoryResult, AWSError>;
  1030   /**
  1031    * [EC2-VPC only] Describes the stale security group rules for security groups in a specified VPC. Rules are stale when they reference a deleted security group in a peer VPC, or a security group in a peer VPC for which the VPC peering connection has been deleted.
  1032    */
  1033   describeStaleSecurityGroups(params: EC2.Types.DescribeStaleSecurityGroupsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeStaleSecurityGroupsResult) => void): Request<EC2.Types.DescribeStaleSecurityGroupsResult, AWSError>;
  1034   /**
  1035    * [EC2-VPC only] Describes the stale security group rules for security groups in a specified VPC. Rules are stale when they reference a deleted security group in a peer VPC, or a security group in a peer VPC for which the VPC peering connection has been deleted.
  1036    */
  1037   describeStaleSecurityGroups(callback?: (err: AWSError, data: EC2.Types.DescribeStaleSecurityGroupsResult) => void): Request<EC2.Types.DescribeStaleSecurityGroupsResult, AWSError>;
  1038   /**
  1039    * Describes one or more of your subnets. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.
  1040    */
  1041   describeSubnets(params: EC2.Types.DescribeSubnetsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSubnetsResult) => void): Request<EC2.Types.DescribeSubnetsResult, AWSError>;
  1042   /**
  1043    * Describes one or more of your subnets. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.
  1044    */
  1045   describeSubnets(callback?: (err: AWSError, data: EC2.Types.DescribeSubnetsResult) => void): Request<EC2.Types.DescribeSubnetsResult, AWSError>;
  1046   /**
  1047    * Describes one or more of the tags for your EC2 resources. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.
  1048    */
  1049   describeTags(params: EC2.Types.DescribeTagsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeTagsResult) => void): Request<EC2.Types.DescribeTagsResult, AWSError>;
  1050   /**
  1051    * Describes one or more of the tags for your EC2 resources. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.
  1052    */
  1053   describeTags(callback?: (err: AWSError, data: EC2.Types.DescribeTagsResult) => void): Request<EC2.Types.DescribeTagsResult, AWSError>;
  1054   /**
  1055    * Describes the specified attribute of the specified volume. You can specify only one attribute at a time. For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.
  1056    */
  1057   describeVolumeAttribute(params: EC2.Types.DescribeVolumeAttributeRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVolumeAttributeResult) => void): Request<EC2.Types.DescribeVolumeAttributeResult, AWSError>;
  1058   /**
  1059    * Describes the specified attribute of the specified volume. You can specify only one attribute at a time. For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.
  1060    */
  1061   describeVolumeAttribute(callback?: (err: AWSError, data: EC2.Types.DescribeVolumeAttributeResult) => void): Request<EC2.Types.DescribeVolumeAttributeResult, AWSError>;
  1062   /**
  1063    * Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event. The DescribeVolumeStatus operation provides the following information about the specified volumes:  Status: Reflects the current status of the volume. The possible values are ok, impaired , warning, or insufficient-data. If all checks pass, the overall status of the volume is ok. If the check fails, the overall status is impaired. If the status is insufficient-data, then the checks may still be taking place on your volume at the time. We recommend that you retry the request. For more information on volume status, see Monitoring the Status of Your Volumes.  Events: Reflect the cause of a volume status and may require you to take action. For example, if your volume returns an impaired status, then the volume event might be potential-data-inconsistency. This means that your volume has been affected by an issue with the underlying host, has all I/O operations disabled, and may have inconsistent data.  Actions: Reflect the actions you may have to take in response to an event. For example, if the status of the volume is impaired and the volume event shows potential-data-inconsistency, then the action shows enable-volume-io. This means that you may want to enable the I/O operations for the volume by calling the EnableVolumeIO action and then check the volume for data consistency.  Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the error state (for example, when a volume is incapable of accepting I/O.) 
  1064    */
  1065   describeVolumeStatus(params: EC2.Types.DescribeVolumeStatusRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVolumeStatusResult) => void): Request<EC2.Types.DescribeVolumeStatusResult, AWSError>;
  1066   /**
  1067    * Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event. The DescribeVolumeStatus operation provides the following information about the specified volumes:  Status: Reflects the current status of the volume. The possible values are ok, impaired , warning, or insufficient-data. If all checks pass, the overall status of the volume is ok. If the check fails, the overall status is impaired. If the status is insufficient-data, then the checks may still be taking place on your volume at the time. We recommend that you retry the request. For more information on volume status, see Monitoring the Status of Your Volumes.  Events: Reflect the cause of a volume status and may require you to take action. For example, if your volume returns an impaired status, then the volume event might be potential-data-inconsistency. This means that your volume has been affected by an issue with the underlying host, has all I/O operations disabled, and may have inconsistent data.  Actions: Reflect the actions you may have to take in response to an event. For example, if the status of the volume is impaired and the volume event shows potential-data-inconsistency, then the action shows enable-volume-io. This means that you may want to enable the I/O operations for the volume by calling the EnableVolumeIO action and then check the volume for data consistency.  Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the error state (for example, when a volume is incapable of accepting I/O.) 
  1068    */
  1069   describeVolumeStatus(callback?: (err: AWSError, data: EC2.Types.DescribeVolumeStatusResult) => void): Request<EC2.Types.DescribeVolumeStatusResult, AWSError>;
  1070   /**
  1071    * Describes the specified EBS volumes. If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve the remaining results. For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.
  1072    */
  1073   describeVolumes(params: EC2.Types.DescribeVolumesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1074   /**
  1075    * Describes the specified EBS volumes. If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve the remaining results. For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.
  1076    */
  1077   describeVolumes(callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1078   /**
  1079    * Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.
  1080    */
  1081   describeVpcAttribute(params: EC2.Types.DescribeVpcAttributeRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcAttributeResult) => void): Request<EC2.Types.DescribeVpcAttributeResult, AWSError>;
  1082   /**
  1083    * Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.
  1084    */
  1085   describeVpcAttribute(callback?: (err: AWSError, data: EC2.Types.DescribeVpcAttributeResult) => void): Request<EC2.Types.DescribeVpcAttributeResult, AWSError>;
  1086   /**
  1087    * Describes the ClassicLink status of one or more VPCs.
  1088    */
  1089   describeVpcClassicLink(params: EC2.Types.DescribeVpcClassicLinkRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcClassicLinkResult) => void): Request<EC2.Types.DescribeVpcClassicLinkResult, AWSError>;
  1090   /**
  1091    * Describes the ClassicLink status of one or more VPCs.
  1092    */
  1093   describeVpcClassicLink(callback?: (err: AWSError, data: EC2.Types.DescribeVpcClassicLinkResult) => void): Request<EC2.Types.DescribeVpcClassicLinkResult, AWSError>;
  1094   /**
  1095    * Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1096    */
  1097   describeVpcClassicLinkDnsSupport(params: EC2.Types.DescribeVpcClassicLinkDnsSupportRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcClassicLinkDnsSupportResult) => void): Request<EC2.Types.DescribeVpcClassicLinkDnsSupportResult, AWSError>;
  1098   /**
  1099    * Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1100    */
  1101   describeVpcClassicLinkDnsSupport(callback?: (err: AWSError, data: EC2.Types.DescribeVpcClassicLinkDnsSupportResult) => void): Request<EC2.Types.DescribeVpcClassicLinkDnsSupportResult, AWSError>;
  1102   /**
  1103    * Describes all supported AWS services that can be specified when creating a VPC endpoint.
  1104    */
  1105   describeVpcEndpointServices(params: EC2.Types.DescribeVpcEndpointServicesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcEndpointServicesResult) => void): Request<EC2.Types.DescribeVpcEndpointServicesResult, AWSError>;
  1106   /**
  1107    * Describes all supported AWS services that can be specified when creating a VPC endpoint.
  1108    */
  1109   describeVpcEndpointServices(callback?: (err: AWSError, data: EC2.Types.DescribeVpcEndpointServicesResult) => void): Request<EC2.Types.DescribeVpcEndpointServicesResult, AWSError>;
  1110   /**
  1111    * Describes one or more of your VPC endpoints.
  1112    */
  1113   describeVpcEndpoints(params: EC2.Types.DescribeVpcEndpointsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcEndpointsResult) => void): Request<EC2.Types.DescribeVpcEndpointsResult, AWSError>;
  1114   /**
  1115    * Describes one or more of your VPC endpoints.
  1116    */
  1117   describeVpcEndpoints(callback?: (err: AWSError, data: EC2.Types.DescribeVpcEndpointsResult) => void): Request<EC2.Types.DescribeVpcEndpointsResult, AWSError>;
  1118   /**
  1119    * Describes one or more of your VPC peering connections.
  1120    */
  1121   describeVpcPeeringConnections(params: EC2.Types.DescribeVpcPeeringConnectionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcPeeringConnectionsResult) => void): Request<EC2.Types.DescribeVpcPeeringConnectionsResult, AWSError>;
  1122   /**
  1123    * Describes one or more of your VPC peering connections.
  1124    */
  1125   describeVpcPeeringConnections(callback?: (err: AWSError, data: EC2.Types.DescribeVpcPeeringConnectionsResult) => void): Request<EC2.Types.DescribeVpcPeeringConnectionsResult, AWSError>;
  1126   /**
  1127    * Describes one or more of your VPCs.
  1128    */
  1129   describeVpcs(params: EC2.Types.DescribeVpcsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcsResult) => void): Request<EC2.Types.DescribeVpcsResult, AWSError>;
  1130   /**
  1131    * Describes one or more of your VPCs.
  1132    */
  1133   describeVpcs(callback?: (err: AWSError, data: EC2.Types.DescribeVpcsResult) => void): Request<EC2.Types.DescribeVpcsResult, AWSError>;
  1134   /**
  1135    * Describes one or more of your VPN connections. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
  1136    */
  1137   describeVpnConnections(params: EC2.Types.DescribeVpnConnectionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpnConnectionsResult) => void): Request<EC2.Types.DescribeVpnConnectionsResult, AWSError>;
  1138   /**
  1139    * Describes one or more of your VPN connections. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.
  1140    */
  1141   describeVpnConnections(callback?: (err: AWSError, data: EC2.Types.DescribeVpnConnectionsResult) => void): Request<EC2.Types.DescribeVpnConnectionsResult, AWSError>;
  1142   /**
  1143    * Describes one or more of your virtual private gateways. For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your VPC in the Amazon Virtual Private Cloud User Guide.
  1144    */
  1145   describeVpnGateways(params: EC2.Types.DescribeVpnGatewaysRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpnGatewaysResult) => void): Request<EC2.Types.DescribeVpnGatewaysResult, AWSError>;
  1146   /**
  1147    * Describes one or more of your virtual private gateways. For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your VPC in the Amazon Virtual Private Cloud User Guide.
  1148    */
  1149   describeVpnGateways(callback?: (err: AWSError, data: EC2.Types.DescribeVpnGatewaysResult) => void): Request<EC2.Types.DescribeVpnGatewaysResult, AWSError>;
  1150   /**
  1151    * Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.
  1152    */
  1153   detachClassicLinkVpc(params: EC2.Types.DetachClassicLinkVpcRequest, callback?: (err: AWSError, data: EC2.Types.DetachClassicLinkVpcResult) => void): Request<EC2.Types.DetachClassicLinkVpcResult, AWSError>;
  1154   /**
  1155    * Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.
  1156    */
  1157   detachClassicLinkVpc(callback?: (err: AWSError, data: EC2.Types.DetachClassicLinkVpcResult) => void): Request<EC2.Types.DetachClassicLinkVpcResult, AWSError>;
  1158   /**
  1159    * Detaches an Internet gateway from a VPC, disabling connectivity between the Internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses.
  1160    */
  1161   detachInternetGateway(params: EC2.Types.DetachInternetGatewayRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1162   /**
  1163    * Detaches an Internet gateway from a VPC, disabling connectivity between the Internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses.
  1164    */
  1165   detachInternetGateway(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1166   /**
  1167    * Detaches a network interface from an instance.
  1168    */
  1169   detachNetworkInterface(params: EC2.Types.DetachNetworkInterfaceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1170   /**
  1171    * Detaches a network interface from an instance.
  1172    */
  1173   detachNetworkInterface(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1174   /**
  1175    * Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the busy state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first. When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer associated with the instance. For more information, see Detaching an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.
  1176    */
  1177   detachVolume(params: EC2.Types.DetachVolumeRequest, callback?: (err: AWSError, data: EC2.Types.VolumeAttachment) => void): Request<EC2.Types.VolumeAttachment, AWSError>;
  1178   /**
  1179    * Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the busy state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first. When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer associated with the instance. For more information, see Detaching an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.
  1180    */
  1181   detachVolume(callback?: (err: AWSError, data: EC2.Types.VolumeAttachment) => void): Request<EC2.Types.VolumeAttachment, AWSError>;
  1182   /**
  1183    * Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described). You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.
  1184    */
  1185   detachVpnGateway(params: EC2.Types.DetachVpnGatewayRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1186   /**
  1187    * Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described). You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.
  1188    */
  1189   detachVpnGateway(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1190   /**
  1191    * Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC.
  1192    */
  1193   disableVgwRoutePropagation(params: EC2.Types.DisableVgwRoutePropagationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1194   /**
  1195    * Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC.
  1196    */
  1197   disableVgwRoutePropagation(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1198   /**
  1199    * Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.
  1200    */
  1201   disableVpcClassicLink(params: EC2.Types.DisableVpcClassicLinkRequest, callback?: (err: AWSError, data: EC2.Types.DisableVpcClassicLinkResult) => void): Request<EC2.Types.DisableVpcClassicLinkResult, AWSError>;
  1202   /**
  1203    * Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.
  1204    */
  1205   disableVpcClassicLink(callback?: (err: AWSError, data: EC2.Types.DisableVpcClassicLinkResult) => void): Request<EC2.Types.DisableVpcClassicLinkResult, AWSError>;
  1206   /**
  1207    * Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to public IP addresses when addressed between a linked EC2-Classic instance and instances in the VPC to which it's linked. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1208    */
  1209   disableVpcClassicLinkDnsSupport(params: EC2.Types.DisableVpcClassicLinkDnsSupportRequest, callback?: (err: AWSError, data: EC2.Types.DisableVpcClassicLinkDnsSupportResult) => void): Request<EC2.Types.DisableVpcClassicLinkDnsSupportResult, AWSError>;
  1210   /**
  1211    * Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to public IP addresses when addressed between a linked EC2-Classic instance and instances in the VPC to which it's linked. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1212    */
  1213   disableVpcClassicLinkDnsSupport(callback?: (err: AWSError, data: EC2.Types.DisableVpcClassicLinkDnsSupportResult) => void): Request<EC2.Types.DisableVpcClassicLinkDnsSupportResult, AWSError>;
  1214   /**
  1215    * Disassociates an Elastic IP address from the instance or network interface it's associated with. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.
  1216    */
  1217   disassociateAddress(params: EC2.Types.DisassociateAddressRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1218   /**
  1219    * Disassociates an Elastic IP address from the instance or network interface it's associated with. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.
  1220    */
  1221   disassociateAddress(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1222   /**
  1223    * Disassociates a subnet from a route table. After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
  1224    */
  1225   disassociateRouteTable(params: EC2.Types.DisassociateRouteTableRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1226   /**
  1227    * Disassociates a subnet from a route table. After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
  1228    */
  1229   disassociateRouteTable(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1230   /**
  1231    * Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.
  1232    */
  1233   enableVgwRoutePropagation(params: EC2.Types.EnableVgwRoutePropagationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1234   /**
  1235    * Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.
  1236    */
  1237   enableVgwRoutePropagation(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1238   /**
  1239    * Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.
  1240    */
  1241   enableVolumeIO(params: EC2.Types.EnableVolumeIORequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1242   /**
  1243    * Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.
  1244    */
  1245   enableVolumeIO(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1246   /**
  1247    * Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1248    */
  1249   enableVpcClassicLink(params: EC2.Types.EnableVpcClassicLinkRequest, callback?: (err: AWSError, data: EC2.Types.EnableVpcClassicLinkResult) => void): Request<EC2.Types.EnableVpcClassicLinkResult, AWSError>;
  1250   /**
  1251    * Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1252    */
  1253   enableVpcClassicLink(callback?: (err: AWSError, data: EC2.Types.EnableVpcClassicLinkResult) => void): Request<EC2.Types.EnableVpcClassicLinkResult, AWSError>;
  1254   /**
  1255    * Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1256    */
  1257   enableVpcClassicLinkDnsSupport(params: EC2.Types.EnableVpcClassicLinkDnsSupportRequest, callback?: (err: AWSError, data: EC2.Types.EnableVpcClassicLinkDnsSupportResult) => void): Request<EC2.Types.EnableVpcClassicLinkDnsSupportResult, AWSError>;
  1258   /**
  1259    * Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.
  1260    */
  1261   enableVpcClassicLinkDnsSupport(callback?: (err: AWSError, data: EC2.Types.EnableVpcClassicLinkDnsSupportResult) => void): Request<EC2.Types.EnableVpcClassicLinkDnsSupportResult, AWSError>;
  1262   /**
  1263    * Gets the console output for the specified instance. Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface. Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post. For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it. For Windows instances, the instance console output includes output from the EC2Config service.
  1264    */
  1265   getConsoleOutput(params: EC2.Types.GetConsoleOutputRequest, callback?: (err: AWSError, data: EC2.Types.GetConsoleOutputResult) => void): Request<EC2.Types.GetConsoleOutputResult, AWSError>;
  1266   /**
  1267    * Gets the console output for the specified instance. Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface. Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post. For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it. For Windows instances, the instance console output includes output from the EC2Config service.
  1268    */
  1269   getConsoleOutput(callback?: (err: AWSError, data: EC2.Types.GetConsoleOutputResult) => void): Request<EC2.Types.GetConsoleOutputResult, AWSError>;
  1270   /**
  1271    * Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. The returned content is Base64-encoded.
  1272    */
  1273   getConsoleScreenshot(params: EC2.Types.GetConsoleScreenshotRequest, callback?: (err: AWSError, data: EC2.Types.GetConsoleScreenshotResult) => void): Request<EC2.Types.GetConsoleScreenshotResult, AWSError>;
  1274   /**
  1275    * Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. The returned content is Base64-encoded.
  1276    */
  1277   getConsoleScreenshot(callback?: (err: AWSError, data: EC2.Types.GetConsoleScreenshotResult) => void): Request<EC2.Types.GetConsoleScreenshotResult, AWSError>;
  1278   /**
  1279    * Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased.
  1280    */
  1281   getHostReservationPurchasePreview(params: EC2.Types.GetHostReservationPurchasePreviewRequest, callback?: (err: AWSError, data: EC2.Types.GetHostReservationPurchasePreviewResult) => void): Request<EC2.Types.GetHostReservationPurchasePreviewResult, AWSError>;
  1282   /**
  1283    * Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased.
  1284    */
  1285   getHostReservationPurchasePreview(callback?: (err: AWSError, data: EC2.Types.GetHostReservationPurchasePreviewResult) => void): Request<EC2.Types.GetHostReservationPurchasePreviewResult, AWSError>;
  1286   /**
  1287    * Retrieves the encrypted administrator password for an instance running Windows. The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling. The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file. Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.
  1288    */
  1289   getPasswordData(params: EC2.Types.GetPasswordDataRequest, callback?: (err: AWSError, data: EC2.Types.GetPasswordDataResult) => void): Request<EC2.Types.GetPasswordDataResult, AWSError>;
  1290   /**
  1291    * Retrieves the encrypted administrator password for an instance running Windows. The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling. The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file. Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.
  1292    */
  1293   getPasswordData(callback?: (err: AWSError, data: EC2.Types.GetPasswordDataResult) => void): Request<EC2.Types.GetPasswordDataResult, AWSError>;
  1294   /**
  1295    * Returns details about the values and term of your specified Convertible Reserved Instances. When an offering ID is specified it returns information about whether the exchange is valid and can be performed.
  1296    */
  1297   getReservedInstancesExchangeQuote(params: EC2.Types.GetReservedInstancesExchangeQuoteRequest, callback?: (err: AWSError, data: EC2.Types.GetReservedInstancesExchangeQuoteResult) => void): Request<EC2.Types.GetReservedInstancesExchangeQuoteResult, AWSError>;
  1298   /**
  1299    * Returns details about the values and term of your specified Convertible Reserved Instances. When an offering ID is specified it returns information about whether the exchange is valid and can be performed.
  1300    */
  1301   getReservedInstancesExchangeQuote(callback?: (err: AWSError, data: EC2.Types.GetReservedInstancesExchangeQuoteResult) => void): Request<EC2.Types.GetReservedInstancesExchangeQuoteResult, AWSError>;
  1302   /**
  1303    * Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more information, see Importing a VM as an Image Using VM Import/Export in the VM Import/Export User Guide.
  1304    */
  1305   importImage(params: EC2.Types.ImportImageRequest, callback?: (err: AWSError, data: EC2.Types.ImportImageResult) => void): Request<EC2.Types.ImportImageResult, AWSError>;
  1306   /**
  1307    * Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more information, see Importing a VM as an Image Using VM Import/Export in the VM Import/Export User Guide.
  1308    */
  1309   importImage(callback?: (err: AWSError, data: EC2.Types.ImportImageResult) => void): Request<EC2.Types.ImportImageResult, AWSError>;
  1310   /**
  1311    * Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI. For information about the import manifest referenced by this API action, see VM Import Manifest.
  1312    */
  1313   importInstance(params: EC2.Types.ImportInstanceRequest, callback?: (err: AWSError, data: EC2.Types.ImportInstanceResult) => void): Request<EC2.Types.ImportInstanceResult, AWSError>;
  1314   /**
  1315    * Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI. For information about the import manifest referenced by this API action, see VM Import Manifest.
  1316    */
  1317   importInstance(callback?: (err: AWSError, data: EC2.Types.ImportInstanceResult) => void): Request<EC2.Types.ImportInstanceResult, AWSError>;
  1318   /**
  1319    * Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.
  1320    */
  1321   importKeyPair(params: EC2.Types.ImportKeyPairRequest, callback?: (err: AWSError, data: EC2.Types.ImportKeyPairResult) => void): Request<EC2.Types.ImportKeyPairResult, AWSError>;
  1322   /**
  1323    * Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.
  1324    */
  1325   importKeyPair(callback?: (err: AWSError, data: EC2.Types.ImportKeyPairResult) => void): Request<EC2.Types.ImportKeyPairResult, AWSError>;
  1326   /**
  1327    * Imports a disk into an EBS snapshot.
  1328    */
  1329   importSnapshot(params: EC2.Types.ImportSnapshotRequest, callback?: (err: AWSError, data: EC2.Types.ImportSnapshotResult) => void): Request<EC2.Types.ImportSnapshotResult, AWSError>;
  1330   /**
  1331    * Imports a disk into an EBS snapshot.
  1332    */
  1333   importSnapshot(callback?: (err: AWSError, data: EC2.Types.ImportSnapshotResult) => void): Request<EC2.Types.ImportSnapshotResult, AWSError>;
  1334   /**
  1335    * Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS. For information about the import manifest referenced by this API action, see VM Import Manifest.
  1336    */
  1337   importVolume(params: EC2.Types.ImportVolumeRequest, callback?: (err: AWSError, data: EC2.Types.ImportVolumeResult) => void): Request<EC2.Types.ImportVolumeResult, AWSError>;
  1338   /**
  1339    * Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS. For information about the import manifest referenced by this API action, see VM Import Manifest.
  1340    */
  1341   importVolume(callback?: (err: AWSError, data: EC2.Types.ImportVolumeResult) => void): Request<EC2.Types.ImportVolumeResult, AWSError>;
  1342   /**
  1343    * Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, AWS will place instances that you launch with a tenancy of host, but without targeting a specific host ID, onto any available Dedicated Host in your account which has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID if you want the instance to launch onto a specific host. If no host ID is provided, the instance will be launched onto a suitable host which has auto-placement enabled.
  1344    */
  1345   modifyHosts(params: EC2.Types.ModifyHostsRequest, callback?: (err: AWSError, data: EC2.Types.ModifyHostsResult) => void): Request<EC2.Types.ModifyHostsResult, AWSError>;
  1346   /**
  1347    * Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, AWS will place instances that you launch with a tenancy of host, but without targeting a specific host ID, onto any available Dedicated Host in your account which has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID if you want the instance to launch onto a specific host. If no host ID is provided, the instance will be launched onto a suitable host which has auto-placement enabled.
  1348    */
  1349   modifyHosts(callback?: (err: AWSError, data: EC2.Types.ModifyHostsResult) => void): Request<EC2.Types.ModifyHostsResult, AWSError>;
  1350   /**
  1351    * Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs: instance | reservation | snapshot | volume. This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.  Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.
  1352    */
  1353   modifyIdFormat(params: EC2.Types.ModifyIdFormatRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1354   /**
  1355    * Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs: instance | reservation | snapshot | volume. This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.  Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.
  1356    */
  1357   modifyIdFormat(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1358   /**
  1359    * Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs (17-character IDs) when they are created.  The following resource types support longer IDs: instance | reservation | snapshot | volume. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.  This setting applies to the principal specified in the request; it does not apply to the principal that makes the request.  Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.
  1360    */
  1361   modifyIdentityIdFormat(params: EC2.Types.ModifyIdentityIdFormatRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1362   /**
  1363    * Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs (17-character IDs) when they are created.  The following resource types support longer IDs: instance | reservation | snapshot | volume. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.  This setting applies to the principal specified in the request; it does not apply to the principal that makes the request.  Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.
  1364    */
  1365   modifyIdentityIdFormat(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1366   /**
  1367    * Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.  AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.   The SriovNetSupport enhanced networking attribute cannot be changed using this command. Instead, enable SriovNetSupport on an instance and create an AMI from the instance. This will result in an image with SriovNetSupport enabled. 
  1368    */
  1369   modifyImageAttribute(params: EC2.Types.ModifyImageAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1370   /**
  1371    * Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.  AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.   The SriovNetSupport enhanced networking attribute cannot be changed using this command. Instead, enable SriovNetSupport on an instance and create an AMI from the instance. This will result in an image with SriovNetSupport enabled. 
  1372    */
  1373   modifyImageAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1374   /**
  1375    * Modifies the specified attribute of the specified instance. You can specify only one attribute at a time. To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide.
  1376    */
  1377   modifyInstanceAttribute(params: EC2.Types.ModifyInstanceAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1378   /**
  1379    * Modifies the specified attribute of the specified instance. You can specify only one attribute at a time. To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide.
  1380    */
  1381   modifyInstanceAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1382   /**
  1383    * Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting. Instance affinity is disabled by default. When instance affinity is host and it is not associated with a specific Dedicated Host, the next time it is launched it will automatically be associated with the host it lands on. This relationship will persist if the instance is stopped/started, or rebooted. You can modify the host ID associated with a stopped instance. If a stopped instance has a new host ID association, the instance will target that host when restarted. You can modify the tenancy of a stopped instance with a tenancy of host or dedicated. Affinity, hostID, and tenancy are not required parameters, but at least one of them must be specified in the request. Affinity and tenancy can be modified in the same request, but tenancy can only be modified on instances that are stopped.
  1384    */
  1385   modifyInstancePlacement(params: EC2.Types.ModifyInstancePlacementRequest, callback?: (err: AWSError, data: EC2.Types.ModifyInstancePlacementResult) => void): Request<EC2.Types.ModifyInstancePlacementResult, AWSError>;
  1386   /**
  1387    * Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting. Instance affinity is disabled by default. When instance affinity is host and it is not associated with a specific Dedicated Host, the next time it is launched it will automatically be associated with the host it lands on. This relationship will persist if the instance is stopped/started, or rebooted. You can modify the host ID associated with a stopped instance. If a stopped instance has a new host ID association, the instance will target that host when restarted. You can modify the tenancy of a stopped instance with a tenancy of host or dedicated. Affinity, hostID, and tenancy are not required parameters, but at least one of them must be specified in the request. Affinity and tenancy can be modified in the same request, but tenancy can only be modified on instances that are stopped.
  1388    */
  1389   modifyInstancePlacement(callback?: (err: AWSError, data: EC2.Types.ModifyInstancePlacementResult) => void): Request<EC2.Types.ModifyInstancePlacementResult, AWSError>;
  1390   /**
  1391    * Modifies the specified network interface attribute. You can specify only one attribute at a time.
  1392    */
  1393   modifyNetworkInterfaceAttribute(params: EC2.Types.ModifyNetworkInterfaceAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1394   /**
  1395    * Modifies the specified network interface attribute. You can specify only one attribute at a time.
  1396    */
  1397   modifyNetworkInterfaceAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1398   /**
  1399    * Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Standard Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type. For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.
  1400    */
  1401   modifyReservedInstances(params: EC2.Types.ModifyReservedInstancesRequest, callback?: (err: AWSError, data: EC2.Types.ModifyReservedInstancesResult) => void): Request<EC2.Types.ModifyReservedInstancesResult, AWSError>;
  1402   /**
  1403    * Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Standard Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type. For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.
  1404    */
  1405   modifyReservedInstances(callback?: (err: AWSError, data: EC2.Types.ModifyReservedInstancesResult) => void): Request<EC2.Types.ModifyReservedInstancesResult, AWSError>;
  1406   /**
  1407    * Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single API call. If you need to both add and remove account IDs for a snapshot, you must use multiple API calls.  Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted with your default CMK cannot be shared with other accounts.  For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.
  1408    */
  1409   modifySnapshotAttribute(params: EC2.Types.ModifySnapshotAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1410   /**
  1411    * Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single API call. If you need to both add and remove account IDs for a snapshot, you must use multiple API calls.  Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted with your default CMK cannot be shared with other accounts.  For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.
  1412    */
  1413   modifySnapshotAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1414   /**
  1415    * Modifies the specified Spot fleet request. While the Spot fleet request is being modified, it is in the modifying state. To scale up your Spot fleet, increase its target capacity. The Spot fleet launches the additional Spot instances according to the allocation strategy for the Spot fleet request. If the allocation strategy is lowestPrice, the Spot fleet launches instances using the Spot pool with the lowest price. If the allocation strategy is diversified, the Spot fleet distributes the instances across the Spot pools. To scale down your Spot fleet, decrease its target capacity. First, the Spot fleet cancels any open bids that exceed the new target capacity. You can request that the Spot fleet terminate Spot instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot fleet terminates the instances with the highest price per unit. If the allocation strategy is diversified, the Spot fleet terminates instances across the Spot pools. Alternatively, you can request that the Spot fleet keep the fleet at its current size, but not replace any Spot instances that are interrupted or that you terminate manually.
  1416    */
  1417   modifySpotFleetRequest(params: EC2.Types.ModifySpotFleetRequestRequest, callback?: (err: AWSError, data: EC2.Types.ModifySpotFleetRequestResponse) => void): Request<EC2.Types.ModifySpotFleetRequestResponse, AWSError>;
  1418   /**
  1419    * Modifies the specified Spot fleet request. While the Spot fleet request is being modified, it is in the modifying state. To scale up your Spot fleet, increase its target capacity. The Spot fleet launches the additional Spot instances according to the allocation strategy for the Spot fleet request. If the allocation strategy is lowestPrice, the Spot fleet launches instances using the Spot pool with the lowest price. If the allocation strategy is diversified, the Spot fleet distributes the instances across the Spot pools. To scale down your Spot fleet, decrease its target capacity. First, the Spot fleet cancels any open bids that exceed the new target capacity. You can request that the Spot fleet terminate Spot instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot fleet terminates the instances with the highest price per unit. If the allocation strategy is diversified, the Spot fleet terminates instances across the Spot pools. Alternatively, you can request that the Spot fleet keep the fleet at its current size, but not replace any Spot instances that are interrupted or that you terminate manually.
  1420    */
  1421   modifySpotFleetRequest(callback?: (err: AWSError, data: EC2.Types.ModifySpotFleetRequestResponse) => void): Request<EC2.Types.ModifySpotFleetRequestResponse, AWSError>;
  1422   /**
  1423    * Modifies a subnet attribute.
  1424    */
  1425   modifySubnetAttribute(params: EC2.Types.ModifySubnetAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1426   /**
  1427    * Modifies a subnet attribute.
  1428    */
  1429   modifySubnetAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1430   /**
  1431    * Modifies a volume attribute. By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume. You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.
  1432    */
  1433   modifyVolumeAttribute(params: EC2.Types.ModifyVolumeAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1434   /**
  1435    * Modifies a volume attribute. By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume. You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.
  1436    */
  1437   modifyVolumeAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1438   /**
  1439    * Modifies the specified attribute of the specified VPC.
  1440    */
  1441   modifyVpcAttribute(params: EC2.Types.ModifyVpcAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1442   /**
  1443    * Modifies the specified attribute of the specified VPC.
  1444    */
  1445   modifyVpcAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1446   /**
  1447    * Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you can add and remove route tables associated with the endpoint.
  1448    */
  1449   modifyVpcEndpoint(params: EC2.Types.ModifyVpcEndpointRequest, callback?: (err: AWSError, data: EC2.Types.ModifyVpcEndpointResult) => void): Request<EC2.Types.ModifyVpcEndpointResult, AWSError>;
  1450   /**
  1451    * Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you can add and remove route tables associated with the endpoint.
  1452    */
  1453   modifyVpcEndpoint(callback?: (err: AWSError, data: EC2.Types.ModifyVpcEndpointResult) => void): Request<EC2.Types.ModifyVpcEndpointResult, AWSError>;
  1454   /**
  1455    * Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:   Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.   Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.   Enable/disable a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.   If the peered VPCs are in different accounts, each owner must initiate a separate request to modify the peering connection options, depending on whether their VPC was the requester or accepter for the VPC peering connection. If the peered VPCs are in the same account, you can modify the requester and accepter options in the same request. To confirm which VPC is the accepter and requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.
  1456    */
  1457   modifyVpcPeeringConnectionOptions(params: EC2.Types.ModifyVpcPeeringConnectionOptionsRequest, callback?: (err: AWSError, data: EC2.Types.ModifyVpcPeeringConnectionOptionsResult) => void): Request<EC2.Types.ModifyVpcPeeringConnectionOptionsResult, AWSError>;
  1458   /**
  1459    * Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:   Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.   Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.   Enable/disable a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.   If the peered VPCs are in different accounts, each owner must initiate a separate request to modify the peering connection options, depending on whether their VPC was the requester or accepter for the VPC peering connection. If the peered VPCs are in the same account, you can modify the requester and accepter options in the same request. To confirm which VPC is the accepter and requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.
  1460    */
  1461   modifyVpcPeeringConnectionOptions(callback?: (err: AWSError, data: EC2.Types.ModifyVpcPeeringConnectionOptionsResult) => void): Request<EC2.Types.ModifyVpcPeeringConnectionOptionsResult, AWSError>;
  1462   /**
  1463    * Enables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.
  1464    */
  1465   monitorInstances(params: EC2.Types.MonitorInstancesRequest, callback?: (err: AWSError, data: EC2.Types.MonitorInstancesResult) => void): Request<EC2.Types.MonitorInstancesResult, AWSError>;
  1466   /**
  1467    * Enables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.
  1468    */
  1469   monitorInstances(callback?: (err: AWSError, data: EC2.Types.MonitorInstancesResult) => void): Request<EC2.Types.MonitorInstancesResult, AWSError>;
  1470   /**
  1471    * Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform. 
  1472    */
  1473   moveAddressToVpc(params: EC2.Types.MoveAddressToVpcRequest, callback?: (err: AWSError, data: EC2.Types.MoveAddressToVpcResult) => void): Request<EC2.Types.MoveAddressToVpcResult, AWSError>;
  1474   /**
  1475    * Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform. 
  1476    */
  1477   moveAddressToVpc(callback?: (err: AWSError, data: EC2.Types.MoveAddressToVpcResult) => void): Request<EC2.Types.MoveAddressToVpcResult, AWSError>;
  1478   /**
  1479    * Purchase a reservation with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This action results in the specified reservation being purchased and charged to your account.
  1480    */
  1481   purchaseHostReservation(params: EC2.Types.PurchaseHostReservationRequest, callback?: (err: AWSError, data: EC2.Types.PurchaseHostReservationResult) => void): Request<EC2.Types.PurchaseHostReservationResult, AWSError>;
  1482   /**
  1483    * Purchase a reservation with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This action results in the specified reservation being purchased and charged to your account.
  1484    */
  1485   purchaseHostReservation(callback?: (err: AWSError, data: EC2.Types.PurchaseHostReservationResult) => void): Request<EC2.Types.PurchaseHostReservationResult, AWSError>;
  1486   /**
  1487    * Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate compared to On-Demand instance pricing. Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances. For more information, see Reserved Instances and Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
  1488    */
  1489   purchaseReservedInstancesOffering(params: EC2.Types.PurchaseReservedInstancesOfferingRequest, callback?: (err: AWSError, data: EC2.Types.PurchaseReservedInstancesOfferingResult) => void): Request<EC2.Types.PurchaseReservedInstancesOfferingResult, AWSError>;
  1490   /**
  1491    * Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate compared to On-Demand instance pricing. Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances. For more information, see Reserved Instances and Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.
  1492    */
  1493   purchaseReservedInstancesOffering(callback?: (err: AWSError, data: EC2.Types.PurchaseReservedInstancesOfferingResult) => void): Request<EC2.Types.PurchaseReservedInstancesOfferingResult, AWSError>;
  1494   /**
  1495    * Purchases one or more Scheduled Instances with the specified schedule. Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call RunScheduledInstances during each scheduled time period. After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.
  1496    */
  1497   purchaseScheduledInstances(params: EC2.Types.PurchaseScheduledInstancesRequest, callback?: (err: AWSError, data: EC2.Types.PurchaseScheduledInstancesResult) => void): Request<EC2.Types.PurchaseScheduledInstancesResult, AWSError>;
  1498   /**
  1499    * Purchases one or more Scheduled Instances with the specified schedule. Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call RunScheduledInstances during each scheduled time period. After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.
  1500    */
  1501   purchaseScheduledInstances(callback?: (err: AWSError, data: EC2.Types.PurchaseScheduledInstancesResult) => void): Request<EC2.Types.PurchaseScheduledInstancesResult, AWSError>;
  1502   /**
  1503    * Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored. If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot. For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide.
  1504    */
  1505   rebootInstances(params: EC2.Types.RebootInstancesRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1506   /**
  1507    * Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored. If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot. For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide.
  1508    */
  1509   rebootInstances(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1510   /**
  1511    * Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.  For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.  You can also use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. For more information, see Launching an Instance from a Snapshot in the Amazon Elastic Compute Cloud User Guide.  Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 billingProduct code associated with an AMI to verify subscription status for package updates. Creating an AMI from an EBS snapshot does not maintain this billing code, and subsequent instances launched from such an AMI will not be able to connect to package update infrastructure. Similarly, although you can create a Windows AMI from a snapshot, you can't successfully launch an instance from the AMI. To create Windows AMIs or to create AMIs for Linux operating systems that must retain AMI billing codes to work properly, see CreateImage.  If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.  You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes. 
  1512    */
  1513   registerImage(params: EC2.Types.RegisterImageRequest, callback?: (err: AWSError, data: EC2.Types.RegisterImageResult) => void): Request<EC2.Types.RegisterImageResult, AWSError>;
  1514   /**
  1515    * Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.  For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.  You can also use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. For more information, see Launching an Instance from a Snapshot in the Amazon Elastic Compute Cloud User Guide.  Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 billingProduct code associated with an AMI to verify subscription status for package updates. Creating an AMI from an EBS snapshot does not maintain this billing code, and subsequent instances launched from such an AMI will not be able to connect to package update infrastructure. Similarly, although you can create a Windows AMI from a snapshot, you can't successfully launch an instance from the AMI. To create Windows AMIs or to create AMIs for Linux operating systems that must retain AMI billing codes to work properly, see CreateImage.  If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.  You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes. 
  1516    */
  1517   registerImage(callback?: (err: AWSError, data: EC2.Types.RegisterImageResult) => void): Request<EC2.Types.RegisterImageResult, AWSError>;
  1518   /**
  1519    * Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.
  1520    */
  1521   rejectVpcPeeringConnection(params: EC2.Types.RejectVpcPeeringConnectionRequest, callback?: (err: AWSError, data: EC2.Types.RejectVpcPeeringConnectionResult) => void): Request<EC2.Types.RejectVpcPeeringConnectionResult, AWSError>;
  1522   /**
  1523    * Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.
  1524    */
  1525   rejectVpcPeeringConnection(callback?: (err: AWSError, data: EC2.Types.RejectVpcPeeringConnectionResult) => void): Request<EC2.Types.RejectVpcPeeringConnectionResult, AWSError>;
  1526   /**
  1527    * Releases the specified Elastic IP address. After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account. [EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress. [Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).
  1528    */
  1529   releaseAddress(params: EC2.Types.ReleaseAddressRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1530   /**
  1531    * Releases the specified Elastic IP address. After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account. [EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress. [Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).
  1532    */
  1533   releaseAddress(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1534   /**
  1535    * When you no longer want to use an On-Demand Dedicated Host it can be released. On-Demand billing is stopped and the host goes into released state. The host ID of Dedicated Hosts that have been released can no longer be specified in another request, e.g., ModifyHosts. You must stop or terminate all instances on a host before it can be released. When Dedicated Hosts are released, it make take some time for them to stop counting toward your limit and you may receive capacity errors when trying to allocate new Dedicated hosts. Try waiting a few minutes, and then try again. Released hosts will still appear in a DescribeHosts response.
  1536    */
  1537   releaseHosts(params: EC2.Types.ReleaseHostsRequest, callback?: (err: AWSError, data: EC2.Types.ReleaseHostsResult) => void): Request<EC2.Types.ReleaseHostsResult, AWSError>;
  1538   /**
  1539    * When you no longer want to use an On-Demand Dedicated Host it can be released. On-Demand billing is stopped and the host goes into released state. The host ID of Dedicated Hosts that have been released can no longer be specified in another request, e.g., ModifyHosts. You must stop or terminate all instances on a host before it can be released. When Dedicated Hosts are released, it make take some time for them to stop counting toward your limit and you may receive capacity errors when trying to allocate new Dedicated hosts. Try waiting a few minutes, and then try again. Released hosts will still appear in a DescribeHosts response.
  1540    */
  1541   releaseHosts(callback?: (err: AWSError, data: EC2.Types.ReleaseHostsResult) => void): Request<EC2.Types.ReleaseHostsResult, AWSError>;
  1542   /**
  1543    * Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
  1544    */
  1545   replaceNetworkAclAssociation(params: EC2.Types.ReplaceNetworkAclAssociationRequest, callback?: (err: AWSError, data: EC2.Types.ReplaceNetworkAclAssociationResult) => void): Request<EC2.Types.ReplaceNetworkAclAssociationResult, AWSError>;
  1546   /**
  1547    * Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
  1548    */
  1549   replaceNetworkAclAssociation(callback?: (err: AWSError, data: EC2.Types.ReplaceNetworkAclAssociationResult) => void): Request<EC2.Types.ReplaceNetworkAclAssociationResult, AWSError>;
  1550   /**
  1551    * Replaces an entry (rule) in a network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
  1552    */
  1553   replaceNetworkAclEntry(params: EC2.Types.ReplaceNetworkAclEntryRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1554   /**
  1555    * Replaces an entry (rule) in a network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.
  1556    */
  1557   replaceNetworkAclEntry(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1558   /**
  1559    * Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, or network interface. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
  1560    */
  1561   replaceRoute(params: EC2.Types.ReplaceRouteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1562   /**
  1563    * Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, or network interface. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.
  1564    */
  1565   replaceRoute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1566   /**
  1567    * Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses the routes in the new route table it's associated with. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide. You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just specify the main route table's association ID and the route table to be the new main route table.
  1568    */
  1569   replaceRouteTableAssociation(params: EC2.Types.ReplaceRouteTableAssociationRequest, callback?: (err: AWSError, data: EC2.Types.ReplaceRouteTableAssociationResult) => void): Request<EC2.Types.ReplaceRouteTableAssociationResult, AWSError>;
  1570   /**
  1571    * Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses the routes in the new route table it's associated with. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide. You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just specify the main route table's association ID and the route table to be the new main route table.
  1572    */
  1573   replaceRouteTableAssociation(callback?: (err: AWSError, data: EC2.Types.ReplaceRouteTableAssociationResult) => void): Request<EC2.Types.ReplaceRouteTableAssociationResult, AWSError>;
  1574   /**
  1575    * Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks. Use of this action does not change the value returned by DescribeInstanceStatus.
  1576    */
  1577   reportInstanceStatus(params: EC2.Types.ReportInstanceStatusRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1578   /**
  1579    * Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks. Use of this action does not change the value returned by DescribeInstanceStatus.
  1580    */
  1581   reportInstanceStatus(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1582   /**
  1583    * Creates a Spot fleet request. You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet. By default, the Spot fleet requests Spot instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload. Alternatively, you can specify that the Spot fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot instances in your Spot fleet are in different Spot pools, you can improve the availability of your fleet. For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide.
  1584    */
  1585   requestSpotFleet(params: EC2.Types.RequestSpotFleetRequest, callback?: (err: AWSError, data: EC2.Types.RequestSpotFleetResponse) => void): Request<EC2.Types.RequestSpotFleetResponse, AWSError>;
  1586   /**
  1587    * Creates a Spot fleet request. You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet. By default, the Spot fleet requests Spot instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload. Alternatively, you can specify that the Spot fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot instances in your Spot fleet are in different Spot pools, you can improve the availability of your fleet. For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide.
  1588    */
  1589   requestSpotFleet(callback?: (err: AWSError, data: EC2.Types.RequestSpotFleetResponse) => void): Request<EC2.Types.RequestSpotFleetResponse, AWSError>;
  1590   /**
  1591    * Creates a Spot instance request. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot Instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.
  1592    */
  1593   requestSpotInstances(params: EC2.Types.RequestSpotInstancesRequest, callback?: (err: AWSError, data: EC2.Types.RequestSpotInstancesResult) => void): Request<EC2.Types.RequestSpotInstancesResult, AWSError>;
  1594   /**
  1595    * Creates a Spot instance request. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot Instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.
  1596    */
  1597   requestSpotInstances(callback?: (err: AWSError, data: EC2.Types.RequestSpotInstancesResult) => void): Request<EC2.Types.RequestSpotInstancesResult, AWSError>;
  1598   /**
  1599    * Resets an attribute of an AMI to its default value.  The productCodes attribute can't be reset. 
  1600    */
  1601   resetImageAttribute(params: EC2.Types.ResetImageAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1602   /**
  1603    * Resets an attribute of an AMI to its default value.  The productCodes attribute can't be reset. 
  1604    */
  1605   resetImageAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1606   /**
  1607    * Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the sourceDestCheck, the instance can be either running or stopped. The sourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.
  1608    */
  1609   resetInstanceAttribute(params: EC2.Types.ResetInstanceAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1610   /**
  1611    * Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the sourceDestCheck, the instance can be either running or stopped. The sourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.
  1612    */
  1613   resetInstanceAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1614   /**
  1615    * Resets a network interface attribute. You can specify only one attribute at a time.
  1616    */
  1617   resetNetworkInterfaceAttribute(params: EC2.Types.ResetNetworkInterfaceAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1618   /**
  1619    * Resets a network interface attribute. You can specify only one attribute at a time.
  1620    */
  1621   resetNetworkInterfaceAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1622   /**
  1623    * Resets permission settings for the specified snapshot. For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.
  1624    */
  1625   resetSnapshotAttribute(params: EC2.Types.ResetSnapshotAttributeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1626   /**
  1627    * Resets permission settings for the specified snapshot. For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.
  1628    */
  1629   resetSnapshotAttribute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1630   /**
  1631    * Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.
  1632    */
  1633   restoreAddressToClassic(params: EC2.Types.RestoreAddressToClassicRequest, callback?: (err: AWSError, data: EC2.Types.RestoreAddressToClassicResult) => void): Request<EC2.Types.RestoreAddressToClassicResult, AWSError>;
  1634   /**
  1635    * Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.
  1636    */
  1637   restoreAddressToClassic(callback?: (err: AWSError, data: EC2.Types.RestoreAddressToClassicResult) => void): Request<EC2.Types.RestoreAddressToClassicResult, AWSError>;
  1638   /**
  1639    * [EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked. Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.
  1640    */
  1641   revokeSecurityGroupEgress(params: EC2.Types.RevokeSecurityGroupEgressRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1642   /**
  1643    * [EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked. Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.
  1644    */
  1645   revokeSecurityGroupEgress(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1646   /**
  1647    * Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed. Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.
  1648    */
  1649   revokeSecurityGroupIngress(params: EC2.Types.RevokeSecurityGroupIngressRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1650   /**
  1651    * Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed. Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.
  1652    */
  1653   revokeSecurityGroupIngress(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1654   /**
  1655    * Launches the specified number of instances using an AMI for which you have permissions. When you launch an instance, it enters the pending state. After the instance is ready for you, it enters the running state. To check the state of your instance, call DescribeInstances. To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances. To tag your instance, ensure that it is running as CreateTags requires a resource ID. For more information about tagging, see Tagging Your Amazon EC2 Resources. If you don't specify a security group when launching an instance, Amazon EC2 uses the default security group. For more information, see Security Groups in the Amazon Elastic Compute Cloud User Guide. [EC2-VPC only accounts] If you don't specify a subnet in the request, we choose a default subnet from your default VPC for you. [EC2-Classic accounts] If you're launching into EC2-Classic and you don't specify an Availability Zone, we choose one for you. Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. You can provide optional user data when launching an instance. For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide. If any of the AMIs have a product code attached for which the user has not subscribed, RunInstances fails. Some instance types can only be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID in the request, RunInstances fails. For more information, see Instance Types Available Only in a VPC. For more information about troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.
  1656    */
  1657   runInstances(params: EC2.Types.RunInstancesRequest, callback?: (err: AWSError, data: EC2.Types.Reservation) => void): Request<EC2.Types.Reservation, AWSError>;
  1658   /**
  1659    * Launches the specified number of instances using an AMI for which you have permissions. When you launch an instance, it enters the pending state. After the instance is ready for you, it enters the running state. To check the state of your instance, call DescribeInstances. To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances. To tag your instance, ensure that it is running as CreateTags requires a resource ID. For more information about tagging, see Tagging Your Amazon EC2 Resources. If you don't specify a security group when launching an instance, Amazon EC2 uses the default security group. For more information, see Security Groups in the Amazon Elastic Compute Cloud User Guide. [EC2-VPC only accounts] If you don't specify a subnet in the request, we choose a default subnet from your default VPC for you. [EC2-Classic accounts] If you're launching into EC2-Classic and you don't specify an Availability Zone, we choose one for you. Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. You can provide optional user data when launching an instance. For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide. If any of the AMIs have a product code attached for which the user has not subscribed, RunInstances fails. Some instance types can only be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID in the request, RunInstances fails. For more information, see Instance Types Available Only in a VPC. For more information about troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.
  1660    */
  1661   runInstances(callback?: (err: AWSError, data: EC2.Types.Reservation) => void): Request<EC2.Types.Reservation, AWSError>;
  1662   /**
  1663    * Launches the specified Scheduled Instances. Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances. You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see Scheduled Instances in the Amazon Elastic Compute Cloud User Guide.
  1664    */
  1665   runScheduledInstances(params: EC2.Types.RunScheduledInstancesRequest, callback?: (err: AWSError, data: EC2.Types.RunScheduledInstancesResult) => void): Request<EC2.Types.RunScheduledInstancesResult, AWSError>;
  1666   /**
  1667    * Launches the specified Scheduled Instances. Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances. You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see Scheduled Instances in the Amazon Elastic Compute Cloud User Guide.
  1668    */
  1669   runScheduledInstances(callback?: (err: AWSError, data: EC2.Types.RunScheduledInstancesResult) => void): Request<EC2.Types.RunScheduledInstancesResult, AWSError>;
  1670   /**
  1671    * Starts an Amazon EBS-backed AMI that you've previously stopped. Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Performing this operation on an instance that uses an instance store as its root device returns an error. For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.
  1672    */
  1673   startInstances(params: EC2.Types.StartInstancesRequest, callback?: (err: AWSError, data: EC2.Types.StartInstancesResult) => void): Request<EC2.Types.StartInstancesResult, AWSError>;
  1674   /**
  1675    * Starts an Amazon EBS-backed AMI that you've previously stopped. Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Performing this operation on an instance that uses an instance store as its root device returns an error. For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.
  1676    */
  1677   startInstances(callback?: (err: AWSError, data: EC2.Types.StartInstancesResult) => void): Request<EC2.Types.StartInstancesResult, AWSError>;
  1678   /**
  1679    * Stops an Amazon EBS-backed instance. We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour. You can't start or stop Spot instances, and you can't stop instance store-backed instances. When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.
  1680    */
  1681   stopInstances(params: EC2.Types.StopInstancesRequest, callback?: (err: AWSError, data: EC2.Types.StopInstancesResult) => void): Request<EC2.Types.StopInstancesResult, AWSError>;
  1682   /**
  1683    * Stops an Amazon EBS-backed instance. We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour. You can't start or stop Spot instances, and you can't stop instance store-backed instances. When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.
  1684    */
  1685   stopInstances(callback?: (err: AWSError, data: EC2.Types.StopInstancesResult) => void): Request<EC2.Types.StopInstancesResult, AWSError>;
  1686   /**
  1687    * Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.  If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated. Terminated instances remain visible after termination (for approximately one hour). By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running. You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, any attached EBS volumes with the DeleteOnTermination block device mapping parameter set to true are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide.
  1688    */
  1689   terminateInstances(params: EC2.Types.TerminateInstancesRequest, callback?: (err: AWSError, data: EC2.Types.TerminateInstancesResult) => void): Request<EC2.Types.TerminateInstancesResult, AWSError>;
  1690   /**
  1691    * Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.  If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated. Terminated instances remain visible after termination (for approximately one hour). By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running. You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, any attached EBS volumes with the DeleteOnTermination block device mapping parameter set to true are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide.
  1692    */
  1693   terminateInstances(callback?: (err: AWSError, data: EC2.Types.TerminateInstancesResult) => void): Request<EC2.Types.TerminateInstancesResult, AWSError>;
  1694   /**
  1695    * Unassigns one or more secondary private IP addresses from a network interface.
  1696    */
  1697   unassignPrivateIpAddresses(params: EC2.Types.UnassignPrivateIpAddressesRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1698   /**
  1699    * Unassigns one or more secondary private IP addresses from a network interface.
  1700    */
  1701   unassignPrivateIpAddresses(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
  1702   /**
  1703    * Disables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.
  1704    */
  1705   unmonitorInstances(params: EC2.Types.UnmonitorInstancesRequest, callback?: (err: AWSError, data: EC2.Types.UnmonitorInstancesResult) => void): Request<EC2.Types.UnmonitorInstancesResult, AWSError>;
  1706   /**
  1707    * Disables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.
  1708    */
  1709   unmonitorInstances(callback?: (err: AWSError, data: EC2.Types.UnmonitorInstancesResult) => void): Request<EC2.Types.UnmonitorInstancesResult, AWSError>;
  1710   /**
  1711    * Waits for the instanceExists state by periodically calling the underlying EC2.describeInstancesoperation every 5 seconds (at most 40 times).
  1712    */
  1713   waitFor(state: "instanceExists", params: EC2.Types.DescribeInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1714   /**
  1715    * Waits for the instanceExists state by periodically calling the underlying EC2.describeInstancesoperation every 5 seconds (at most 40 times).
  1716    */
  1717   waitFor(state: "instanceExists", callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1718   /**
  1719    * Waits for the bundleTaskComplete state by periodically calling the underlying EC2.describeBundleTasksoperation every 15 seconds (at most 40 times).
  1720    */
  1721   waitFor(state: "bundleTaskComplete", params: EC2.Types.DescribeBundleTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeBundleTasksResult) => void): Request<EC2.Types.DescribeBundleTasksResult, AWSError>;
  1722   /**
  1723    * Waits for the bundleTaskComplete state by periodically calling the underlying EC2.describeBundleTasksoperation every 15 seconds (at most 40 times).
  1724    */
  1725   waitFor(state: "bundleTaskComplete", callback?: (err: AWSError, data: EC2.Types.DescribeBundleTasksResult) => void): Request<EC2.Types.DescribeBundleTasksResult, AWSError>;
  1726   /**
  1727    * Waits for the conversionTaskCancelled state by periodically calling the underlying EC2.describeConversionTasksoperation every 15 seconds (at most 40 times).
  1728    */
  1729   waitFor(state: "conversionTaskCancelled", params: EC2.Types.DescribeConversionTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
  1730   /**
  1731    * Waits for the conversionTaskCancelled state by periodically calling the underlying EC2.describeConversionTasksoperation every 15 seconds (at most 40 times).
  1732    */
  1733   waitFor(state: "conversionTaskCancelled", callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
  1734   /**
  1735    * Waits for the conversionTaskCompleted state by periodically calling the underlying EC2.describeConversionTasksoperation every 15 seconds (at most 40 times).
  1736    */
  1737   waitFor(state: "conversionTaskCompleted", params: EC2.Types.DescribeConversionTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
  1738   /**
  1739    * Waits for the conversionTaskCompleted state by periodically calling the underlying EC2.describeConversionTasksoperation every 15 seconds (at most 40 times).
  1740    */
  1741   waitFor(state: "conversionTaskCompleted", callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
  1742   /**
  1743    * Waits for the conversionTaskDeleted state by periodically calling the underlying EC2.describeConversionTasksoperation every 15 seconds (at most 40 times).
  1744    */
  1745   waitFor(state: "conversionTaskDeleted", params: EC2.Types.DescribeConversionTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
  1746   /**
  1747    * Waits for the conversionTaskDeleted state by periodically calling the underlying EC2.describeConversionTasksoperation every 15 seconds (at most 40 times).
  1748    */
  1749   waitFor(state: "conversionTaskDeleted", callback?: (err: AWSError, data: EC2.Types.DescribeConversionTasksResult) => void): Request<EC2.Types.DescribeConversionTasksResult, AWSError>;
  1750   /**
  1751    * Waits for the customerGatewayAvailable state by periodically calling the underlying EC2.describeCustomerGatewaysoperation every 15 seconds (at most 40 times).
  1752    */
  1753   waitFor(state: "customerGatewayAvailable", params: EC2.Types.DescribeCustomerGatewaysRequest, callback?: (err: AWSError, data: EC2.Types.DescribeCustomerGatewaysResult) => void): Request<EC2.Types.DescribeCustomerGatewaysResult, AWSError>;
  1754   /**
  1755    * Waits for the customerGatewayAvailable state by periodically calling the underlying EC2.describeCustomerGatewaysoperation every 15 seconds (at most 40 times).
  1756    */
  1757   waitFor(state: "customerGatewayAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeCustomerGatewaysResult) => void): Request<EC2.Types.DescribeCustomerGatewaysResult, AWSError>;
  1758   /**
  1759    * Waits for the exportTaskCancelled state by periodically calling the underlying EC2.describeExportTasksoperation every 15 seconds (at most 40 times).
  1760    */
  1761   waitFor(state: "exportTaskCancelled", params: EC2.Types.DescribeExportTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeExportTasksResult) => void): Request<EC2.Types.DescribeExportTasksResult, AWSError>;
  1762   /**
  1763    * Waits for the exportTaskCancelled state by periodically calling the underlying EC2.describeExportTasksoperation every 15 seconds (at most 40 times).
  1764    */
  1765   waitFor(state: "exportTaskCancelled", callback?: (err: AWSError, data: EC2.Types.DescribeExportTasksResult) => void): Request<EC2.Types.DescribeExportTasksResult, AWSError>;
  1766   /**
  1767    * Waits for the exportTaskCompleted state by periodically calling the underlying EC2.describeExportTasksoperation every 15 seconds (at most 40 times).
  1768    */
  1769   waitFor(state: "exportTaskCompleted", params: EC2.Types.DescribeExportTasksRequest, callback?: (err: AWSError, data: EC2.Types.DescribeExportTasksResult) => void): Request<EC2.Types.DescribeExportTasksResult, AWSError>;
  1770   /**
  1771    * Waits for the exportTaskCompleted state by periodically calling the underlying EC2.describeExportTasksoperation every 15 seconds (at most 40 times).
  1772    */
  1773   waitFor(state: "exportTaskCompleted", callback?: (err: AWSError, data: EC2.Types.DescribeExportTasksResult) => void): Request<EC2.Types.DescribeExportTasksResult, AWSError>;
  1774   /**
  1775    * Waits for the imageExists state by periodically calling the underlying EC2.describeImagesoperation every 15 seconds (at most 40 times).
  1776    */
  1777   waitFor(state: "imageExists", params: EC2.Types.DescribeImagesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeImagesResult) => void): Request<EC2.Types.DescribeImagesResult, AWSError>;
  1778   /**
  1779    * Waits for the imageExists state by periodically calling the underlying EC2.describeImagesoperation every 15 seconds (at most 40 times).
  1780    */
  1781   waitFor(state: "imageExists", callback?: (err: AWSError, data: EC2.Types.DescribeImagesResult) => void): Request<EC2.Types.DescribeImagesResult, AWSError>;
  1782   /**
  1783    * Waits for the imageAvailable state by periodically calling the underlying EC2.describeImagesoperation every 15 seconds (at most 40 times).
  1784    */
  1785   waitFor(state: "imageAvailable", params: EC2.Types.DescribeImagesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeImagesResult) => void): Request<EC2.Types.DescribeImagesResult, AWSError>;
  1786   /**
  1787    * Waits for the imageAvailable state by periodically calling the underlying EC2.describeImagesoperation every 15 seconds (at most 40 times).
  1788    */
  1789   waitFor(state: "imageAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeImagesResult) => void): Request<EC2.Types.DescribeImagesResult, AWSError>;
  1790   /**
  1791    * Waits for the instanceRunning state by periodically calling the underlying EC2.describeInstancesoperation every 15 seconds (at most 40 times).
  1792    */
  1793   waitFor(state: "instanceRunning", params: EC2.Types.DescribeInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1794   /**
  1795    * Waits for the instanceRunning state by periodically calling the underlying EC2.describeInstancesoperation every 15 seconds (at most 40 times).
  1796    */
  1797   waitFor(state: "instanceRunning", callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1798   /**
  1799    * Waits for the instanceStatusOk state by periodically calling the underlying EC2.describeInstanceStatusoperation every 15 seconds (at most 40 times).
  1800    */
  1801   waitFor(state: "instanceStatusOk", params: EC2.Types.DescribeInstanceStatusRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstanceStatusResult) => void): Request<EC2.Types.DescribeInstanceStatusResult, AWSError>;
  1802   /**
  1803    * Waits for the instanceStatusOk state by periodically calling the underlying EC2.describeInstanceStatusoperation every 15 seconds (at most 40 times).
  1804    */
  1805   waitFor(state: "instanceStatusOk", callback?: (err: AWSError, data: EC2.Types.DescribeInstanceStatusResult) => void): Request<EC2.Types.DescribeInstanceStatusResult, AWSError>;
  1806   /**
  1807    * Waits for the instanceStopped state by periodically calling the underlying EC2.describeInstancesoperation every 15 seconds (at most 40 times).
  1808    */
  1809   waitFor(state: "instanceStopped", params: EC2.Types.DescribeInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1810   /**
  1811    * Waits for the instanceStopped state by periodically calling the underlying EC2.describeInstancesoperation every 15 seconds (at most 40 times).
  1812    */
  1813   waitFor(state: "instanceStopped", callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1814   /**
  1815    * Waits for the instanceTerminated state by periodically calling the underlying EC2.describeInstancesoperation every 15 seconds (at most 40 times).
  1816    */
  1817   waitFor(state: "instanceTerminated", params: EC2.Types.DescribeInstancesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1818   /**
  1819    * Waits for the instanceTerminated state by periodically calling the underlying EC2.describeInstancesoperation every 15 seconds (at most 40 times).
  1820    */
  1821   waitFor(state: "instanceTerminated", callback?: (err: AWSError, data: EC2.Types.DescribeInstancesResult) => void): Request<EC2.Types.DescribeInstancesResult, AWSError>;
  1822   /**
  1823    * Waits for the keyPairExists state by periodically calling the underlying EC2.describeKeyPairsoperation every 5 seconds (at most 6 times).
  1824    */
  1825   waitFor(state: "keyPairExists", params: EC2.Types.DescribeKeyPairsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeKeyPairsResult) => void): Request<EC2.Types.DescribeKeyPairsResult, AWSError>;
  1826   /**
  1827    * Waits for the keyPairExists state by periodically calling the underlying EC2.describeKeyPairsoperation every 5 seconds (at most 6 times).
  1828    */
  1829   waitFor(state: "keyPairExists", callback?: (err: AWSError, data: EC2.Types.DescribeKeyPairsResult) => void): Request<EC2.Types.DescribeKeyPairsResult, AWSError>;
  1830   /**
  1831    * Waits for the natGatewayAvailable state by periodically calling the underlying EC2.describeNatGatewaysoperation every 15 seconds (at most 40 times).
  1832    */
  1833   waitFor(state: "natGatewayAvailable", params: EC2.Types.DescribeNatGatewaysRequest, callback?: (err: AWSError, data: EC2.Types.DescribeNatGatewaysResult) => void): Request<EC2.Types.DescribeNatGatewaysResult, AWSError>;
  1834   /**
  1835    * Waits for the natGatewayAvailable state by periodically calling the underlying EC2.describeNatGatewaysoperation every 15 seconds (at most 40 times).
  1836    */
  1837   waitFor(state: "natGatewayAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeNatGatewaysResult) => void): Request<EC2.Types.DescribeNatGatewaysResult, AWSError>;
  1838   /**
  1839    * Waits for the networkInterfaceAvailable state by periodically calling the underlying EC2.describeNetworkInterfacesoperation every 20 seconds (at most 10 times).
  1840    */
  1841   waitFor(state: "networkInterfaceAvailable", params: EC2.Types.DescribeNetworkInterfacesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeNetworkInterfacesResult) => void): Request<EC2.Types.DescribeNetworkInterfacesResult, AWSError>;
  1842   /**
  1843    * Waits for the networkInterfaceAvailable state by periodically calling the underlying EC2.describeNetworkInterfacesoperation every 20 seconds (at most 10 times).
  1844    */
  1845   waitFor(state: "networkInterfaceAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeNetworkInterfacesResult) => void): Request<EC2.Types.DescribeNetworkInterfacesResult, AWSError>;
  1846   /**
  1847    * Waits for the passwordDataAvailable state by periodically calling the underlying EC2.getPasswordDataoperation every 15 seconds (at most 40 times).
  1848    */
  1849   waitFor(state: "passwordDataAvailable", params: EC2.Types.GetPasswordDataRequest, callback?: (err: AWSError, data: EC2.Types.GetPasswordDataResult) => void): Request<EC2.Types.GetPasswordDataResult, AWSError>;
  1850   /**
  1851    * Waits for the passwordDataAvailable state by periodically calling the underlying EC2.getPasswordDataoperation every 15 seconds (at most 40 times).
  1852    */
  1853   waitFor(state: "passwordDataAvailable", callback?: (err: AWSError, data: EC2.Types.GetPasswordDataResult) => void): Request<EC2.Types.GetPasswordDataResult, AWSError>;
  1854   /**
  1855    * Waits for the snapshotCompleted state by periodically calling the underlying EC2.describeSnapshotsoperation every 15 seconds (at most 40 times).
  1856    */
  1857   waitFor(state: "snapshotCompleted", params: EC2.Types.DescribeSnapshotsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSnapshotsResult) => void): Request<EC2.Types.DescribeSnapshotsResult, AWSError>;
  1858   /**
  1859    * Waits for the snapshotCompleted state by periodically calling the underlying EC2.describeSnapshotsoperation every 15 seconds (at most 40 times).
  1860    */
  1861   waitFor(state: "snapshotCompleted", callback?: (err: AWSError, data: EC2.Types.DescribeSnapshotsResult) => void): Request<EC2.Types.DescribeSnapshotsResult, AWSError>;
  1862   /**
  1863    * Waits for the spotInstanceRequestFulfilled state by periodically calling the underlying EC2.describeSpotInstanceRequestsoperation every 15 seconds (at most 40 times).
  1864    */
  1865   waitFor(state: "spotInstanceRequestFulfilled", params: EC2.Types.DescribeSpotInstanceRequestsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSpotInstanceRequestsResult) => void): Request<EC2.Types.DescribeSpotInstanceRequestsResult, AWSError>;
  1866   /**
  1867    * Waits for the spotInstanceRequestFulfilled state by periodically calling the underlying EC2.describeSpotInstanceRequestsoperation every 15 seconds (at most 40 times).
  1868    */
  1869   waitFor(state: "spotInstanceRequestFulfilled", callback?: (err: AWSError, data: EC2.Types.DescribeSpotInstanceRequestsResult) => void): Request<EC2.Types.DescribeSpotInstanceRequestsResult, AWSError>;
  1870   /**
  1871    * Waits for the subnetAvailable state by periodically calling the underlying EC2.describeSubnetsoperation every 15 seconds (at most 40 times).
  1872    */
  1873   waitFor(state: "subnetAvailable", params: EC2.Types.DescribeSubnetsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeSubnetsResult) => void): Request<EC2.Types.DescribeSubnetsResult, AWSError>;
  1874   /**
  1875    * Waits for the subnetAvailable state by periodically calling the underlying EC2.describeSubnetsoperation every 15 seconds (at most 40 times).
  1876    */
  1877   waitFor(state: "subnetAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeSubnetsResult) => void): Request<EC2.Types.DescribeSubnetsResult, AWSError>;
  1878   /**
  1879    * Waits for the systemStatusOk state by periodically calling the underlying EC2.describeInstanceStatusoperation every 15 seconds (at most 40 times).
  1880    */
  1881   waitFor(state: "systemStatusOk", params: EC2.Types.DescribeInstanceStatusRequest, callback?: (err: AWSError, data: EC2.Types.DescribeInstanceStatusResult) => void): Request<EC2.Types.DescribeInstanceStatusResult, AWSError>;
  1882   /**
  1883    * Waits for the systemStatusOk state by periodically calling the underlying EC2.describeInstanceStatusoperation every 15 seconds (at most 40 times).
  1884    */
  1885   waitFor(state: "systemStatusOk", callback?: (err: AWSError, data: EC2.Types.DescribeInstanceStatusResult) => void): Request<EC2.Types.DescribeInstanceStatusResult, AWSError>;
  1886   /**
  1887    * Waits for the volumeAvailable state by periodically calling the underlying EC2.describeVolumesoperation every 15 seconds (at most 40 times).
  1888    */
  1889   waitFor(state: "volumeAvailable", params: EC2.Types.DescribeVolumesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1890   /**
  1891    * Waits for the volumeAvailable state by periodically calling the underlying EC2.describeVolumesoperation every 15 seconds (at most 40 times).
  1892    */
  1893   waitFor(state: "volumeAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1894   /**
  1895    * Waits for the volumeDeleted state by periodically calling the underlying EC2.describeVolumesoperation every 15 seconds (at most 40 times).
  1896    */
  1897   waitFor(state: "volumeDeleted", params: EC2.Types.DescribeVolumesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1898   /**
  1899    * Waits for the volumeDeleted state by periodically calling the underlying EC2.describeVolumesoperation every 15 seconds (at most 40 times).
  1900    */
  1901   waitFor(state: "volumeDeleted", callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1902   /**
  1903    * Waits for the volumeInUse state by periodically calling the underlying EC2.describeVolumesoperation every 15 seconds (at most 40 times).
  1904    */
  1905   waitFor(state: "volumeInUse", params: EC2.Types.DescribeVolumesRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1906   /**
  1907    * Waits for the volumeInUse state by periodically calling the underlying EC2.describeVolumesoperation every 15 seconds (at most 40 times).
  1908    */
  1909   waitFor(state: "volumeInUse", callback?: (err: AWSError, data: EC2.Types.DescribeVolumesResult) => void): Request<EC2.Types.DescribeVolumesResult, AWSError>;
  1910   /**
  1911    * Waits for the vpcAvailable state by periodically calling the underlying EC2.describeVpcsoperation every 15 seconds (at most 40 times).
  1912    */
  1913   waitFor(state: "vpcAvailable", params: EC2.Types.DescribeVpcsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcsResult) => void): Request<EC2.Types.DescribeVpcsResult, AWSError>;
  1914   /**
  1915    * Waits for the vpcAvailable state by periodically calling the underlying EC2.describeVpcsoperation every 15 seconds (at most 40 times).
  1916    */
  1917   waitFor(state: "vpcAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeVpcsResult) => void): Request<EC2.Types.DescribeVpcsResult, AWSError>;
  1918   /**
  1919    * Waits for the vpcExists state by periodically calling the underlying EC2.describeVpcsoperation every 1 seconds (at most 5 times).
  1920    */
  1921   waitFor(state: "vpcExists", params: EC2.Types.DescribeVpcsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcsResult) => void): Request<EC2.Types.DescribeVpcsResult, AWSError>;
  1922   /**
  1923    * Waits for the vpcExists state by periodically calling the underlying EC2.describeVpcsoperation every 1 seconds (at most 5 times).
  1924    */
  1925   waitFor(state: "vpcExists", callback?: (err: AWSError, data: EC2.Types.DescribeVpcsResult) => void): Request<EC2.Types.DescribeVpcsResult, AWSError>;
  1926   /**
  1927    * Waits for the vpnConnectionAvailable state by periodically calling the underlying EC2.describeVpnConnectionsoperation every 15 seconds (at most 40 times).
  1928    */
  1929   waitFor(state: "vpnConnectionAvailable", params: EC2.Types.DescribeVpnConnectionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpnConnectionsResult) => void): Request<EC2.Types.DescribeVpnConnectionsResult, AWSError>;
  1930   /**
  1931    * Waits for the vpnConnectionAvailable state by periodically calling the underlying EC2.describeVpnConnectionsoperation every 15 seconds (at most 40 times).
  1932    */
  1933   waitFor(state: "vpnConnectionAvailable", callback?: (err: AWSError, data: EC2.Types.DescribeVpnConnectionsResult) => void): Request<EC2.Types.DescribeVpnConnectionsResult, AWSError>;
  1934   /**
  1935    * Waits for the vpnConnectionDeleted state by periodically calling the underlying EC2.describeVpnConnectionsoperation every 15 seconds (at most 40 times).
  1936    */
  1937   waitFor(state: "vpnConnectionDeleted", params: EC2.Types.DescribeVpnConnectionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpnConnectionsResult) => void): Request<EC2.Types.DescribeVpnConnectionsResult, AWSError>;
  1938   /**
  1939    * Waits for the vpnConnectionDeleted state by periodically calling the underlying EC2.describeVpnConnectionsoperation every 15 seconds (at most 40 times).
  1940    */
  1941   waitFor(state: "vpnConnectionDeleted", callback?: (err: AWSError, data: EC2.Types.DescribeVpnConnectionsResult) => void): Request<EC2.Types.DescribeVpnConnectionsResult, AWSError>;
  1942   /**
  1943    * Waits for the vpcPeeringConnectionExists state by periodically calling the underlying EC2.describeVpcPeeringConnectionsoperation every 15 seconds (at most 40 times).
  1944    */
  1945   waitFor(state: "vpcPeeringConnectionExists", params: EC2.Types.DescribeVpcPeeringConnectionsRequest, callback?: (err: AWSError, data: EC2.Types.DescribeVpcPeeringConnectionsResult) => void): Request<EC2.Types.DescribeVpcPeeringConnectionsResult, AWSError>;
  1946   /**
  1947    * Waits for the vpcPeeringConnectionExists state by periodically calling the underlying EC2.describeVpcPeeringConnectionsoperation every 15 seconds (at most 40 times).
  1948    */
  1949   waitFor(state: "vpcPeeringConnectionExists", callback?: (err: AWSError, data: EC2.Types.DescribeVpcPeeringConnectionsResult) => void): Request<EC2.Types.DescribeVpcPeeringConnectionsResult, AWSError>;
  1950 }
  1951 declare namespace EC2.Types {
  1952   export interface AcceptReservedInstancesExchangeQuoteRequest {
  1953     /**
  1954      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  1955      */
  1956     DryRun?: Boolean;
  1957     /**
  1958      * The IDs of the Convertible Reserved Instances that you want to exchange for other Convertible Reserved Instances of the same or higher value.
  1959      */
  1960     ReservedInstanceIds: ReservedInstanceIdSet;
  1961     /**
  1962      * The configurations of the Convertible Reserved Instance offerings you are purchasing in this exchange.
  1963      */
  1964     TargetConfigurations?: TargetConfigurationRequestSet;
  1965   }
  1966   export interface AcceptReservedInstancesExchangeQuoteResult {
  1967     /**
  1968      * The ID of the successful exchange.
  1969      */
  1970     ExchangeId?: String;
  1971   }
  1972   export interface AcceptVpcPeeringConnectionRequest {
  1973     /**
  1974      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  1975      */
  1976     DryRun?: Boolean;
  1977     /**
  1978      * The ID of the VPC peering connection.
  1979      */
  1980     VpcPeeringConnectionId?: String;
  1981   }
  1982   export interface AcceptVpcPeeringConnectionResult {
  1983     /**
  1984      * Information about the VPC peering connection.
  1985      */
  1986     VpcPeeringConnection?: VpcPeeringConnection;
  1987   }
  1988   export interface AccountAttribute {
  1989     /**
  1990      * The name of the account attribute.
  1991      */
  1992     AttributeName?: String;
  1993     /**
  1994      * One or more values for the account attribute.
  1995      */
  1996     AttributeValues?: AccountAttributeValueList;
  1997   }
  1998   export type AccountAttributeList = AccountAttribute[];
  1999   export type AccountAttributeName = "supported-platforms"|"default-vpc"|string;
  2000   export type AccountAttributeNameStringList = AccountAttributeName[];
  2001   export interface AccountAttributeValue {
  2002     /**
  2003      * The value of the attribute.
  2004      */
  2005     AttributeValue?: String;
  2006   }
  2007   export type AccountAttributeValueList = AccountAttributeValue[];
  2008   export interface ActiveInstance {
  2009     /**
  2010      * The instance type.
  2011      */
  2012     InstanceType?: String;
  2013     /**
  2014      * The ID of the instance.
  2015      */
  2016     InstanceId?: String;
  2017     /**
  2018      * The ID of the Spot instance request.
  2019      */
  2020     SpotInstanceRequestId?: String;
  2021   }
  2022   export type ActiveInstanceSet = ActiveInstance[];
  2023   export type ActivityStatus = "error"|"pending_fulfillment"|"pending_termination"|"fulfilled"|string;
  2024   export interface Address {
  2025     /**
  2026      * The ID of the instance that the address is associated with (if any).
  2027      */
  2028     InstanceId?: String;
  2029     /**
  2030      * The Elastic IP address.
  2031      */
  2032     PublicIp?: String;
  2033     /**
  2034      * The ID representing the allocation of the address for use with EC2-VPC.
  2035      */
  2036     AllocationId?: String;
  2037     /**
  2038      * The ID representing the association of the address with an instance in a VPC.
  2039      */
  2040     AssociationId?: String;
  2041     /**
  2042      * Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).
  2043      */
  2044     Domain?: DomainType;
  2045     /**
  2046      * The ID of the network interface.
  2047      */
  2048     NetworkInterfaceId?: String;
  2049     /**
  2050      * The ID of the AWS account that owns the network interface.
  2051      */
  2052     NetworkInterfaceOwnerId?: String;
  2053     /**
  2054      * The private IP address associated with the Elastic IP address.
  2055      */
  2056     PrivateIpAddress?: String;
  2057   }
  2058   export type AddressList = Address[];
  2059   export type Affinity = "default"|"host"|string;
  2060   export interface AllocateAddressRequest {
  2061     /**
  2062      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2063      */
  2064     DryRun?: Boolean;
  2065     /**
  2066      * Set to vpc to allocate the address for use with instances in a VPC. Default: The address is for use with instances in EC2-Classic.
  2067      */
  2068     Domain?: DomainType;
  2069   }
  2070   export interface AllocateAddressResult {
  2071     /**
  2072      * The Elastic IP address.
  2073      */
  2074     PublicIp?: String;
  2075     /**
  2076      * Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).
  2077      */
  2078     Domain?: DomainType;
  2079     /**
  2080      * [EC2-VPC] The ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.
  2081      */
  2082     AllocationId?: String;
  2083   }
  2084   export interface AllocateHostsRequest {
  2085     /**
  2086      * This is enabled by default. This property allows instances to be automatically placed onto available Dedicated Hosts, when you are launching instances without specifying a host ID. Default: Enabled
  2087      */
  2088     AutoPlacement?: AutoPlacement;
  2089     /**
  2090      * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide. 
  2091      */
  2092     ClientToken?: String;
  2093     /**
  2094      * Specify the instance type that you want your Dedicated Hosts to be configured for. When you specify the instance type, that is the only instance type that you can launch onto that host.
  2095      */
  2096     InstanceType: String;
  2097     /**
  2098      * The number of Dedicated Hosts you want to allocate to your account with these parameters.
  2099      */
  2100     Quantity: Integer;
  2101     /**
  2102      * The Availability Zone for the Dedicated Hosts.
  2103      */
  2104     AvailabilityZone: String;
  2105   }
  2106   export interface AllocateHostsResult {
  2107     /**
  2108      * The ID of the allocated Dedicated Host. This is used when you want to launch an instance onto a specific host.
  2109      */
  2110     HostIds?: ResponseHostIdList;
  2111   }
  2112   export type AllocationIdList = String[];
  2113   export type AllocationState = "available"|"under-assessment"|"permanent-failure"|"released"|"released-permanent-failure"|string;
  2114   export type AllocationStrategy = "lowestPrice"|"diversified"|string;
  2115   export type ArchitectureValues = "i386"|"x86_64"|string;
  2116   export interface AssignPrivateIpAddressesRequest {
  2117     /**
  2118      * The ID of the network interface.
  2119      */
  2120     NetworkInterfaceId: String;
  2121     /**
  2122      * One or more IP addresses to be assigned as a secondary private IP address to the network interface. You can't specify this parameter when also specifying a number of secondary IP addresses. If you don't specify an IP address, Amazon EC2 automatically selects an IP address within the subnet range.
  2123      */
  2124     PrivateIpAddresses?: PrivateIpAddressStringList;
  2125     /**
  2126      * The number of secondary IP addresses to assign to the network interface. You can't specify this parameter when also specifying private IP addresses.
  2127      */
  2128     SecondaryPrivateIpAddressCount?: Integer;
  2129     /**
  2130      * Indicates whether to allow an IP address that is already assigned to another network interface or instance to be reassigned to the specified network interface.
  2131      */
  2132     AllowReassignment?: Boolean;
  2133   }
  2134   export interface AssociateAddressRequest {
  2135     /**
  2136      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2137      */
  2138     DryRun?: Boolean;
  2139     /**
  2140      * The ID of the instance. This is required for EC2-Classic. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. The operation fails if you specify an instance ID unless exactly one network interface is attached.
  2141      */
  2142     InstanceId?: String;
  2143     /**
  2144      * The Elastic IP address. This is required for EC2-Classic.
  2145      */
  2146     PublicIp?: String;
  2147     /**
  2148      * [EC2-VPC] The allocation ID. This is required for EC2-VPC.
  2149      */
  2150     AllocationId?: String;
  2151     /**
  2152      * [EC2-VPC] The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.
  2153      */
  2154     NetworkInterfaceId?: String;
  2155     /**
  2156      * [EC2-VPC] The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.
  2157      */
  2158     PrivateIpAddress?: String;
  2159     /**
  2160      * [EC2-VPC] For a VPC in an EC2-Classic account, specify true to allow an Elastic IP address that is already associated with an instance or network interface to be reassociated with the specified instance or network interface. Otherwise, the operation fails. In a VPC in an EC2-VPC-only account, reassociation is automatic, therefore you can specify false to ensure the operation fails if the Elastic IP address is already associated with another resource.
  2161      */
  2162     AllowReassociation?: Boolean;
  2163   }
  2164   export interface AssociateAddressResult {
  2165     /**
  2166      * [EC2-VPC] The ID that represents the association of the Elastic IP address with an instance.
  2167      */
  2168     AssociationId?: String;
  2169   }
  2170   export interface AssociateDhcpOptionsRequest {
  2171     /**
  2172      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2173      */
  2174     DryRun?: Boolean;
  2175     /**
  2176      * The ID of the DHCP options set, or default to associate no DHCP options with the VPC.
  2177      */
  2178     DhcpOptionsId: String;
  2179     /**
  2180      * The ID of the VPC.
  2181      */
  2182     VpcId: String;
  2183   }
  2184   export interface AssociateRouteTableRequest {
  2185     /**
  2186      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2187      */
  2188     DryRun?: Boolean;
  2189     /**
  2190      * The ID of the subnet.
  2191      */
  2192     SubnetId: String;
  2193     /**
  2194      * The ID of the route table.
  2195      */
  2196     RouteTableId: String;
  2197   }
  2198   export interface AssociateRouteTableResult {
  2199     /**
  2200      * The route table association ID (needed to disassociate the route table).
  2201      */
  2202     AssociationId?: String;
  2203   }
  2204   export interface AttachClassicLinkVpcRequest {
  2205     /**
  2206      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2207      */
  2208     DryRun?: Boolean;
  2209     /**
  2210      * The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC.
  2211      */
  2212     InstanceId: String;
  2213     /**
  2214      * The ID of a ClassicLink-enabled VPC.
  2215      */
  2216     VpcId: String;
  2217     /**
  2218      * The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.
  2219      */
  2220     Groups: GroupIdStringList;
  2221   }
  2222   export interface AttachClassicLinkVpcResult {
  2223     /**
  2224      * Returns true if the request succeeds; otherwise, it returns an error.
  2225      */
  2226     Return?: Boolean;
  2227   }
  2228   export interface AttachInternetGatewayRequest {
  2229     /**
  2230      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2231      */
  2232     DryRun?: Boolean;
  2233     /**
  2234      * The ID of the Internet gateway.
  2235      */
  2236     InternetGatewayId: String;
  2237     /**
  2238      * The ID of the VPC.
  2239      */
  2240     VpcId: String;
  2241   }
  2242   export interface AttachNetworkInterfaceRequest {
  2243     /**
  2244      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2245      */
  2246     DryRun?: Boolean;
  2247     /**
  2248      * The ID of the network interface.
  2249      */
  2250     NetworkInterfaceId: String;
  2251     /**
  2252      * The ID of the instance.
  2253      */
  2254     InstanceId: String;
  2255     /**
  2256      * The index of the device for the network interface attachment.
  2257      */
  2258     DeviceIndex: Integer;
  2259   }
  2260   export interface AttachNetworkInterfaceResult {
  2261     /**
  2262      * The ID of the network interface attachment.
  2263      */
  2264     AttachmentId?: String;
  2265   }
  2266   export interface AttachVolumeRequest {
  2267     /**
  2268      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2269      */
  2270     DryRun?: Boolean;
  2271     /**
  2272      * The ID of the EBS volume. The volume and instance must be within the same Availability Zone.
  2273      */
  2274     VolumeId: String;
  2275     /**
  2276      * The ID of the instance.
  2277      */
  2278     InstanceId: String;
  2279     /**
  2280      * The device name to expose to the instance (for example, /dev/sdh or xvdh).
  2281      */
  2282     Device: String;
  2283   }
  2284   export interface AttachVpnGatewayRequest {
  2285     /**
  2286      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2287      */
  2288     DryRun?: Boolean;
  2289     /**
  2290      * The ID of the virtual private gateway.
  2291      */
  2292     VpnGatewayId: String;
  2293     /**
  2294      * The ID of the VPC.
  2295      */
  2296     VpcId: String;
  2297   }
  2298   export interface AttachVpnGatewayResult {
  2299     /**
  2300      * Information about the attachment.
  2301      */
  2302     VpcAttachment?: VpcAttachment;
  2303   }
  2304   export type AttachmentStatus = "attaching"|"attached"|"detaching"|"detached"|string;
  2305   export interface AttributeBooleanValue {
  2306     /**
  2307      * The attribute value. The valid values are true or false.
  2308      */
  2309     Value?: Boolean;
  2310   }
  2311   export interface AttributeValue {
  2312     /**
  2313      * The attribute value. Note that the value is case-sensitive.
  2314      */
  2315     Value?: String;
  2316   }
  2317   export interface AuthorizeSecurityGroupEgressRequest {
  2318     /**
  2319      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2320      */
  2321     DryRun?: Boolean;
  2322     /**
  2323      * The ID of the security group.
  2324      */
  2325     GroupId: String;
  2326     /**
  2327      * The name of a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.
  2328      */
  2329     SourceSecurityGroupName?: String;
  2330     /**
  2331      * The AWS account number for a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.
  2332      */
  2333     SourceSecurityGroupOwnerId?: String;
  2334     /**
  2335      * The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.
  2336      */
  2337     IpProtocol?: String;
  2338     /**
  2339      * The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.
  2340      */
  2341     FromPort?: Integer;
  2342     /**
  2343      * The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.
  2344      */
  2345     ToPort?: Integer;
  2346     /**
  2347      * The CIDR IP address range. We recommend that you specify the CIDR range in a set of IP permissions instead.
  2348      */
  2349     CidrIp?: String;
  2350     /**
  2351      * A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.
  2352      */
  2353     IpPermissions?: IpPermissionList;
  2354   }
  2355   export interface AuthorizeSecurityGroupIngressRequest {
  2356     /**
  2357      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2358      */
  2359     DryRun?: Boolean;
  2360     /**
  2361      * [EC2-Classic, default VPC] The name of the security group.
  2362      */
  2363     GroupName?: String;
  2364     /**
  2365      * The ID of the security group. Required for a nondefault VPC.
  2366      */
  2367     GroupId?: String;
  2368     /**
  2369      * [EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. For EC2-VPC, the source security group must be in the same VPC.
  2370      */
  2371     SourceSecurityGroupName?: String;
  2372     /**
  2373      * [EC2-Classic] The AWS account number for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.
  2374      */
  2375     SourceSecurityGroupOwnerId?: String;
  2376     /**
  2377      * The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). (VPC only) Use -1 to specify all traffic. If you specify -1, traffic on all ports is allowed, regardless of any ports you specify.
  2378      */
  2379     IpProtocol?: String;
  2380     /**
  2381      * The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.
  2382      */
  2383     FromPort?: Integer;
  2384     /**
  2385      * The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.
  2386      */
  2387     ToPort?: Integer;
  2388     /**
  2389      * The CIDR IP address range. You can't specify this parameter when specifying a source security group.
  2390      */
  2391     CidrIp?: String;
  2392     /**
  2393      * A set of IP permissions. Can be used to specify multiple rules in a single command.
  2394      */
  2395     IpPermissions?: IpPermissionList;
  2396   }
  2397   export type AutoPlacement = "on"|"off"|string;
  2398   export interface AvailabilityZone {
  2399     /**
  2400      * The name of the Availability Zone.
  2401      */
  2402     ZoneName?: String;
  2403     /**
  2404      * The state of the Availability Zone.
  2405      */
  2406     State?: AvailabilityZoneState;
  2407     /**
  2408      * The name of the region.
  2409      */
  2410     RegionName?: String;
  2411     /**
  2412      * Any messages about the Availability Zone.
  2413      */
  2414     Messages?: AvailabilityZoneMessageList;
  2415   }
  2416   export type AvailabilityZoneList = AvailabilityZone[];
  2417   export interface AvailabilityZoneMessage {
  2418     /**
  2419      * The message about the Availability Zone.
  2420      */
  2421     Message?: String;
  2422   }
  2423   export type AvailabilityZoneMessageList = AvailabilityZoneMessage[];
  2424   export type AvailabilityZoneState = "available"|"information"|"impaired"|"unavailable"|string;
  2425   export interface AvailableCapacity {
  2426     /**
  2427      * The total number of instances that the Dedicated Host supports.
  2428      */
  2429     AvailableInstanceCapacity?: AvailableInstanceCapacityList;
  2430     /**
  2431      * The number of vCPUs available on the Dedicated Host.
  2432      */
  2433     AvailableVCpus?: Integer;
  2434   }
  2435   export type AvailableInstanceCapacityList = InstanceCapacity[];
  2436   export type BatchState = "submitted"|"active"|"cancelled"|"failed"|"cancelled_running"|"cancelled_terminating"|"modifying"|string;
  2437   export type _Blob = Buffer|Uint8Array|Blob|string;
  2438   export interface BlobAttributeValue {
  2439     Value?: _Blob;
  2440   }
  2441   export interface BlockDeviceMapping {
  2442     /**
  2443      * The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
  2444      */
  2445     VirtualName?: String;
  2446     /**
  2447      * The device name exposed to the instance (for example, /dev/sdh or xvdh).
  2448      */
  2449     DeviceName?: String;
  2450     /**
  2451      * Parameters used to automatically set up EBS volumes when the instance is launched.
  2452      */
  2453     Ebs?: EbsBlockDevice;
  2454     /**
  2455      * Suppresses the specified device included in the block device mapping of the AMI.
  2456      */
  2457     NoDevice?: String;
  2458   }
  2459   export type BlockDeviceMappingList = BlockDeviceMapping[];
  2460   export type BlockDeviceMappingRequestList = BlockDeviceMapping[];
  2461   export type Boolean = boolean;
  2462   export type BundleIdStringList = String[];
  2463   export interface BundleInstanceRequest {
  2464     /**
  2465      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2466      */
  2467     DryRun?: Boolean;
  2468     /**
  2469      * The ID of the instance to bundle. Type: String Default: None Required: Yes
  2470      */
  2471     InstanceId: String;
  2472     /**
  2473      * The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.
  2474      */
  2475     Storage: Storage;
  2476   }
  2477   export interface BundleInstanceResult {
  2478     /**
  2479      * Information about the bundle task.
  2480      */
  2481     BundleTask?: BundleTask;
  2482   }
  2483   export interface BundleTask {
  2484     /**
  2485      * The ID of the instance associated with this bundle task.
  2486      */
  2487     InstanceId?: String;
  2488     /**
  2489      * The ID of the bundle task.
  2490      */
  2491     BundleId?: String;
  2492     /**
  2493      * The state of the task.
  2494      */
  2495     State?: BundleTaskState;
  2496     /**
  2497      * The time this task started.
  2498      */
  2499     StartTime?: DateTime;
  2500     /**
  2501      * The time of the most recent update for the task.
  2502      */
  2503     UpdateTime?: DateTime;
  2504     /**
  2505      * The Amazon S3 storage locations.
  2506      */
  2507     Storage?: Storage;
  2508     /**
  2509      * The level of task completion, as a percent (for example, 20%).
  2510      */
  2511     Progress?: String;
  2512     /**
  2513      * If the task fails, a description of the error.
  2514      */
  2515     BundleTaskError?: BundleTaskError;
  2516   }
  2517   export interface BundleTaskError {
  2518     /**
  2519      * The error code.
  2520      */
  2521     Code?: String;
  2522     /**
  2523      * The error message.
  2524      */
  2525     Message?: String;
  2526   }
  2527   export type BundleTaskList = BundleTask[];
  2528   export type BundleTaskState = "pending"|"waiting-for-shutdown"|"bundling"|"storing"|"cancelling"|"complete"|"failed"|string;
  2529   export type CancelBatchErrorCode = "fleetRequestIdDoesNotExist"|"fleetRequestIdMalformed"|"fleetRequestNotInCancellableState"|"unexpectedError"|string;
  2530   export interface CancelBundleTaskRequest {
  2531     /**
  2532      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2533      */
  2534     DryRun?: Boolean;
  2535     /**
  2536      * The ID of the bundle task.
  2537      */
  2538     BundleId: String;
  2539   }
  2540   export interface CancelBundleTaskResult {
  2541     /**
  2542      * Information about the bundle task.
  2543      */
  2544     BundleTask?: BundleTask;
  2545   }
  2546   export interface CancelConversionRequest {
  2547     /**
  2548      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2549      */
  2550     DryRun?: Boolean;
  2551     /**
  2552      * The ID of the conversion task.
  2553      */
  2554     ConversionTaskId: String;
  2555     /**
  2556      * The reason for canceling the conversion task.
  2557      */
  2558     ReasonMessage?: String;
  2559   }
  2560   export interface CancelExportTaskRequest {
  2561     /**
  2562      * The ID of the export task. This is the ID returned by CreateInstanceExportTask.
  2563      */
  2564     ExportTaskId: String;
  2565   }
  2566   export interface CancelImportTaskRequest {
  2567     /**
  2568      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2569      */
  2570     DryRun?: Boolean;
  2571     /**
  2572      * The ID of the import image or import snapshot task to be canceled.
  2573      */
  2574     ImportTaskId?: String;
  2575     /**
  2576      * The reason for canceling the task.
  2577      */
  2578     CancelReason?: String;
  2579   }
  2580   export interface CancelImportTaskResult {
  2581     /**
  2582      * The ID of the task being canceled.
  2583      */
  2584     ImportTaskId?: String;
  2585     /**
  2586      * The current state of the task being canceled.
  2587      */
  2588     State?: String;
  2589     /**
  2590      * The current state of the task being canceled.
  2591      */
  2592     PreviousState?: String;
  2593   }
  2594   export interface CancelReservedInstancesListingRequest {
  2595     /**
  2596      * The ID of the Reserved Instance listing.
  2597      */
  2598     ReservedInstancesListingId: String;
  2599   }
  2600   export interface CancelReservedInstancesListingResult {
  2601     /**
  2602      * The Reserved Instance listing.
  2603      */
  2604     ReservedInstancesListings?: ReservedInstancesListingList;
  2605   }
  2606   export interface CancelSpotFleetRequestsError {
  2607     /**
  2608      * The error code.
  2609      */
  2610     Code: CancelBatchErrorCode;
  2611     /**
  2612      * The description for the error code.
  2613      */
  2614     Message: String;
  2615   }
  2616   export interface CancelSpotFleetRequestsErrorItem {
  2617     /**
  2618      * The ID of the Spot fleet request.
  2619      */
  2620     SpotFleetRequestId: String;
  2621     /**
  2622      * The error.
  2623      */
  2624     Error: CancelSpotFleetRequestsError;
  2625   }
  2626   export type CancelSpotFleetRequestsErrorSet = CancelSpotFleetRequestsErrorItem[];
  2627   export interface CancelSpotFleetRequestsRequest {
  2628     /**
  2629      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2630      */
  2631     DryRun?: Boolean;
  2632     /**
  2633      * The IDs of the Spot fleet requests.
  2634      */
  2635     SpotFleetRequestIds: ValueStringList;
  2636     /**
  2637      * Indicates whether to terminate instances for a Spot fleet request if it is canceled successfully.
  2638      */
  2639     TerminateInstances: Boolean;
  2640   }
  2641   export interface CancelSpotFleetRequestsResponse {
  2642     /**
  2643      * Information about the Spot fleet requests that are not successfully canceled.
  2644      */
  2645     UnsuccessfulFleetRequests?: CancelSpotFleetRequestsErrorSet;
  2646     /**
  2647      * Information about the Spot fleet requests that are successfully canceled.
  2648      */
  2649     SuccessfulFleetRequests?: CancelSpotFleetRequestsSuccessSet;
  2650   }
  2651   export interface CancelSpotFleetRequestsSuccessItem {
  2652     /**
  2653      * The ID of the Spot fleet request.
  2654      */
  2655     SpotFleetRequestId: String;
  2656     /**
  2657      * The current state of the Spot fleet request.
  2658      */
  2659     CurrentSpotFleetRequestState: BatchState;
  2660     /**
  2661      * The previous state of the Spot fleet request.
  2662      */
  2663     PreviousSpotFleetRequestState: BatchState;
  2664   }
  2665   export type CancelSpotFleetRequestsSuccessSet = CancelSpotFleetRequestsSuccessItem[];
  2666   export type CancelSpotInstanceRequestState = "active"|"open"|"closed"|"cancelled"|"completed"|string;
  2667   export interface CancelSpotInstanceRequestsRequest {
  2668     /**
  2669      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2670      */
  2671     DryRun?: Boolean;
  2672     /**
  2673      * One or more Spot instance request IDs.
  2674      */
  2675     SpotInstanceRequestIds: SpotInstanceRequestIdList;
  2676   }
  2677   export interface CancelSpotInstanceRequestsResult {
  2678     /**
  2679      * One or more Spot instance requests.
  2680      */
  2681     CancelledSpotInstanceRequests?: CancelledSpotInstanceRequestList;
  2682   }
  2683   export interface CancelledSpotInstanceRequest {
  2684     /**
  2685      * The ID of the Spot instance request.
  2686      */
  2687     SpotInstanceRequestId?: String;
  2688     /**
  2689      * The state of the Spot instance request.
  2690      */
  2691     State?: CancelSpotInstanceRequestState;
  2692   }
  2693   export type CancelledSpotInstanceRequestList = CancelledSpotInstanceRequest[];
  2694   export interface ClassicLinkDnsSupport {
  2695     /**
  2696      * The ID of the VPC.
  2697      */
  2698     VpcId?: String;
  2699     /**
  2700      * Indicates whether ClassicLink DNS support is enabled for the VPC.
  2701      */
  2702     ClassicLinkDnsSupported?: Boolean;
  2703   }
  2704   export type ClassicLinkDnsSupportList = ClassicLinkDnsSupport[];
  2705   export interface ClassicLinkInstance {
  2706     /**
  2707      * The ID of the instance.
  2708      */
  2709     InstanceId?: String;
  2710     /**
  2711      * The ID of the VPC.
  2712      */
  2713     VpcId?: String;
  2714     /**
  2715      * A list of security groups.
  2716      */
  2717     Groups?: GroupIdentifierList;
  2718     /**
  2719      * Any tags assigned to the instance.
  2720      */
  2721     Tags?: TagList;
  2722   }
  2723   export type ClassicLinkInstanceList = ClassicLinkInstance[];
  2724   export interface ClientData {
  2725     /**
  2726      * The time that the disk upload starts.
  2727      */
  2728     UploadStart?: DateTime;
  2729     /**
  2730      * The time that the disk upload ends.
  2731      */
  2732     UploadEnd?: DateTime;
  2733     /**
  2734      * The size of the uploaded disk image, in GiB.
  2735      */
  2736     UploadSize?: Double;
  2737     /**
  2738      * A user-defined comment about the disk upload.
  2739      */
  2740     Comment?: String;
  2741   }
  2742   export interface ConfirmProductInstanceRequest {
  2743     /**
  2744      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2745      */
  2746     DryRun?: Boolean;
  2747     /**
  2748      * The product code. This must be a product code that you own.
  2749      */
  2750     ProductCode: String;
  2751     /**
  2752      * The ID of the instance.
  2753      */
  2754     InstanceId: String;
  2755   }
  2756   export interface ConfirmProductInstanceResult {
  2757     /**
  2758      * The AWS account ID of the instance owner. This is only present if the product code is attached to the instance.
  2759      */
  2760     OwnerId?: String;
  2761     /**
  2762      * The return value of the request. Returns true if the specified product code is owned by the requester and associated with the specified instance.
  2763      */
  2764     Return?: Boolean;
  2765   }
  2766   export type ContainerFormat = "ova"|string;
  2767   export type ConversionIdStringList = String[];
  2768   export interface ConversionTask {
  2769     /**
  2770      * The ID of the conversion task.
  2771      */
  2772     ConversionTaskId: String;
  2773     /**
  2774      * The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.
  2775      */
  2776     ExpirationTime?: String;
  2777     /**
  2778      * If the task is for importing an instance, this contains information about the import instance task.
  2779      */
  2780     ImportInstance?: ImportInstanceTaskDetails;
  2781     /**
  2782      * If the task is for importing a volume, this contains information about the import volume task.
  2783      */
  2784     ImportVolume?: ImportVolumeTaskDetails;
  2785     /**
  2786      * The state of the conversion task.
  2787      */
  2788     State: ConversionTaskState;
  2789     /**
  2790      * The status message related to the conversion task.
  2791      */
  2792     StatusMessage?: String;
  2793     /**
  2794      * Any tags assigned to the task.
  2795      */
  2796     Tags?: TagList;
  2797   }
  2798   export type ConversionTaskState = "active"|"cancelling"|"cancelled"|"completed"|string;
  2799   export interface CopyImageRequest {
  2800     /**
  2801      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2802      */
  2803     DryRun?: Boolean;
  2804     /**
  2805      * The name of the region that contains the AMI to copy.
  2806      */
  2807     SourceRegion: String;
  2808     /**
  2809      * The ID of the AMI to copy.
  2810      */
  2811     SourceImageId: String;
  2812     /**
  2813      * The name of the new AMI in the destination region.
  2814      */
  2815     Name: String;
  2816     /**
  2817      * A description for the new AMI in the destination region.
  2818      */
  2819     Description?: String;
  2820     /**
  2821      * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.
  2822      */
  2823     ClientToken?: String;
  2824     /**
  2825      * Specifies whether the destination snapshots of the copied image should be encrypted. The default CMK for EBS is used unless a non-default AWS Key Management Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.
  2826      */
  2827     Encrypted?: Boolean;
  2828     /**
  2829      * The full ARN of the AWS Key Management Service (AWS KMS) CMK to use when encrypting the snapshots of an image during a copy operation. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. The specified CMK must exist in the region that the snapshot is being copied to. If a KmsKeyId is specified, the Encrypted flag must also be set.
  2830      */
  2831     KmsKeyId?: String;
  2832   }
  2833   export interface CopyImageResult {
  2834     /**
  2835      * The ID of the new AMI.
  2836      */
  2837     ImageId?: String;
  2838   }
  2839   export interface CopySnapshotRequest {
  2840     /**
  2841      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2842      */
  2843     DryRun?: Boolean;
  2844     /**
  2845      * The ID of the region that contains the snapshot to be copied.
  2846      */
  2847     SourceRegion: String;
  2848     /**
  2849      * The ID of the EBS snapshot to copy.
  2850      */
  2851     SourceSnapshotId: String;
  2852     /**
  2853      * A description for the EBS snapshot.
  2854      */
  2855     Description?: String;
  2856     /**
  2857      * The destination region to use in the PresignedUrl parameter of a snapshot copy operation. This parameter is only valid for specifying the destination region in a PresignedUrl parameter, where it is required.   CopySnapshot sends the snapshot copy to the regional endpoint that you send the HTTP request to, such as ec2.us-east-1.amazonaws.com (in the AWS CLI, this is specified with the --region parameter or the default region in your AWS configuration file). 
  2858      */
  2859     DestinationRegion?: String;
  2860     /**
  2861      * The pre-signed URL that facilitates copying an encrypted snapshot. This parameter is only required when copying an encrypted snapshot with the Amazon EC2 Query API; it is available as an optional parameter in all other cases. The PresignedUrl should use the snapshot source endpoint, the CopySnapshot action, and include the SourceRegion, SourceSnapshotId, and DestinationRegion parameters. The PresignedUrl must be signed using AWS Signature Version 4. Because EBS snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic that is described in Authenticating Requests by Using Query Parameters (AWS Signature Version 4) in the Amazon Simple Storage Service API Reference. An invalid or improperly signed PresignedUrl will cause the copy operation to fail asynchronously, and the snapshot will move to an error state.
  2862      */
  2863     PresignedUrl?: String;
  2864     /**
  2865      * Specifies whether the destination snapshot should be encrypted. You can encrypt a copy of an unencrypted snapshot using this flag, but you cannot use it to create an unencrypted copy from an encrypted snapshot. Your default CMK for EBS is used unless a non-default AWS Key Management Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.
  2866      */
  2867     Encrypted?: Boolean;
  2868     /**
  2869      * The full ARN of the AWS Key Management Service (AWS KMS) CMK to use when creating the snapshot copy. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. The specified CMK must exist in the region that the snapshot is being copied to. If a KmsKeyId is specified, the Encrypted flag must also be set.
  2870      */
  2871     KmsKeyId?: String;
  2872   }
  2873   export interface CopySnapshotResult {
  2874     /**
  2875      * The ID of the new snapshot.
  2876      */
  2877     SnapshotId?: String;
  2878   }
  2879   export interface CreateCustomerGatewayRequest {
  2880     /**
  2881      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2882      */
  2883     DryRun?: Boolean;
  2884     /**
  2885      * The type of VPN connection that this customer gateway supports (ipsec.1).
  2886      */
  2887     Type: GatewayType;
  2888     /**
  2889      * The Internet-routable IP address for the customer gateway's outside interface. The address must be static.
  2890      */
  2891     PublicIp: String;
  2892     /**
  2893      * For devices that support BGP, the customer gateway's BGP ASN. Default: 65000
  2894      */
  2895     BgpAsn: Integer;
  2896   }
  2897   export interface CreateCustomerGatewayResult {
  2898     /**
  2899      * Information about the customer gateway.
  2900      */
  2901     CustomerGateway?: CustomerGateway;
  2902   }
  2903   export interface CreateDhcpOptionsRequest {
  2904     /**
  2905      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2906      */
  2907     DryRun?: Boolean;
  2908     /**
  2909      * A DHCP configuration option.
  2910      */
  2911     DhcpConfigurations: NewDhcpConfigurationList;
  2912   }
  2913   export interface CreateDhcpOptionsResult {
  2914     /**
  2915      * A set of DHCP options.
  2916      */
  2917     DhcpOptions?: DhcpOptions;
  2918   }
  2919   export interface CreateFlowLogsRequest {
  2920     /**
  2921      * One or more subnet, network interface, or VPC IDs. Constraints: Maximum of 1000 resources
  2922      */
  2923     ResourceIds: ValueStringList;
  2924     /**
  2925      * The type of resource on which to create the flow log.
  2926      */
  2927     ResourceType: FlowLogsResourceType;
  2928     /**
  2929      * The type of traffic to log.
  2930      */
  2931     TrafficType: TrafficType;
  2932     /**
  2933      * The name of the CloudWatch log group.
  2934      */
  2935     LogGroupName: String;
  2936     /**
  2937      * The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group.
  2938      */
  2939     DeliverLogsPermissionArn: String;
  2940     /**
  2941      * Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.
  2942      */
  2943     ClientToken?: String;
  2944   }
  2945   export interface CreateFlowLogsResult {
  2946     /**
  2947      * The IDs of the flow logs.
  2948      */
  2949     FlowLogIds?: ValueStringList;
  2950     /**
  2951      * Unique, case-sensitive identifier you provide to ensure the idempotency of the request.
  2952      */
  2953     ClientToken?: String;
  2954     /**
  2955      * Information about the flow logs that could not be created successfully.
  2956      */
  2957     Unsuccessful?: UnsuccessfulItemSet;
  2958   }
  2959   export interface CreateImageRequest {
  2960     /**
  2961      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  2962      */
  2963     DryRun?: Boolean;
  2964     /**
  2965      * The ID of the instance.
  2966      */
  2967     InstanceId: String;
  2968     /**
  2969      * A name for the new image. Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)
  2970      */
  2971     Name: String;
  2972     /**
  2973      * A description for the new image.
  2974      */
  2975     Description?: String;
  2976     /**
  2977      * By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the 'No Reboot' option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.
  2978      */
  2979     NoReboot?: Boolean;
  2980     /**
  2981      * Information about one or more block device mappings.
  2982      */
  2983     BlockDeviceMappings?: BlockDeviceMappingRequestList;
  2984   }
  2985   export interface CreateImageResult {
  2986     /**
  2987      * The ID of the new AMI.
  2988      */
  2989     ImageId?: String;
  2990   }
  2991   export interface CreateInstanceExportTaskRequest {
  2992     /**
  2993      * A description for the conversion task or the resource being exported. The maximum length is 255 bytes.
  2994      */
  2995     Description?: String;
  2996     /**
  2997      * The ID of the instance.
  2998      */
  2999     InstanceId: String;
  3000     /**
  3001      * The target virtualization environment.
  3002      */
  3003     TargetEnvironment?: ExportEnvironment;
  3004     /**
  3005      * The format and location for an instance export task.
  3006      */
  3007     ExportToS3Task?: ExportToS3TaskSpecification;
  3008   }
  3009   export interface CreateInstanceExportTaskResult {
  3010     /**
  3011      * Information about the instance export task.
  3012      */
  3013     ExportTask?: ExportTask;
  3014   }
  3015   export interface CreateInternetGatewayRequest {
  3016     /**
  3017      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3018      */
  3019     DryRun?: Boolean;
  3020   }
  3021   export interface CreateInternetGatewayResult {
  3022     /**
  3023      * Information about the Internet gateway.
  3024      */
  3025     InternetGateway?: InternetGateway;
  3026   }
  3027   export interface CreateKeyPairRequest {
  3028     /**
  3029      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3030      */
  3031     DryRun?: Boolean;
  3032     /**
  3033      * A unique name for the key pair. Constraints: Up to 255 ASCII characters
  3034      */
  3035     KeyName: String;
  3036   }
  3037   export interface CreateNatGatewayRequest {
  3038     /**
  3039      * The subnet in which to create the NAT gateway.
  3040      */
  3041     SubnetId: String;
  3042     /**
  3043      * The allocation ID of an Elastic IP address to associate with the NAT gateway. If the Elastic IP address is associated with another resource, you must first disassociate it.
  3044      */
  3045     AllocationId: String;
  3046     /**
  3047      * Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency. Constraint: Maximum 64 ASCII characters.
  3048      */
  3049     ClientToken?: String;
  3050   }
  3051   export interface CreateNatGatewayResult {
  3052     /**
  3053      * Information about the NAT gateway.
  3054      */
  3055     NatGateway?: NatGateway;
  3056     /**
  3057      * Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.
  3058      */
  3059     ClientToken?: String;
  3060   }
  3061   export interface CreateNetworkAclEntryRequest {
  3062     /**
  3063      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3064      */
  3065     DryRun?: Boolean;
  3066     /**
  3067      * The ID of the network ACL.
  3068      */
  3069     NetworkAclId: String;
  3070     /**
  3071      * The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number. Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.
  3072      */
  3073     RuleNumber: Integer;
  3074     /**
  3075      * The protocol. A value of -1 means all protocols.
  3076      */
  3077     Protocol: String;
  3078     /**
  3079      * Indicates whether to allow or deny the traffic that matches the rule.
  3080      */
  3081     RuleAction: RuleAction;
  3082     /**
  3083      * Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).
  3084      */
  3085     Egress: Boolean;
  3086     /**
  3087      * The network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).
  3088      */
  3089     CidrBlock: String;
  3090     /**
  3091      * ICMP protocol: The ICMP type and code. Required if specifying ICMP for the protocol.
  3092      */
  3093     IcmpTypeCode?: IcmpTypeCode;
  3094     /**
  3095      * TCP or UDP protocols: The range of ports the rule applies to.
  3096      */
  3097     PortRange?: PortRange;
  3098   }
  3099   export interface CreateNetworkAclRequest {
  3100     /**
  3101      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3102      */
  3103     DryRun?: Boolean;
  3104     /**
  3105      * The ID of the VPC.
  3106      */
  3107     VpcId: String;
  3108   }
  3109   export interface CreateNetworkAclResult {
  3110     /**
  3111      * Information about the network ACL.
  3112      */
  3113     NetworkAcl?: NetworkAcl;
  3114   }
  3115   export interface CreateNetworkInterfaceRequest {
  3116     /**
  3117      * The ID of the subnet to associate with the network interface.
  3118      */
  3119     SubnetId: String;
  3120     /**
  3121      * A description for the network interface.
  3122      */
  3123     Description?: String;
  3124     /**
  3125      * The primary private IP address of the network interface. If you don't specify an IP address, Amazon EC2 selects one for you from the subnet range. If you specify an IP address, you cannot indicate any IP addresses specified in privateIpAddresses as primary (only one IP address can be designated as primary).
  3126      */
  3127     PrivateIpAddress?: String;
  3128     /**
  3129      * The IDs of one or more security groups.
  3130      */
  3131     Groups?: SecurityGroupIdStringList;
  3132     /**
  3133      * One or more private IP addresses.
  3134      */
  3135     PrivateIpAddresses?: PrivateIpAddressSpecificationList;
  3136     /**
  3137      * The number of secondary private IP addresses to assign to a network interface. When you specify a number of secondary IP addresses, Amazon EC2 selects these IP addresses within the subnet range. You can't specify this option and specify more than one private IP address using privateIpAddresses. The number of IP addresses you can assign to a network interface varies by instance type. For more information, see Private IP Addresses Per ENI Per Instance Type in the Amazon Elastic Compute Cloud User Guide.
  3138      */
  3139     SecondaryPrivateIpAddressCount?: Integer;
  3140     /**
  3141      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3142      */
  3143     DryRun?: Boolean;
  3144   }
  3145   export interface CreateNetworkInterfaceResult {
  3146     /**
  3147      * Information about the network interface.
  3148      */
  3149     NetworkInterface?: NetworkInterface;
  3150   }
  3151   export interface CreatePlacementGroupRequest {
  3152     /**
  3153      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3154      */
  3155     DryRun?: Boolean;
  3156     /**
  3157      * A name for the placement group. Constraints: Up to 255 ASCII characters
  3158      */
  3159     GroupName: String;
  3160     /**
  3161      * The placement strategy.
  3162      */
  3163     Strategy: PlacementStrategy;
  3164   }
  3165   export interface CreateReservedInstancesListingRequest {
  3166     /**
  3167      * The ID of the active Standard Reserved Instance.
  3168      */
  3169     ReservedInstancesId: String;
  3170     /**
  3171      * The number of instances that are a part of a Reserved Instance account to be listed in the Reserved Instance Marketplace. This number should be less than or equal to the instance count associated with the Reserved Instance ID specified in this call.
  3172      */
  3173     InstanceCount: Integer;
  3174     /**
  3175      * A list specifying the price of the Standard Reserved Instance for each month remaining in the Reserved Instance term.
  3176      */
  3177     PriceSchedules: PriceScheduleSpecificationList;
  3178     /**
  3179      * Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.
  3180      */
  3181     ClientToken: String;
  3182   }
  3183   export interface CreateReservedInstancesListingResult {
  3184     /**
  3185      * Information about the Standard Reserved Instance listing.
  3186      */
  3187     ReservedInstancesListings?: ReservedInstancesListingList;
  3188   }
  3189   export interface CreateRouteRequest {
  3190     /**
  3191      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3192      */
  3193     DryRun?: Boolean;
  3194     /**
  3195      * The ID of the route table for the route.
  3196      */
  3197     RouteTableId: String;
  3198     /**
  3199      * The CIDR address block used for the destination match. Routing decisions are based on the most specific match.
  3200      */
  3201     DestinationCidrBlock: String;
  3202     /**
  3203      * The ID of an Internet gateway or virtual private gateway attached to your VPC.
  3204      */
  3205     GatewayId?: String;
  3206     /**
  3207      * The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.
  3208      */
  3209     InstanceId?: String;
  3210     /**
  3211      * The ID of a network interface.
  3212      */
  3213     NetworkInterfaceId?: String;
  3214     /**
  3215      * The ID of a VPC peering connection.
  3216      */
  3217     VpcPeeringConnectionId?: String;
  3218     /**
  3219      * The ID of a NAT gateway.
  3220      */
  3221     NatGatewayId?: String;
  3222   }
  3223   export interface CreateRouteResult {
  3224     /**
  3225      * Returns true if the request succeeds; otherwise, it returns an error.
  3226      */
  3227     Return?: Boolean;
  3228   }
  3229   export interface CreateRouteTableRequest {
  3230     /**
  3231      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3232      */
  3233     DryRun?: Boolean;
  3234     /**
  3235      * The ID of the VPC.
  3236      */
  3237     VpcId: String;
  3238   }
  3239   export interface CreateRouteTableResult {
  3240     /**
  3241      * Information about the route table.
  3242      */
  3243     RouteTable?: RouteTable;
  3244   }
  3245   export interface CreateSecurityGroupRequest {
  3246     /**
  3247      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3248      */
  3249     DryRun?: Boolean;
  3250     /**
  3251      * The name of the security group. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*
  3252      */
  3253     GroupName: String;
  3254     /**
  3255      * A description for the security group. This is informational only. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*
  3256      */
  3257     Description: String;
  3258     /**
  3259      * [EC2-VPC] The ID of the VPC. Required for EC2-VPC.
  3260      */
  3261     VpcId?: String;
  3262   }
  3263   export interface CreateSecurityGroupResult {
  3264     /**
  3265      * The ID of the security group.
  3266      */
  3267     GroupId?: String;
  3268   }
  3269   export interface CreateSnapshotRequest {
  3270     /**
  3271      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3272      */
  3273     DryRun?: Boolean;
  3274     /**
  3275      * The ID of the EBS volume.
  3276      */
  3277     VolumeId: String;
  3278     /**
  3279      * A description for the snapshot.
  3280      */
  3281     Description?: String;
  3282   }
  3283   export interface CreateSpotDatafeedSubscriptionRequest {
  3284     /**
  3285      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3286      */
  3287     DryRun?: Boolean;
  3288     /**
  3289      * The Amazon S3 bucket in which to store the Spot instance data feed.
  3290      */
  3291     Bucket: String;
  3292     /**
  3293      * A prefix for the data feed file names.
  3294      */
  3295     Prefix?: String;
  3296   }
  3297   export interface CreateSpotDatafeedSubscriptionResult {
  3298     /**
  3299      * The Spot instance data feed subscription.
  3300      */
  3301     SpotDatafeedSubscription?: SpotDatafeedSubscription;
  3302   }
  3303   export interface CreateSubnetRequest {
  3304     /**
  3305      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3306      */
  3307     DryRun?: Boolean;
  3308     /**
  3309      * The ID of the VPC.
  3310      */
  3311     VpcId: String;
  3312     /**
  3313      * The network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.
  3314      */
  3315     CidrBlock: String;
  3316     /**
  3317      * The Availability Zone for the subnet. Default: AWS selects one for you. If you create more than one subnet in your VPC, we may not necessarily select a different zone for each subnet.
  3318      */
  3319     AvailabilityZone?: String;
  3320   }
  3321   export interface CreateSubnetResult {
  3322     /**
  3323      * Information about the subnet.
  3324      */
  3325     Subnet?: Subnet;
  3326   }
  3327   export interface CreateTagsRequest {
  3328     /**
  3329      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3330      */
  3331     DryRun?: Boolean;
  3332     /**
  3333      * The IDs of one or more resources to tag. For example, ami-1a2b3c4d.
  3334      */
  3335     Resources: ResourceIdList;
  3336     /**
  3337      * One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string. 
  3338      */
  3339     Tags: TagList;
  3340   }
  3341   export interface CreateVolumePermission {
  3342     /**
  3343      * The specific AWS account ID that is to be added or removed from a volume's list of create volume permissions.
  3344      */
  3345     UserId?: String;
  3346     /**
  3347      * The specific group that is to be added or removed from a volume's list of create volume permissions.
  3348      */
  3349     Group?: PermissionGroup;
  3350   }
  3351   export type CreateVolumePermissionList = CreateVolumePermission[];
  3352   export interface CreateVolumePermissionModifications {
  3353     /**
  3354      * Adds a specific AWS account ID or group to a volume's list of create volume permissions.
  3355      */
  3356     Add?: CreateVolumePermissionList;
  3357     /**
  3358      * Removes a specific AWS account ID or group from a volume's list of create volume permissions.
  3359      */
  3360     Remove?: CreateVolumePermissionList;
  3361   }
  3362   export interface CreateVolumeRequest {
  3363     /**
  3364      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3365      */
  3366     DryRun?: Boolean;
  3367     /**
  3368      * The size of the volume, in GiBs. Constraints: 1-16384 for gp2, 4-16384 for io1, 500-16384 for st1, 500-16384 for sc1, and 1-1024 for standard. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
  3369      */
  3370     Size?: Integer;
  3371     /**
  3372      * The snapshot from which to create the volume.
  3373      */
  3374     SnapshotId?: String;
  3375     /**
  3376      * The Availability Zone in which to create the volume. Use DescribeAvailabilityZones to list the Availability Zones that are currently available to you.
  3377      */
  3378     AvailabilityZone: String;
  3379     /**
  3380      * The volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes. Default: standard 
  3381      */
  3382     VolumeType?: VolumeType;
  3383     /**
  3384      * Only valid for Provisioned IOPS SSD volumes. The number of I/O operations per second (IOPS) to provision for the volume, with a maximum ratio of 30 IOPS/GiB. Constraint: Range is 100 to 20000 for Provisioned IOPS SSD volumes 
  3385      */
  3386     Iops?: Integer;
  3387     /**
  3388      * Specifies whether the volume should be encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are automatically encrypted. There is no way to create an encrypted volume from an unencrypted snapshot or vice versa. If your AMI uses encrypted volumes, you can only launch it on supported instance types. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.
  3389      */
  3390     Encrypted?: Boolean;
  3391     /**
  3392      * The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If a KmsKeyId is specified, the Encrypted flag must also be set.
  3393      */
  3394     KmsKeyId?: String;
  3395   }
  3396   export interface CreateVpcEndpointRequest {
  3397     /**
  3398      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3399      */
  3400     DryRun?: Boolean;
  3401     /**
  3402      * The ID of the VPC in which the endpoint will be used.
  3403      */
  3404     VpcId: String;
  3405     /**
  3406      * The AWS service name, in the form com.amazonaws.region.service . To get a list of available services, use the DescribeVpcEndpointServices request.
  3407      */
  3408     ServiceName: String;
  3409     /**
  3410      * A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.
  3411      */
  3412     PolicyDocument?: String;
  3413     /**
  3414      * One or more route table IDs.
  3415      */
  3416     RouteTableIds?: ValueStringList;
  3417     /**
  3418      * Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.
  3419      */
  3420     ClientToken?: String;
  3421   }
  3422   export interface CreateVpcEndpointResult {
  3423     /**
  3424      * Information about the endpoint.
  3425      */
  3426     VpcEndpoint?: VpcEndpoint;
  3427     /**
  3428      * Unique, case-sensitive identifier you provide to ensure the idempotency of the request.
  3429      */
  3430     ClientToken?: String;
  3431   }
  3432   export interface CreateVpcPeeringConnectionRequest {
  3433     /**
  3434      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3435      */
  3436     DryRun?: Boolean;
  3437     /**
  3438      * The ID of the requester VPC.
  3439      */
  3440     VpcId?: String;
  3441     /**
  3442      * The ID of the VPC with which you are creating the VPC peering connection.
  3443      */
  3444     PeerVpcId?: String;
  3445     /**
  3446      * The AWS account ID of the owner of the peer VPC. Default: Your AWS account ID
  3447      */
  3448     PeerOwnerId?: String;
  3449   }
  3450   export interface CreateVpcPeeringConnectionResult {
  3451     /**
  3452      * Information about the VPC peering connection.
  3453      */
  3454     VpcPeeringConnection?: VpcPeeringConnection;
  3455   }
  3456   export interface CreateVpcRequest {
  3457     /**
  3458      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3459      */
  3460     DryRun?: Boolean;
  3461     /**
  3462      * The network range for the VPC, in CIDR notation. For example, 10.0.0.0/16.
  3463      */
  3464     CidrBlock: String;
  3465     /**
  3466      * The tenancy options for instances launched into the VPC. For default, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For dedicated, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of dedicated or host into a dedicated tenancy VPC.   Important: The host value cannot be used with this parameter. Use the default or dedicated values only. Default: default 
  3467      */
  3468     InstanceTenancy?: Tenancy;
  3469   }
  3470   export interface CreateVpcResult {
  3471     /**
  3472      * Information about the VPC.
  3473      */
  3474     Vpc?: Vpc;
  3475   }
  3476   export interface CreateVpnConnectionRequest {
  3477     /**
  3478      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3479      */
  3480     DryRun?: Boolean;
  3481     /**
  3482      * The type of VPN connection (ipsec.1).
  3483      */
  3484     Type: String;
  3485     /**
  3486      * The ID of the customer gateway.
  3487      */
  3488     CustomerGatewayId: String;
  3489     /**
  3490      * The ID of the virtual private gateway.
  3491      */
  3492     VpnGatewayId: String;
  3493     /**
  3494      * Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify true. Default: false 
  3495      */
  3496     Options?: VpnConnectionOptionsSpecification;
  3497   }
  3498   export interface CreateVpnConnectionResult {
  3499     /**
  3500      * Information about the VPN connection.
  3501      */
  3502     VpnConnection?: VpnConnection;
  3503   }
  3504   export interface CreateVpnConnectionRouteRequest {
  3505     /**
  3506      * The ID of the VPN connection.
  3507      */
  3508     VpnConnectionId: String;
  3509     /**
  3510      * The CIDR block associated with the local subnet of the customer network.
  3511      */
  3512     DestinationCidrBlock: String;
  3513   }
  3514   export interface CreateVpnGatewayRequest {
  3515     /**
  3516      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3517      */
  3518     DryRun?: Boolean;
  3519     /**
  3520      * The type of VPN connection this virtual private gateway supports.
  3521      */
  3522     Type: GatewayType;
  3523     /**
  3524      * The Availability Zone for the virtual private gateway.
  3525      */
  3526     AvailabilityZone?: String;
  3527   }
  3528   export interface CreateVpnGatewayResult {
  3529     /**
  3530      * Information about the virtual private gateway.
  3531      */
  3532     VpnGateway?: VpnGateway;
  3533   }
  3534   export type CurrencyCodeValues = "USD"|string;
  3535   export interface CustomerGateway {
  3536     /**
  3537      * The ID of the customer gateway.
  3538      */
  3539     CustomerGatewayId?: String;
  3540     /**
  3541      * The current state of the customer gateway (pending | available | deleting | deleted).
  3542      */
  3543     State?: String;
  3544     /**
  3545      * The type of VPN connection the customer gateway supports (ipsec.1).
  3546      */
  3547     Type?: String;
  3548     /**
  3549      * The Internet-routable IP address of the customer gateway's outside interface.
  3550      */
  3551     IpAddress?: String;
  3552     /**
  3553      * The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).
  3554      */
  3555     BgpAsn?: String;
  3556     /**
  3557      * Any tags assigned to the customer gateway.
  3558      */
  3559     Tags?: TagList;
  3560   }
  3561   export type CustomerGatewayIdStringList = String[];
  3562   export type CustomerGatewayList = CustomerGateway[];
  3563   export type DatafeedSubscriptionState = "Active"|"Inactive"|string;
  3564   export type DateTime = Date;
  3565   export interface DeleteCustomerGatewayRequest {
  3566     /**
  3567      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3568      */
  3569     DryRun?: Boolean;
  3570     /**
  3571      * The ID of the customer gateway.
  3572      */
  3573     CustomerGatewayId: String;
  3574   }
  3575   export interface DeleteDhcpOptionsRequest {
  3576     /**
  3577      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3578      */
  3579     DryRun?: Boolean;
  3580     /**
  3581      * The ID of the DHCP options set.
  3582      */
  3583     DhcpOptionsId: String;
  3584   }
  3585   export interface DeleteFlowLogsRequest {
  3586     /**
  3587      * One or more flow log IDs.
  3588      */
  3589     FlowLogIds: ValueStringList;
  3590   }
  3591   export interface DeleteFlowLogsResult {
  3592     /**
  3593      * Information about the flow logs that could not be deleted successfully.
  3594      */
  3595     Unsuccessful?: UnsuccessfulItemSet;
  3596   }
  3597   export interface DeleteInternetGatewayRequest {
  3598     /**
  3599      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3600      */
  3601     DryRun?: Boolean;
  3602     /**
  3603      * The ID of the Internet gateway.
  3604      */
  3605     InternetGatewayId: String;
  3606   }
  3607   export interface DeleteKeyPairRequest {
  3608     /**
  3609      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3610      */
  3611     DryRun?: Boolean;
  3612     /**
  3613      * The name of the key pair.
  3614      */
  3615     KeyName: String;
  3616   }
  3617   export interface DeleteNatGatewayRequest {
  3618     /**
  3619      * The ID of the NAT gateway.
  3620      */
  3621     NatGatewayId: String;
  3622   }
  3623   export interface DeleteNatGatewayResult {
  3624     /**
  3625      * The ID of the NAT gateway.
  3626      */
  3627     NatGatewayId?: String;
  3628   }
  3629   export interface DeleteNetworkAclEntryRequest {
  3630     /**
  3631      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3632      */
  3633     DryRun?: Boolean;
  3634     /**
  3635      * The ID of the network ACL.
  3636      */
  3637     NetworkAclId: String;
  3638     /**
  3639      * The rule number of the entry to delete.
  3640      */
  3641     RuleNumber: Integer;
  3642     /**
  3643      * Indicates whether the rule is an egress rule.
  3644      */
  3645     Egress: Boolean;
  3646   }
  3647   export interface DeleteNetworkAclRequest {
  3648     /**
  3649      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3650      */
  3651     DryRun?: Boolean;
  3652     /**
  3653      * The ID of the network ACL.
  3654      */
  3655     NetworkAclId: String;
  3656   }
  3657   export interface DeleteNetworkInterfaceRequest {
  3658     /**
  3659      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3660      */
  3661     DryRun?: Boolean;
  3662     /**
  3663      * The ID of the network interface.
  3664      */
  3665     NetworkInterfaceId: String;
  3666   }
  3667   export interface DeletePlacementGroupRequest {
  3668     /**
  3669      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3670      */
  3671     DryRun?: Boolean;
  3672     /**
  3673      * The name of the placement group.
  3674      */
  3675     GroupName: String;
  3676   }
  3677   export interface DeleteRouteRequest {
  3678     /**
  3679      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3680      */
  3681     DryRun?: Boolean;
  3682     /**
  3683      * The ID of the route table.
  3684      */
  3685     RouteTableId: String;
  3686     /**
  3687      * The CIDR range for the route. The value you specify must match the CIDR for the route exactly.
  3688      */
  3689     DestinationCidrBlock: String;
  3690   }
  3691   export interface DeleteRouteTableRequest {
  3692     /**
  3693      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3694      */
  3695     DryRun?: Boolean;
  3696     /**
  3697      * The ID of the route table.
  3698      */
  3699     RouteTableId: String;
  3700   }
  3701   export interface DeleteSecurityGroupRequest {
  3702     /**
  3703      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3704      */
  3705     DryRun?: Boolean;
  3706     /**
  3707      * [EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.
  3708      */
  3709     GroupName?: String;
  3710     /**
  3711      * The ID of the security group. Required for a nondefault VPC.
  3712      */
  3713     GroupId?: String;
  3714   }
  3715   export interface DeleteSnapshotRequest {
  3716     /**
  3717      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3718      */
  3719     DryRun?: Boolean;
  3720     /**
  3721      * The ID of the EBS snapshot.
  3722      */
  3723     SnapshotId: String;
  3724   }
  3725   export interface DeleteSpotDatafeedSubscriptionRequest {
  3726     /**
  3727      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3728      */
  3729     DryRun?: Boolean;
  3730   }
  3731   export interface DeleteSubnetRequest {
  3732     /**
  3733      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3734      */
  3735     DryRun?: Boolean;
  3736     /**
  3737      * The ID of the subnet.
  3738      */
  3739     SubnetId: String;
  3740   }
  3741   export interface DeleteTagsRequest {
  3742     /**
  3743      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3744      */
  3745     DryRun?: Boolean;
  3746     /**
  3747      * The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.
  3748      */
  3749     Resources: ResourceIdList;
  3750     /**
  3751      * One or more tags to delete. If you omit the value parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.
  3752      */
  3753     Tags?: TagList;
  3754   }
  3755   export interface DeleteVolumeRequest {
  3756     /**
  3757      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3758      */
  3759     DryRun?: Boolean;
  3760     /**
  3761      * The ID of the volume.
  3762      */
  3763     VolumeId: String;
  3764   }
  3765   export interface DeleteVpcEndpointsRequest {
  3766     /**
  3767      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3768      */
  3769     DryRun?: Boolean;
  3770     /**
  3771      * One or more endpoint IDs.
  3772      */
  3773     VpcEndpointIds: ValueStringList;
  3774   }
  3775   export interface DeleteVpcEndpointsResult {
  3776     /**
  3777      * Information about the endpoints that were not successfully deleted.
  3778      */
  3779     Unsuccessful?: UnsuccessfulItemSet;
  3780   }
  3781   export interface DeleteVpcPeeringConnectionRequest {
  3782     /**
  3783      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3784      */
  3785     DryRun?: Boolean;
  3786     /**
  3787      * The ID of the VPC peering connection.
  3788      */
  3789     VpcPeeringConnectionId: String;
  3790   }
  3791   export interface DeleteVpcPeeringConnectionResult {
  3792     /**
  3793      * Returns true if the request succeeds; otherwise, it returns an error.
  3794      */
  3795     Return?: Boolean;
  3796   }
  3797   export interface DeleteVpcRequest {
  3798     /**
  3799      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3800      */
  3801     DryRun?: Boolean;
  3802     /**
  3803      * The ID of the VPC.
  3804      */
  3805     VpcId: String;
  3806   }
  3807   export interface DeleteVpnConnectionRequest {
  3808     /**
  3809      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3810      */
  3811     DryRun?: Boolean;
  3812     /**
  3813      * The ID of the VPN connection.
  3814      */
  3815     VpnConnectionId: String;
  3816   }
  3817   export interface DeleteVpnConnectionRouteRequest {
  3818     /**
  3819      * The ID of the VPN connection.
  3820      */
  3821     VpnConnectionId: String;
  3822     /**
  3823      * The CIDR block associated with the local subnet of the customer network.
  3824      */
  3825     DestinationCidrBlock: String;
  3826   }
  3827   export interface DeleteVpnGatewayRequest {
  3828     /**
  3829      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3830      */
  3831     DryRun?: Boolean;
  3832     /**
  3833      * The ID of the virtual private gateway.
  3834      */
  3835     VpnGatewayId: String;
  3836   }
  3837   export interface DeregisterImageRequest {
  3838     /**
  3839      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3840      */
  3841     DryRun?: Boolean;
  3842     /**
  3843      * The ID of the AMI.
  3844      */
  3845     ImageId: String;
  3846   }
  3847   export interface DescribeAccountAttributesRequest {
  3848     /**
  3849      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3850      */
  3851     DryRun?: Boolean;
  3852     /**
  3853      * One or more account attribute names.
  3854      */
  3855     AttributeNames?: AccountAttributeNameStringList;
  3856   }
  3857   export interface DescribeAccountAttributesResult {
  3858     /**
  3859      * Information about one or more account attributes.
  3860      */
  3861     AccountAttributes?: AccountAttributeList;
  3862   }
  3863   export interface DescribeAddressesRequest {
  3864     /**
  3865      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3866      */
  3867     DryRun?: Boolean;
  3868     /**
  3869      * [EC2-Classic] One or more Elastic IP addresses. Default: Describes all your Elastic IP addresses.
  3870      */
  3871     PublicIps?: PublicIpStringList;
  3872     /**
  3873      * One or more filters. Filter names and values are case-sensitive.    allocation-id - [EC2-VPC] The allocation ID for the address.    association-id - [EC2-VPC] The association ID for the address.    domain - Indicates whether the address is for use in EC2-Classic (standard) or in a VPC (vpc).    instance-id - The ID of the instance the address is associated with, if any.    network-interface-id - [EC2-VPC] The ID of the network interface that the address is associated with, if any.    network-interface-owner-id - The AWS account ID of the owner.    private-ip-address - [EC2-VPC] The private IP address associated with the Elastic IP address.    public-ip - The Elastic IP address.  
  3874      */
  3875     Filters?: FilterList;
  3876     /**
  3877      * [EC2-VPC] One or more allocation IDs. Default: Describes all your Elastic IP addresses.
  3878      */
  3879     AllocationIds?: AllocationIdList;
  3880   }
  3881   export interface DescribeAddressesResult {
  3882     /**
  3883      * Information about one or more Elastic IP addresses.
  3884      */
  3885     Addresses?: AddressList;
  3886   }
  3887   export interface DescribeAvailabilityZonesRequest {
  3888     /**
  3889      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3890      */
  3891     DryRun?: Boolean;
  3892     /**
  3893      * The names of one or more Availability Zones.
  3894      */
  3895     ZoneNames?: ZoneNameStringList;
  3896     /**
  3897      * One or more filters.    message - Information about the Availability Zone.    region-name - The name of the region for the Availability Zone (for example, us-east-1).    state - The state of the Availability Zone (available | information | impaired | unavailable).    zone-name - The name of the Availability Zone (for example, us-east-1a).  
  3898      */
  3899     Filters?: FilterList;
  3900   }
  3901   export interface DescribeAvailabilityZonesResult {
  3902     /**
  3903      * Information about one or more Availability Zones.
  3904      */
  3905     AvailabilityZones?: AvailabilityZoneList;
  3906   }
  3907   export interface DescribeBundleTasksRequest {
  3908     /**
  3909      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3910      */
  3911     DryRun?: Boolean;
  3912     /**
  3913      * One or more bundle task IDs. Default: Describes all your bundle tasks.
  3914      */
  3915     BundleIds?: BundleIdStringList;
  3916     /**
  3917      * One or more filters.    bundle-id - The ID of the bundle task.    error-code - If the task failed, the error code returned.    error-message - If the task failed, the error message returned.    instance-id - The ID of the instance.    progress - The level of task completion, as a percentage (for example, 20%).    s3-bucket - The Amazon S3 bucket to store the AMI.    s3-prefix - The beginning of the AMI name.    start-time - The time the task started (for example, 2013-09-15T17:15:20.000Z).    state - The state of the task (pending | waiting-for-shutdown | bundling | storing | cancelling | complete | failed).    update-time - The time of the most recent update for the task.  
  3918      */
  3919     Filters?: FilterList;
  3920   }
  3921   export interface DescribeBundleTasksResult {
  3922     /**
  3923      * Information about one or more bundle tasks.
  3924      */
  3925     BundleTasks?: BundleTaskList;
  3926   }
  3927   export interface DescribeClassicLinkInstancesRequest {
  3928     /**
  3929      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3930      */
  3931     DryRun?: Boolean;
  3932     /**
  3933      * One or more instance IDs. Must be instances linked to a VPC through ClassicLink.
  3934      */
  3935     InstanceIds?: InstanceIdStringList;
  3936     /**
  3937      * One or more filters.    group-id - The ID of a VPC security group that's associated with the instance.    instance-id - The ID of the instance.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-id - The ID of the VPC that the instance is linked to.  
  3938      */
  3939     Filters?: FilterList;
  3940     /**
  3941      * The token to retrieve the next page of results.
  3942      */
  3943     NextToken?: String;
  3944     /**
  3945      * The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request. Constraint: If the value is greater than 1000, we return only 1000 items.
  3946      */
  3947     MaxResults?: Integer;
  3948   }
  3949   export interface DescribeClassicLinkInstancesResult {
  3950     /**
  3951      * Information about one or more linked EC2-Classic instances.
  3952      */
  3953     Instances?: ClassicLinkInstanceList;
  3954     /**
  3955      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  3956      */
  3957     NextToken?: String;
  3958   }
  3959   export type DescribeConversionTaskList = ConversionTask[];
  3960   export interface DescribeConversionTasksRequest {
  3961     /**
  3962      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3963      */
  3964     DryRun?: Boolean;
  3965     /**
  3966      * One or more conversion task IDs.
  3967      */
  3968     ConversionTaskIds?: ConversionIdStringList;
  3969   }
  3970   export interface DescribeConversionTasksResult {
  3971     /**
  3972      * Information about the conversion tasks.
  3973      */
  3974     ConversionTasks?: DescribeConversionTaskList;
  3975   }
  3976   export interface DescribeCustomerGatewaysRequest {
  3977     /**
  3978      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3979      */
  3980     DryRun?: Boolean;
  3981     /**
  3982      * One or more customer gateway IDs. Default: Describes all your customer gateways.
  3983      */
  3984     CustomerGatewayIds?: CustomerGatewayIdStringList;
  3985     /**
  3986      * One or more filters.    bgp-asn - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).    customer-gateway-id - The ID of the customer gateway.    ip-address - The IP address of the customer gateway's Internet-routable external interface.    state - The state of the customer gateway (pending | available | deleting | deleted).    type - The type of customer gateway. Currently, the only supported type is ipsec.1.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.  
  3987      */
  3988     Filters?: FilterList;
  3989   }
  3990   export interface DescribeCustomerGatewaysResult {
  3991     /**
  3992      * Information about one or more customer gateways.
  3993      */
  3994     CustomerGateways?: CustomerGatewayList;
  3995   }
  3996   export interface DescribeDhcpOptionsRequest {
  3997     /**
  3998      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  3999      */
  4000     DryRun?: Boolean;
  4001     /**
  4002      * The IDs of one or more DHCP options sets. Default: Describes all your DHCP options sets.
  4003      */
  4004     DhcpOptionsIds?: DhcpOptionsIdStringList;
  4005     /**
  4006      * One or more filters.    dhcp-options-id - The ID of a set of DHCP options.    key - The key for one of the options (for example, domain-name).    value - The value for one of the options.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.  
  4007      */
  4008     Filters?: FilterList;
  4009   }
  4010   export interface DescribeDhcpOptionsResult {
  4011     /**
  4012      * Information about one or more DHCP options sets.
  4013      */
  4014     DhcpOptions?: DhcpOptionsList;
  4015   }
  4016   export interface DescribeExportTasksRequest {
  4017     /**
  4018      * One or more export task IDs.
  4019      */
  4020     ExportTaskIds?: ExportTaskIdStringList;
  4021   }
  4022   export interface DescribeExportTasksResult {
  4023     /**
  4024      * Information about the export tasks.
  4025      */
  4026     ExportTasks?: ExportTaskList;
  4027   }
  4028   export interface DescribeFlowLogsRequest {
  4029     /**
  4030      * One or more flow log IDs.
  4031      */
  4032     FlowLogIds?: ValueStringList;
  4033     /**
  4034      * One or more filters.    deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).    flow-log-id - The ID of the flow log.    log-group-name - The name of the log group.    resource-id - The ID of the VPC, subnet, or network interface.    traffic-type - The type of traffic (ACCEPT | REJECT | ALL)  
  4035      */
  4036     Filter?: FilterList;
  4037     /**
  4038      * The token to retrieve the next page of results.
  4039      */
  4040     NextToken?: String;
  4041     /**
  4042      * The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the flow log IDs parameter in the same request.
  4043      */
  4044     MaxResults?: Integer;
  4045   }
  4046   export interface DescribeFlowLogsResult {
  4047     /**
  4048      * Information about the flow logs.
  4049      */
  4050     FlowLogs?: FlowLogSet;
  4051     /**
  4052      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4053      */
  4054     NextToken?: String;
  4055   }
  4056   export interface DescribeHostReservationOfferingsRequest {
  4057     /**
  4058      * The ID of the reservation offering.
  4059      */
  4060     OfferingId?: String;
  4061     /**
  4062      * This is the minimum duration of the reservation you'd like to purchase, specified in seconds. Reservations are available in one-year and three-year terms. The number of seconds specified must be the number of seconds in a year (365x24x60x60) times one of the supported durations (1 or 3). For example, specify 31536000 for one year.
  4063      */
  4064     MinDuration?: Integer;
  4065     /**
  4066      * This is the maximum duration of the reservation you'd like to purchase, specified in seconds. Reservations are available in one-year and three-year terms. The number of seconds specified must be the number of seconds in a year (365x24x60x60) times one of the supported durations (1 or 3). For example, specify 94608000 for three years.
  4067      */
  4068     MaxDuration?: Integer;
  4069     /**
  4070      * One or more filters.    instance-family - The instance family of the offering (e.g., m4).    payment-option - The payment option (No Upfront | Partial Upfront | All Upfront).  
  4071      */
  4072     Filter?: FilterList;
  4073     /**
  4074      * The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500; if maxResults is given a larger value than 500, you will receive an error.
  4075      */
  4076     MaxResults?: Integer;
  4077     /**
  4078      * The token to use to retrieve the next page of results.
  4079      */
  4080     NextToken?: String;
  4081   }
  4082   export interface DescribeHostReservationOfferingsResult {
  4083     /**
  4084      * Information about the offerings.
  4085      */
  4086     OfferingSet?: HostOfferingSet;
  4087     /**
  4088      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4089      */
  4090     NextToken?: String;
  4091   }
  4092   export interface DescribeHostReservationsRequest {
  4093     /**
  4094      * One or more host reservation IDs.
  4095      */
  4096     HostReservationIdSet?: HostReservationIdSet;
  4097     /**
  4098      * One or more filters.    instance-family - The instance family (e.g., m4).    payment-option - The payment option (No Upfront | Partial Upfront | All Upfront).    state - The state of the reservation (payment-pending | payment-failed | active | retired).  
  4099      */
  4100     Filter?: FilterList;
  4101     /**
  4102      * The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500; if maxResults is given a larger value than 500, you will receive an error.
  4103      */
  4104     MaxResults?: Integer;
  4105     /**
  4106      * The token to use to retrieve the next page of results.
  4107      */
  4108     NextToken?: String;
  4109   }
  4110   export interface DescribeHostReservationsResult {
  4111     /**
  4112      * Details about the reservation's configuration.
  4113      */
  4114     HostReservationSet?: HostReservationSet;
  4115     /**
  4116      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4117      */
  4118     NextToken?: String;
  4119   }
  4120   export interface DescribeHostsRequest {
  4121     /**
  4122      * The IDs of the Dedicated Hosts. The IDs are used for targeted instance launches.
  4123      */
  4124     HostIds?: RequestHostIdList;
  4125     /**
  4126      * The token to retrieve the next page of results.
  4127      */
  4128     NextToken?: String;
  4129     /**
  4130      * The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500; if maxResults is given a larger value than 500, you will receive an error. You cannot specify this parameter and the host IDs parameter in the same request.
  4131      */
  4132     MaxResults?: Integer;
  4133     /**
  4134      * One or more filters.    instance-type - The instance type size that the Dedicated Host is configured to support.    auto-placement - Whether auto-placement is enabled or disabled (on | off).    host-reservation-id - The ID of the reservation assigned to this host.    client-token - The idempotency token you provided when you launched the instance    state- The allocation state of the Dedicated Host (available | under-assessment | permanent-failure | released | released-permanent-failure).    availability-zone - The Availability Zone of the host.  
  4135      */
  4136     Filter?: FilterList;
  4137   }
  4138   export interface DescribeHostsResult {
  4139     /**
  4140      * Information about the Dedicated Hosts.
  4141      */
  4142     Hosts?: HostList;
  4143     /**
  4144      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4145      */
  4146     NextToken?: String;
  4147   }
  4148   export interface DescribeIdFormatRequest {
  4149     /**
  4150      * The type of resource: instance | reservation | snapshot | volume 
  4151      */
  4152     Resource?: String;
  4153   }
  4154   export interface DescribeIdFormatResult {
  4155     /**
  4156      * Information about the ID format for the resource.
  4157      */
  4158     Statuses?: IdFormatList;
  4159   }
  4160   export interface DescribeIdentityIdFormatRequest {
  4161     /**
  4162      * The type of resource: instance | reservation | snapshot | volume 
  4163      */
  4164     Resource?: String;
  4165     /**
  4166      * The ARN of the principal, which can be an IAM role, IAM user, or the root user.
  4167      */
  4168     PrincipalArn: String;
  4169   }
  4170   export interface DescribeIdentityIdFormatResult {
  4171     /**
  4172      * Information about the ID format for the resources.
  4173      */
  4174     Statuses?: IdFormatList;
  4175   }
  4176   export interface DescribeImageAttributeRequest {
  4177     /**
  4178      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4179      */
  4180     DryRun?: Boolean;
  4181     /**
  4182      * The ID of the AMI.
  4183      */
  4184     ImageId: String;
  4185     /**
  4186      * The AMI attribute.  Note: Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI.
  4187      */
  4188     Attribute: ImageAttributeName;
  4189   }
  4190   export interface DescribeImagesRequest {
  4191     /**
  4192      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4193      */
  4194     DryRun?: Boolean;
  4195     /**
  4196      * One or more image IDs. Default: Describes all images available to you.
  4197      */
  4198     ImageIds?: ImageIdStringList;
  4199     /**
  4200      * Filters the images by the owner. Specify an AWS account ID, self (owner is the sender of the request), or an AWS owner alias (valid values are amazon | aws-marketplace | microsoft). Omitting this option returns all images for which you have launch permissions, regardless of ownership.
  4201      */
  4202     Owners?: OwnerStringList;
  4203     /**
  4204      * Scopes the images by users with explicit launch permissions. Specify an AWS account ID, self (the sender of the request), or all (public AMIs).
  4205      */
  4206     ExecutableUsers?: ExecutableByStringList;
  4207     /**
  4208      * One or more filters.    architecture - The image architecture (i386 | x86_64).    block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.    block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh).    block-device-mapping.snapshot-id - The ID of the snapshot used for the EBS volume.    block-device-mapping.volume-size - The volume size of the EBS volume, in GiB.    block-device-mapping.volume-type - The volume type of the EBS volume (gp2 | io1 | st1 | sc1 | standard).    description - The description of the image (provided during image creation).    hypervisor - The hypervisor type (ovm | xen).    image-id - The ID of the image.    image-type - The image type (machine | kernel | ramdisk).    is-public - A Boolean that indicates whether the image is public.    kernel-id - The kernel ID.    manifest-location - The location of the image manifest.    name - The name of the AMI (provided during image creation).    owner-alias - String value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.    owner-id - The AWS account ID of the image owner.    platform - The platform. To only list Windows-based AMIs, use windows.    product-code - The product code.    product-code.type - The type of the product code (devpay | marketplace).    ramdisk-id - The RAM disk ID.    root-device-name - The name of the root device volume (for example, /dev/sda1).    root-device-type - The type of the root device volume (ebs | instance-store).    state - The state of the image (available | pending | failed).    state-reason-code - The reason code for the state change.    state-reason-message - The message for the state change.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    virtualization-type - The virtualization type (paravirtual | hvm).  
  4209      */
  4210     Filters?: FilterList;
  4211   }
  4212   export interface DescribeImagesResult {
  4213     /**
  4214      * Information about one or more images.
  4215      */
  4216     Images?: ImageList;
  4217   }
  4218   export interface DescribeImportImageTasksRequest {
  4219     /**
  4220      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4221      */
  4222     DryRun?: Boolean;
  4223     /**
  4224      * A list of import image task IDs.
  4225      */
  4226     ImportTaskIds?: ImportTaskIdList;
  4227     /**
  4228      * A token that indicates the next page of results.
  4229      */
  4230     NextToken?: String;
  4231     /**
  4232      * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.
  4233      */
  4234     MaxResults?: Integer;
  4235     /**
  4236      * Filter tasks using the task-state filter and one of the following values: active, completed, deleting, deleted.
  4237      */
  4238     Filters?: FilterList;
  4239   }
  4240   export interface DescribeImportImageTasksResult {
  4241     /**
  4242      * A list of zero or more import image tasks that are currently active or were completed or canceled in the previous 7 days.
  4243      */
  4244     ImportImageTasks?: ImportImageTaskList;
  4245     /**
  4246      * The token to use to get the next page of results. This value is null when there are no more results to return.
  4247      */
  4248     NextToken?: String;
  4249   }
  4250   export interface DescribeImportSnapshotTasksRequest {
  4251     /**
  4252      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4253      */
  4254     DryRun?: Boolean;
  4255     /**
  4256      * A list of import snapshot task IDs.
  4257      */
  4258     ImportTaskIds?: ImportTaskIdList;
  4259     /**
  4260      * A token that indicates the next page of results.
  4261      */
  4262     NextToken?: String;
  4263     /**
  4264      * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.
  4265      */
  4266     MaxResults?: Integer;
  4267     /**
  4268      * One or more filters.
  4269      */
  4270     Filters?: FilterList;
  4271   }
  4272   export interface DescribeImportSnapshotTasksResult {
  4273     /**
  4274      * A list of zero or more import snapshot tasks that are currently active or were completed or canceled in the previous 7 days.
  4275      */
  4276     ImportSnapshotTasks?: ImportSnapshotTaskList;
  4277     /**
  4278      * The token to use to get the next page of results. This value is null when there are no more results to return.
  4279      */
  4280     NextToken?: String;
  4281   }
  4282   export interface DescribeInstanceAttributeRequest {
  4283     /**
  4284      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4285      */
  4286     DryRun?: Boolean;
  4287     /**
  4288      * The ID of the instance.
  4289      */
  4290     InstanceId: String;
  4291     /**
  4292      * The instance attribute. Note: The enaSupport attribute is not supported at this time.
  4293      */
  4294     Attribute: InstanceAttributeName;
  4295   }
  4296   export interface DescribeInstanceStatusRequest {
  4297     /**
  4298      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4299      */
  4300     DryRun?: Boolean;
  4301     /**
  4302      * One or more instance IDs. Default: Describes all your instances. Constraints: Maximum 100 explicitly specified instance IDs.
  4303      */
  4304     InstanceIds?: InstanceIdStringList;
  4305     /**
  4306      * One or more filters.    availability-zone - The Availability Zone of the instance.    event.code - The code for the scheduled event (instance-reboot | system-reboot | system-maintenance | instance-retirement | instance-stop).    event.description - A description of the event.    event.not-after - The latest end time for the scheduled event (for example, 2014-09-15T17:15:20.000Z).    event.not-before - The earliest start time for the scheduled event (for example, 2014-09-15T17:15:20.000Z).    instance-state-code - The code for the instance state, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).    instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).    instance-status.reachability - Filters on instance status where the name is reachability (passed | failed | initializing | insufficient-data).    instance-status.status - The status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).    system-status.reachability - Filters on system status where the name is reachability (passed | failed | initializing | insufficient-data).    system-status.status - The system status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).  
  4307      */
  4308     Filters?: FilterList;
  4309     /**
  4310      * The token to retrieve the next page of results.
  4311      */
  4312     NextToken?: String;
  4313     /**
  4314      * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.
  4315      */
  4316     MaxResults?: Integer;
  4317     /**
  4318      * When true, includes the health status for all instances. When false, includes the health status for running instances only. Default: false 
  4319      */
  4320     IncludeAllInstances?: Boolean;
  4321   }
  4322   export interface DescribeInstanceStatusResult {
  4323     /**
  4324      * One or more instance status descriptions.
  4325      */
  4326     InstanceStatuses?: InstanceStatusList;
  4327     /**
  4328      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4329      */
  4330     NextToken?: String;
  4331   }
  4332   export interface DescribeInstancesRequest {
  4333     /**
  4334      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4335      */
  4336     DryRun?: Boolean;
  4337     /**
  4338      * One or more instance IDs. Default: Describes all your instances.
  4339      */
  4340     InstanceIds?: InstanceIdStringList;
  4341     /**
  4342      * One or more filters.    affinity - The affinity setting for an instance running on a Dedicated Host (default | host).    architecture - The instance architecture (i386 | x86_64).    availability-zone - The Availability Zone of the instance.    block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.    block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.    block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh or xvdh).    block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).    block-device-mapping.volume-id - The volume ID of the EBS volume.    client-token - The idempotency token you provided when you launched the instance.    dns-name - The public DNS name of the instance.    group-id - The ID of the security group for the instance. EC2-Classic only.    group-name - The name of the security group for the instance. EC2-Classic only.    host-id - The ID of the Dedicated Host on which the instance is running, if applicable.    hypervisor - The hypervisor type of the instance (ovm | xen).    iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.    image-id - The ID of the image used to launch the instance.    instance-id - The ID of the instance.    instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled).    instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).    instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).    instance-type - The type of instance (for example, t2.micro).    instance.group-id - The ID of the security group for the instance.     instance.group-name - The name of the security group for the instance.     ip-address - The public IP address of the instance.    kernel-id - The kernel ID.    key-name - The name of the key pair used when the instance was launched.    launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).     launch-time - The time when the instance was launched.    monitoring-state - Indicates whether monitoring is enabled for the instance (disabled | enabled).    owner-id - The AWS account ID of the instance owner.    placement-group-name - The name of the placement group for the instance.    platform - The platform. Use windows if you have Windows instances; otherwise, leave blank.    private-dns-name - The private DNS name of the instance.    private-ip-address - The private IP address of the instance.    product-code - The product code associated with the AMI used to launch the instance.    product-code.type - The type of product code (devpay | marketplace).    ramdisk-id - The RAM disk ID.    reason - The reason for the current state of the instance (for example, shows "User Initiated [date]" when you stop or terminate the instance). Similar to the state-reason-code filter.    requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).    reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID.    root-device-name - The name of the root device for the instance (for example, /dev/sda1 or /dev/xvda).    root-device-type - The type of root device that the instance uses (ebs | instance-store).    source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.     spot-instance-request-id - The ID of the Spot instance request.    state-reason-code - The reason code for the state change.    state-reason-message - A message that describes the state change.    subnet-id - The ID of the subnet for the instance.    tag:key=value - The key/value combination of a tag assigned to the resource, where tag:key is the tag's key.     tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    tenancy - The tenancy of an instance (dedicated | default | host).    virtualization-type - The virtualization type of the instance (paravirtual | hvm).    vpc-id - The ID of the VPC that the instance is running in.    network-interface.description - The description of the network interface.    network-interface.subnet-id - The ID of the subnet for the network interface.    network-interface.vpc-id - The ID of the VPC for the network interface.    network-interface.network-interface-id - The ID of the network interface.    network-interface.owner-id - The ID of the owner of the network interface.    network-interface.availability-zone - The Availability Zone for the network interface.    network-interface.requester-id - The requester ID for the network interface.    network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.    network-interface.status - The status of the network interface (available) | in-use).    network-interface.mac-address - The MAC address of the network interface.    network-interface.private-dns-name - The private DNS name of the network interface.    network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.    network-interface.group-id - The ID of a security group associated with the network interface.    network-interface.group-name - The name of a security group associated with the network interface.    network-interface.attachment.attachment-id - The ID of the interface attachment.    network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.    network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.    network-interface.addresses.private-ip-address - The private IP address associated with the network interface.    network-interface.attachment.device-index - The device index to which the network interface is attached.    network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).    network-interface.attachment.attach-time - The time that the network interface was attached to an instance.    network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.    network-interface.addresses.primary - Specifies whether the IP address of the network interface is the primary private IP address.    network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address with a network interface.    network-interface.addresses.association.ip-owner-id - The owner ID of the private IP address associated with the network interface.    association.public-ip - The address of the Elastic IP address bound to the network interface.    association.ip-owner-id - The owner of the Elastic IP address associated with the network interface.    association.allocation-id - The allocation ID returned when you allocated the Elastic IP address for your network interface.    association.association-id - The association ID returned when the network interface was associated with an IP address.  
  4343      */
  4344     Filters?: FilterList;
  4345     /**
  4346      * The token to request the next page of results.
  4347      */
  4348     NextToken?: String;
  4349     /**
  4350      * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter or tag filters in the same call.
  4351      */
  4352     MaxResults?: Integer;
  4353   }
  4354   export interface DescribeInstancesResult {
  4355     /**
  4356      * Zero or more reservations.
  4357      */
  4358     Reservations?: ReservationList;
  4359     /**
  4360      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4361      */
  4362     NextToken?: String;
  4363   }
  4364   export interface DescribeInternetGatewaysRequest {
  4365     /**
  4366      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4367      */
  4368     DryRun?: Boolean;
  4369     /**
  4370      * One or more Internet gateway IDs. Default: Describes all your Internet gateways.
  4371      */
  4372     InternetGatewayIds?: ValueStringList;
  4373     /**
  4374      * One or more filters.    attachment.state - The current state of the attachment between the gateway and the VPC (available). Present only if a VPC is attached.    attachment.vpc-id - The ID of an attached VPC.    internet-gateway-id - The ID of the Internet gateway.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.  
  4375      */
  4376     Filters?: FilterList;
  4377   }
  4378   export interface DescribeInternetGatewaysResult {
  4379     /**
  4380      * Information about one or more Internet gateways.
  4381      */
  4382     InternetGateways?: InternetGatewayList;
  4383   }
  4384   export interface DescribeKeyPairsRequest {
  4385     /**
  4386      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4387      */
  4388     DryRun?: Boolean;
  4389     /**
  4390      * One or more key pair names. Default: Describes all your key pairs.
  4391      */
  4392     KeyNames?: KeyNameStringList;
  4393     /**
  4394      * One or more filters.    fingerprint - The fingerprint of the key pair.    key-name - The name of the key pair.  
  4395      */
  4396     Filters?: FilterList;
  4397   }
  4398   export interface DescribeKeyPairsResult {
  4399     /**
  4400      * Information about one or more key pairs.
  4401      */
  4402     KeyPairs?: KeyPairList;
  4403   }
  4404   export interface DescribeMovingAddressesRequest {
  4405     /**
  4406      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4407      */
  4408     DryRun?: Boolean;
  4409     /**
  4410      * One or more Elastic IP addresses.
  4411      */
  4412     PublicIps?: ValueStringList;
  4413     /**
  4414      * The token to use to retrieve the next page of results.
  4415      */
  4416     NextToken?: String;
  4417     /**
  4418      * One or more filters.    moving-status - The status of the Elastic IP address (MovingToVpc | RestoringToClassic).  
  4419      */
  4420     Filters?: FilterList;
  4421     /**
  4422      * The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value outside of this range, an error is returned. Default: If no value is provided, the default is 1000.
  4423      */
  4424     MaxResults?: Integer;
  4425   }
  4426   export interface DescribeMovingAddressesResult {
  4427     /**
  4428      * The status for each Elastic IP address.
  4429      */
  4430     MovingAddressStatuses?: MovingAddressStatusSet;
  4431     /**
  4432      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4433      */
  4434     NextToken?: String;
  4435   }
  4436   export interface DescribeNatGatewaysRequest {
  4437     /**
  4438      * One or more NAT gateway IDs.
  4439      */
  4440     NatGatewayIds?: ValueStringList;
  4441     /**
  4442      * One or more filters.    nat-gateway-id - The ID of the NAT gateway.    state - The state of the NAT gateway (pending | failed | available | deleting | deleted).    subnet-id - The ID of the subnet in which the NAT gateway resides.    vpc-id - The ID of the VPC in which the NAT gateway resides.  
  4443      */
  4444     Filter?: FilterList;
  4445     /**
  4446      * The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value specified is greater than 1000, we return only 1000 items.
  4447      */
  4448     MaxResults?: Integer;
  4449     /**
  4450      * The token to retrieve the next page of results.
  4451      */
  4452     NextToken?: String;
  4453   }
  4454   export interface DescribeNatGatewaysResult {
  4455     /**
  4456      * Information about the NAT gateways.
  4457      */
  4458     NatGateways?: NatGatewayList;
  4459     /**
  4460      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4461      */
  4462     NextToken?: String;
  4463   }
  4464   export interface DescribeNetworkAclsRequest {
  4465     /**
  4466      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4467      */
  4468     DryRun?: Boolean;
  4469     /**
  4470      * One or more network ACL IDs. Default: Describes all your network ACLs.
  4471      */
  4472     NetworkAclIds?: ValueStringList;
  4473     /**
  4474      * One or more filters.    association.association-id - The ID of an association ID for the ACL.    association.network-acl-id - The ID of the network ACL involved in the association.    association.subnet-id - The ID of the subnet involved in the association.    default - Indicates whether the ACL is the default network ACL for the VPC.    entry.cidr - The CIDR range specified in the entry.    entry.egress - Indicates whether the entry applies to egress traffic.    entry.icmp.code - The ICMP code specified in the entry, if any.    entry.icmp.type - The ICMP type specified in the entry, if any.    entry.port-range.from - The start of the port range specified in the entry.     entry.port-range.to - The end of the port range specified in the entry.     entry.protocol - The protocol specified in the entry (tcp | udp | icmp or a protocol number).    entry.rule-action - Allows or denies the matching traffic (allow | deny).    entry.rule-number - The number of an entry (in other words, rule) in the ACL's set of entries.    network-acl-id - The ID of the network ACL.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-id - The ID of the VPC for the network ACL.  
  4475      */
  4476     Filters?: FilterList;
  4477   }
  4478   export interface DescribeNetworkAclsResult {
  4479     /**
  4480      * Information about one or more network ACLs.
  4481      */
  4482     NetworkAcls?: NetworkAclList;
  4483   }
  4484   export interface DescribeNetworkInterfaceAttributeRequest {
  4485     /**
  4486      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4487      */
  4488     DryRun?: Boolean;
  4489     /**
  4490      * The ID of the network interface.
  4491      */
  4492     NetworkInterfaceId: String;
  4493     /**
  4494      * The attribute of the network interface.
  4495      */
  4496     Attribute?: NetworkInterfaceAttribute;
  4497   }
  4498   export interface DescribeNetworkInterfaceAttributeResult {
  4499     /**
  4500      * The ID of the network interface.
  4501      */
  4502     NetworkInterfaceId?: String;
  4503     /**
  4504      * The description of the network interface.
  4505      */
  4506     Description?: AttributeValue;
  4507     /**
  4508      * Indicates whether source/destination checking is enabled.
  4509      */
  4510     SourceDestCheck?: AttributeBooleanValue;
  4511     /**
  4512      * The security groups associated with the network interface.
  4513      */
  4514     Groups?: GroupIdentifierList;
  4515     /**
  4516      * The attachment (if any) of the network interface.
  4517      */
  4518     Attachment?: NetworkInterfaceAttachment;
  4519   }
  4520   export interface DescribeNetworkInterfacesRequest {
  4521     /**
  4522      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4523      */
  4524     DryRun?: Boolean;
  4525     /**
  4526      * One or more network interface IDs. Default: Describes all your network interfaces.
  4527      */
  4528     NetworkInterfaceIds?: NetworkInterfaceIdList;
  4529     /**
  4530      * One or more filters.    addresses.private-ip-address - The private IP addresses associated with the network interface.    addresses.primary - Whether the private IP address is the primary IP address associated with the network interface.     addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address.    addresses.association.owner-id - The owner ID of the addresses associated with the network interface.    association.association-id - The association ID returned when the network interface was associated with an IP address.    association.allocation-id - The allocation ID returned when you allocated the Elastic IP address for your network interface.    association.ip-owner-id - The owner of the Elastic IP address associated with the network interface.    association.public-ip - The address of the Elastic IP address bound to the network interface.    association.public-dns-name - The public DNS name for the network interface.    attachment.attachment-id - The ID of the interface attachment.    attachment.attach.time - The time that the network interface was attached to an instance.    attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.    attachment.device-index - The device index to which the network interface is attached.    attachment.instance-id - The ID of the instance to which the network interface is attached.    attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.    attachment.nat-gateway-id - The ID of the NAT gateway to which the network interface is attached.    attachment.status - The status of the attachment (attaching | attached | detaching | detached).    availability-zone - The Availability Zone of the network interface.    description - The description of the network interface.    group-id - The ID of a security group associated with the network interface.    group-name - The name of a security group associated with the network interface.    mac-address - The MAC address of the network interface.    network-interface-id - The ID of the network interface.    owner-id - The AWS account ID of the network interface owner.    private-ip-address - The private IP address or addresses of the network interface.    private-dns-name - The private DNS name of the network interface.    requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).    requester-managed - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).    source-desk-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.     status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use.    subnet-id - The ID of the subnet for the network interface.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-id - The ID of the VPC for the network interface.  
  4531      */
  4532     Filters?: FilterList;
  4533   }
  4534   export interface DescribeNetworkInterfacesResult {
  4535     /**
  4536      * Information about one or more network interfaces.
  4537      */
  4538     NetworkInterfaces?: NetworkInterfaceList;
  4539   }
  4540   export interface DescribePlacementGroupsRequest {
  4541     /**
  4542      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4543      */
  4544     DryRun?: Boolean;
  4545     /**
  4546      * One or more placement group names. Default: Describes all your placement groups, or only those otherwise specified.
  4547      */
  4548     GroupNames?: PlacementGroupStringList;
  4549     /**
  4550      * One or more filters.    group-name - The name of the placement group.    state - The state of the placement group (pending | available | deleting | deleted).    strategy - The strategy of the placement group (cluster).  
  4551      */
  4552     Filters?: FilterList;
  4553   }
  4554   export interface DescribePlacementGroupsResult {
  4555     /**
  4556      * One or more placement groups.
  4557      */
  4558     PlacementGroups?: PlacementGroupList;
  4559   }
  4560   export interface DescribePrefixListsRequest {
  4561     /**
  4562      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4563      */
  4564     DryRun?: Boolean;
  4565     /**
  4566      * One or more prefix list IDs.
  4567      */
  4568     PrefixListIds?: ValueStringList;
  4569     /**
  4570      * One or more filters.    prefix-list-id: The ID of a prefix list.    prefix-list-name: The name of a prefix list.  
  4571      */
  4572     Filters?: FilterList;
  4573     /**
  4574      * The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value specified is greater than 1000, we return only 1000 items.
  4575      */
  4576     MaxResults?: Integer;
  4577     /**
  4578      * The token for the next set of items to return. (You received this token from a prior call.)
  4579      */
  4580     NextToken?: String;
  4581   }
  4582   export interface DescribePrefixListsResult {
  4583     /**
  4584      * All available prefix lists.
  4585      */
  4586     PrefixLists?: PrefixListSet;
  4587     /**
  4588      * The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.
  4589      */
  4590     NextToken?: String;
  4591   }
  4592   export interface DescribeRegionsRequest {
  4593     /**
  4594      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4595      */
  4596     DryRun?: Boolean;
  4597     /**
  4598      * The names of one or more regions.
  4599      */
  4600     RegionNames?: RegionNameStringList;
  4601     /**
  4602      * One or more filters.    endpoint - The endpoint of the region (for example, ec2.us-east-1.amazonaws.com).    region-name - The name of the region (for example, us-east-1).  
  4603      */
  4604     Filters?: FilterList;
  4605   }
  4606   export interface DescribeRegionsResult {
  4607     /**
  4608      * Information about one or more regions.
  4609      */
  4610     Regions?: RegionList;
  4611   }
  4612   export interface DescribeReservedInstancesListingsRequest {
  4613     /**
  4614      * One or more Reserved Instance IDs.
  4615      */
  4616     ReservedInstancesId?: String;
  4617     /**
  4618      * One or more Reserved Instance listing IDs.
  4619      */
  4620     ReservedInstancesListingId?: String;
  4621     /**
  4622      * One or more filters.    reserved-instances-id - The ID of the Reserved Instances.    reserved-instances-listing-id - The ID of the Reserved Instances listing.    status - The status of the Reserved Instance listing (pending | active | cancelled | closed).    status-message - The reason for the status.  
  4623      */
  4624     Filters?: FilterList;
  4625   }
  4626   export interface DescribeReservedInstancesListingsResult {
  4627     /**
  4628      * Information about the Reserved Instance listing.
  4629      */
  4630     ReservedInstancesListings?: ReservedInstancesListingList;
  4631   }
  4632   export interface DescribeReservedInstancesModificationsRequest {
  4633     /**
  4634      * IDs for the submitted modification request.
  4635      */
  4636     ReservedInstancesModificationIds?: ReservedInstancesModificationIdStringList;
  4637     /**
  4638      * The token to retrieve the next page of results.
  4639      */
  4640     NextToken?: String;
  4641     /**
  4642      * One or more filters.    client-token - The idempotency token for the modification request.    create-date - The time when the modification request was created.    effective-date - The time when the modification becomes effective.    modification-result.reserved-instances-id - The ID for the Reserved Instances created as part of the modification request. This ID is only available when the status of the modification is fulfilled.    modification-result.target-configuration.availability-zone - The Availability Zone for the new Reserved Instances.    modification-result.target-configuration.instance-count  - The number of new Reserved Instances.    modification-result.target-configuration.instance-type - The instance type of the new Reserved Instances.    modification-result.target-configuration.platform - The network platform of the new Reserved Instances (EC2-Classic | EC2-VPC).    reserved-instances-id - The ID of the Reserved Instances modified.    reserved-instances-modification-id - The ID of the modification request.    status - The status of the Reserved Instances modification request (processing | fulfilled | failed).    status-message - The reason for the status.    update-date - The time when the modification request was last updated.  
  4643      */
  4644     Filters?: FilterList;
  4645   }
  4646   export interface DescribeReservedInstancesModificationsResult {
  4647     /**
  4648      * The Reserved Instance modification information.
  4649      */
  4650     ReservedInstancesModifications?: ReservedInstancesModificationList;
  4651     /**
  4652      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4653      */
  4654     NextToken?: String;
  4655   }
  4656   export interface DescribeReservedInstancesOfferingsRequest {
  4657     /**
  4658      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4659      */
  4660     DryRun?: Boolean;
  4661     /**
  4662      * One or more Reserved Instances offering IDs.
  4663      */
  4664     ReservedInstancesOfferingIds?: ReservedInstancesOfferingIdStringList;
  4665     /**
  4666      * The instance type that the reservation will cover (for example, m1.small). For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.
  4667      */
  4668     InstanceType?: InstanceType;
  4669     /**
  4670      * The Availability Zone in which the Reserved Instance can be used.
  4671      */
  4672     AvailabilityZone?: String;
  4673     /**
  4674      * The Reserved Instance product platform description. Instances that include (Amazon VPC) in the description are for use with Amazon VPC.
  4675      */
  4676     ProductDescription?: RIProductDescription;
  4677     /**
  4678      * One or more filters.    availability-zone - The Availability Zone where the Reserved Instance can be used.    duration - The duration of the Reserved Instance (for example, one year or three years), in seconds (31536000 | 94608000).    fixed-price - The purchase price of the Reserved Instance (for example, 9800.0).    instance-type - The instance type that is covered by the reservation.    marketplace - Set to true to show only Reserved Instance Marketplace offerings. When this filter is not used, which is the default behavior, all offerings from both AWS and the Reserved Instance Marketplace are listed.    product-description - The Reserved Instance product platform description. Instances that include (Amazon VPC) in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC. (Linux/UNIX | Linux/UNIX (Amazon VPC) | SUSE Linux | SUSE Linux (Amazon VPC) | Red Hat Enterprise Linux | Red Hat Enterprise Linux (Amazon VPC) | Windows | Windows (Amazon VPC) | Windows with SQL Server Standard | Windows with SQL Server Standard (Amazon VPC) | Windows with SQL Server Web |  Windows with SQL Server Web (Amazon VPC) | Windows with SQL Server Enterprise | Windows with SQL Server Enterprise (Amazon VPC))     reserved-instances-offering-id - The Reserved Instances offering ID.    scope - The scope of the Reserved Instance (Availability Zone or Region).    usage-price - The usage price of the Reserved Instance, per hour (for example, 0.84).  
  4679      */
  4680     Filters?: FilterList;
  4681     /**
  4682      * The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of dedicated is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances). Default: default 
  4683      */
  4684     InstanceTenancy?: Tenancy;
  4685     /**
  4686      * The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the Medium Utilization Reserved Instance offering type. 
  4687      */
  4688     OfferingType?: OfferingTypeValues;
  4689     /**
  4690      * The token to retrieve the next page of results.
  4691      */
  4692     NextToken?: String;
  4693     /**
  4694      * The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. The maximum is 100. Default: 100
  4695      */
  4696     MaxResults?: Integer;
  4697     /**
  4698      * Include Reserved Instance Marketplace offerings in the response.
  4699      */
  4700     IncludeMarketplace?: Boolean;
  4701     /**
  4702      * The minimum duration (in seconds) to filter when searching for offerings. Default: 2592000 (1 month)
  4703      */
  4704     MinDuration?: Long;
  4705     /**
  4706      * The maximum duration (in seconds) to filter when searching for offerings. Default: 94608000 (3 years)
  4707      */
  4708     MaxDuration?: Long;
  4709     /**
  4710      * The maximum number of instances to filter when searching for offerings. Default: 20
  4711      */
  4712     MaxInstanceCount?: Integer;
  4713     /**
  4714      * The offering class of the Reserved Instance. Can be standard or convertible.
  4715      */
  4716     OfferingClass?: OfferingClassType;
  4717   }
  4718   export interface DescribeReservedInstancesOfferingsResult {
  4719     /**
  4720      * A list of Reserved Instances offerings.
  4721      */
  4722     ReservedInstancesOfferings?: ReservedInstancesOfferingList;
  4723     /**
  4724      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  4725      */
  4726     NextToken?: String;
  4727   }
  4728   export interface DescribeReservedInstancesRequest {
  4729     /**
  4730      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4731      */
  4732     DryRun?: Boolean;
  4733     /**
  4734      * One or more Reserved Instance IDs. Default: Describes all your Reserved Instances, or only those otherwise specified.
  4735      */
  4736     ReservedInstancesIds?: ReservedInstancesIdStringList;
  4737     /**
  4738      * One or more filters.    availability-zone - The Availability Zone where the Reserved Instance can be used.    duration - The duration of the Reserved Instance (one year or three years), in seconds (31536000 | 94608000).    end - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z).    fixed-price - The purchase price of the Reserved Instance (for example, 9800.0).    instance-type - The instance type that is covered by the reservation.    scope - The scope of the Reserved Instance (Region or Availability Zone).    product-description - The Reserved Instance product platform description. Instances that include (Amazon VPC) in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC (Linux/UNIX | Linux/UNIX (Amazon VPC) | SUSE Linux | SUSE Linux (Amazon VPC) | Red Hat Enterprise Linux | Red Hat Enterprise Linux (Amazon VPC) | Windows | Windows (Amazon VPC) | Windows with SQL Server Standard | Windows with SQL Server Standard (Amazon VPC) | Windows with SQL Server Web | Windows with SQL Server Web (Amazon VPC) | Windows with SQL Server Enterprise | Windows with SQL Server Enterprise (Amazon VPC)).    reserved-instances-id - The ID of the Reserved Instance.    start - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).    state - The state of the Reserved Instance (payment-pending | active | payment-failed | retired).    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    usage-price - The usage price of the Reserved Instance, per hour (for example, 0.84).  
  4739      */
  4740     Filters?: FilterList;
  4741     /**
  4742      * The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the Medium Utilization Reserved Instance offering type.
  4743      */
  4744     OfferingType?: OfferingTypeValues;
  4745     /**
  4746      * Describes whether the Reserved Instance is Standard or Convertible.
  4747      */
  4748     OfferingClass?: OfferingClassType;
  4749   }
  4750   export interface DescribeReservedInstancesResult {
  4751     /**
  4752      * A list of Reserved Instances.
  4753      */
  4754     ReservedInstances?: ReservedInstancesList;
  4755   }
  4756   export interface DescribeRouteTablesRequest {
  4757     /**
  4758      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4759      */
  4760     DryRun?: Boolean;
  4761     /**
  4762      * One or more route table IDs. Default: Describes all your route tables.
  4763      */
  4764     RouteTableIds?: ValueStringList;
  4765     /**
  4766      * One or more filters.    association.route-table-association-id - The ID of an association ID for the route table.    association.route-table-id - The ID of the route table involved in the association.    association.subnet-id - The ID of the subnet involved in the association.    association.main - Indicates whether the route table is the main route table for the VPC (true | false).    route-table-id - The ID of the route table.    route.destination-cidr-block - The CIDR range specified in a route in the table.    route.destination-prefix-list-id - The ID (prefix) of the AWS service specified in a route in the table.    route.gateway-id - The ID of a gateway specified in a route in the table.    route.instance-id - The ID of an instance specified in a route in the table.    route.nat-gateway-id - The ID of a NAT gateway.    route.origin - Describes how the route was created. CreateRouteTable indicates that the route was automatically created when the route table was created; CreateRoute indicates that the route was manually added to the route table; EnableVgwRoutePropagation indicates that the route was propagated by route propagation.    route.state - The state of a route in the route table (active | blackhole). The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, the specified NAT instance has been terminated, and so on).    route.vpc-peering-connection-id - The ID of a VPC peering connection specified in a route in the table.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-id - The ID of the VPC for the route table.  
  4767      */
  4768     Filters?: FilterList;
  4769   }
  4770   export interface DescribeRouteTablesResult {
  4771     /**
  4772      * Information about one or more route tables.
  4773      */
  4774     RouteTables?: RouteTableList;
  4775   }
  4776   export interface DescribeScheduledInstanceAvailabilityRequest {
  4777     /**
  4778      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4779      */
  4780     DryRun?: Boolean;
  4781     /**
  4782      * The schedule recurrence.
  4783      */
  4784     Recurrence: ScheduledInstanceRecurrenceRequest;
  4785     /**
  4786      * The time period for the first schedule to start.
  4787      */
  4788     FirstSlotStartTimeRange: SlotDateTimeRangeRequest;
  4789     /**
  4790      * The minimum available duration, in hours. The minimum required duration is 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.
  4791      */
  4792     MinSlotDurationInHours?: Integer;
  4793     /**
  4794      * The maximum available duration, in hours. This value must be greater than MinSlotDurationInHours and less than 1,720.
  4795      */
  4796     MaxSlotDurationInHours?: Integer;
  4797     /**
  4798      * The token for the next set of results.
  4799      */
  4800     NextToken?: String;
  4801     /**
  4802      * The maximum number of results to return in a single call. This value can be between 5 and 300. The default value is 300. To retrieve the remaining results, make another call with the returned NextToken value.
  4803      */
  4804     MaxResults?: Integer;
  4805     /**
  4806      * One or more filters.    availability-zone - The Availability Zone (for example, us-west-2a).    instance-type - The instance type (for example, c4.large).    network-platform - The network platform (EC2-Classic or EC2-VPC).    platform - The platform (Linux/UNIX or Windows).  
  4807      */
  4808     Filters?: FilterList;
  4809   }
  4810   export interface DescribeScheduledInstanceAvailabilityResult {
  4811     /**
  4812      * The token required to retrieve the next set of results. This value is null when there are no more results to return.
  4813      */
  4814     NextToken?: String;
  4815     /**
  4816      * Information about the available Scheduled Instances.
  4817      */
  4818     ScheduledInstanceAvailabilitySet?: ScheduledInstanceAvailabilitySet;
  4819   }
  4820   export interface DescribeScheduledInstancesRequest {
  4821     /**
  4822      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4823      */
  4824     DryRun?: Boolean;
  4825     /**
  4826      * One or more Scheduled Instance IDs.
  4827      */
  4828     ScheduledInstanceIds?: ScheduledInstanceIdRequestSet;
  4829     /**
  4830      * The time period for the first schedule to start.
  4831      */
  4832     SlotStartTimeRange?: SlotStartTimeRangeRequest;
  4833     /**
  4834      * The token for the next set of results.
  4835      */
  4836     NextToken?: String;
  4837     /**
  4838      * The maximum number of results to return in a single call. This value can be between 5 and 300. The default value is 100. To retrieve the remaining results, make another call with the returned NextToken value.
  4839      */
  4840     MaxResults?: Integer;
  4841     /**
  4842      * One or more filters.    availability-zone - The Availability Zone (for example, us-west-2a).    instance-type - The instance type (for example, c4.large).    network-platform - The network platform (EC2-Classic or EC2-VPC).    platform - The platform (Linux/UNIX or Windows).  
  4843      */
  4844     Filters?: FilterList;
  4845   }
  4846   export interface DescribeScheduledInstancesResult {
  4847     /**
  4848      * The token required to retrieve the next set of results. This value is null when there are no more results to return.
  4849      */
  4850     NextToken?: String;
  4851     /**
  4852      * Information about the Scheduled Instances.
  4853      */
  4854     ScheduledInstanceSet?: ScheduledInstanceSet;
  4855   }
  4856   export interface DescribeSecurityGroupReferencesRequest {
  4857     /**
  4858      * Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4859      */
  4860     DryRun?: Boolean;
  4861     /**
  4862      * One or more security group IDs in your account.
  4863      */
  4864     GroupId: GroupIds;
  4865   }
  4866   export interface DescribeSecurityGroupReferencesResult {
  4867     /**
  4868      * Information about the VPCs with the referencing security groups.
  4869      */
  4870     SecurityGroupReferenceSet?: SecurityGroupReferences;
  4871   }
  4872   export interface DescribeSecurityGroupsRequest {
  4873     /**
  4874      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4875      */
  4876     DryRun?: Boolean;
  4877     /**
  4878      * [EC2-Classic and default VPC only] One or more security group names. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the group-name filter to describe security groups by name. Default: Describes all your security groups.
  4879      */
  4880     GroupNames?: GroupNameStringList;
  4881     /**
  4882      * One or more security group IDs. Required for security groups in a nondefault VPC. Default: Describes all your security groups.
  4883      */
  4884     GroupIds?: GroupIdStringList;
  4885     /**
  4886      * One or more filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.    description - The description of the security group.    egress.ip-permission.prefix-list-id - The ID (prefix) of the AWS service to which the security group allows access.    group-id - The ID of the security group.     group-name - The name of the security group.    ip-permission.cidr - A CIDR range that has been granted permission.    ip-permission.from-port - The start of port range for the TCP and UDP protocols, or an ICMP type number.    ip-permission.group-id - The ID of a security group that has been granted permission.    ip-permission.group-name - The name of a security group that has been granted permission.    ip-permission.protocol - The IP protocol for the permission (tcp | udp | icmp or a protocol number).    ip-permission.to-port - The end of port range for the TCP and UDP protocols, or an ICMP code.    ip-permission.user-id - The ID of an AWS account that has been granted permission.    owner-id - The AWS account ID of the owner of the security group.    tag-key - The key of a tag assigned to the security group.    tag-value - The value of a tag assigned to the security group.    vpc-id - The ID of the VPC specified when the security group was created.  
  4887      */
  4888     Filters?: FilterList;
  4889   }
  4890   export interface DescribeSecurityGroupsResult {
  4891     /**
  4892      * Information about one or more security groups.
  4893      */
  4894     SecurityGroups?: SecurityGroupList;
  4895   }
  4896   export interface DescribeSnapshotAttributeRequest {
  4897     /**
  4898      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4899      */
  4900     DryRun?: Boolean;
  4901     /**
  4902      * The ID of the EBS snapshot.
  4903      */
  4904     SnapshotId: String;
  4905     /**
  4906      * The snapshot attribute you would like to view.
  4907      */
  4908     Attribute: SnapshotAttributeName;
  4909   }
  4910   export interface DescribeSnapshotAttributeResult {
  4911     /**
  4912      * The ID of the EBS snapshot.
  4913      */
  4914     SnapshotId?: String;
  4915     /**
  4916      * A list of permissions for creating volumes from the snapshot.
  4917      */
  4918     CreateVolumePermissions?: CreateVolumePermissionList;
  4919     /**
  4920      * A list of product codes.
  4921      */
  4922     ProductCodes?: ProductCodeList;
  4923   }
  4924   export interface DescribeSnapshotsRequest {
  4925     /**
  4926      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4927      */
  4928     DryRun?: Boolean;
  4929     /**
  4930      * One or more snapshot IDs. Default: Describes snapshots for which you have launch permissions.
  4931      */
  4932     SnapshotIds?: SnapshotIdStringList;
  4933     /**
  4934      * Returns the snapshots owned by the specified owner. Multiple owners can be specified.
  4935      */
  4936     OwnerIds?: OwnerStringList;
  4937     /**
  4938      * One or more AWS accounts IDs that can create volumes from the snapshot.
  4939      */
  4940     RestorableByUserIds?: RestorableByStringList;
  4941     /**
  4942      * One or more filters.    description - A description of the snapshot.    owner-alias - Value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM consolew.    owner-id - The ID of the AWS account that owns the snapshot.    progress - The progress of the snapshot, as a percentage (for example, 80%).    snapshot-id - The snapshot ID.    start-time - The time stamp when the snapshot was initiated.    status - The status of the snapshot (pending | completed | error).    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    volume-id - The ID of the volume the snapshot is for.    volume-size - The size of the volume, in GiB.  
  4943      */
  4944     Filters?: FilterList;
  4945     /**
  4946      * The NextToken value returned from a previous paginated DescribeSnapshots request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.
  4947      */
  4948     NextToken?: String;
  4949     /**
  4950      * The maximum number of snapshot results returned by DescribeSnapshots in paginated output. When this parameter is used, DescribeSnapshots only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeSnapshots request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeSnapshots returns all results. You cannot specify this parameter and the snapshot IDs parameter in the same request.
  4951      */
  4952     MaxResults?: Integer;
  4953   }
  4954   export interface DescribeSnapshotsResult {
  4955     /**
  4956      * Information about the snapshots.
  4957      */
  4958     Snapshots?: SnapshotList;
  4959     /**
  4960      * The NextToken value to include in a future DescribeSnapshots request. When the results of a DescribeSnapshots request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.
  4961      */
  4962     NextToken?: String;
  4963   }
  4964   export interface DescribeSpotDatafeedSubscriptionRequest {
  4965     /**
  4966      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4967      */
  4968     DryRun?: Boolean;
  4969   }
  4970   export interface DescribeSpotDatafeedSubscriptionResult {
  4971     /**
  4972      * The Spot instance data feed subscription.
  4973      */
  4974     SpotDatafeedSubscription?: SpotDatafeedSubscription;
  4975   }
  4976   export interface DescribeSpotFleetInstancesRequest {
  4977     /**
  4978      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  4979      */
  4980     DryRun?: Boolean;
  4981     /**
  4982      * The ID of the Spot fleet request.
  4983      */
  4984     SpotFleetRequestId: String;
  4985     /**
  4986      * The token for the next set of results.
  4987      */
  4988     NextToken?: String;
  4989     /**
  4990      * The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.
  4991      */
  4992     MaxResults?: Integer;
  4993   }
  4994   export interface DescribeSpotFleetInstancesResponse {
  4995     /**
  4996      * The ID of the Spot fleet request.
  4997      */
  4998     SpotFleetRequestId: String;
  4999     /**
  5000      * The running instances. Note that this list is refreshed periodically and might be out of date.
  5001      */
  5002     ActiveInstances: ActiveInstanceSet;
  5003     /**
  5004      * The token required to retrieve the next set of results. This value is null when there are no more results to return.
  5005      */
  5006     NextToken?: String;
  5007   }
  5008   export interface DescribeSpotFleetRequestHistoryRequest {
  5009     /**
  5010      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5011      */
  5012     DryRun?: Boolean;
  5013     /**
  5014      * The ID of the Spot fleet request.
  5015      */
  5016     SpotFleetRequestId: String;
  5017     /**
  5018      * The type of events to describe. By default, all events are described.
  5019      */
  5020     EventType?: EventType;
  5021     /**
  5022      * The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
  5023      */
  5024     StartTime: DateTime;
  5025     /**
  5026      * The token for the next set of results.
  5027      */
  5028     NextToken?: String;
  5029     /**
  5030      * The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.
  5031      */
  5032     MaxResults?: Integer;
  5033   }
  5034   export interface DescribeSpotFleetRequestHistoryResponse {
  5035     /**
  5036      * The ID of the Spot fleet request.
  5037      */
  5038     SpotFleetRequestId: String;
  5039     /**
  5040      * The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
  5041      */
  5042     StartTime: DateTime;
  5043     /**
  5044      * The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). All records up to this time were retrieved. If nextToken indicates that there are more results, this value is not present.
  5045      */
  5046     LastEvaluatedTime: DateTime;
  5047     /**
  5048      * Information about the events in the history of the Spot fleet request.
  5049      */
  5050     HistoryRecords: HistoryRecords;
  5051     /**
  5052      * The token required to retrieve the next set of results. This value is null when there are no more results to return.
  5053      */
  5054     NextToken?: String;
  5055   }
  5056   export interface DescribeSpotFleetRequestsRequest {
  5057     /**
  5058      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5059      */
  5060     DryRun?: Boolean;
  5061     /**
  5062      * The IDs of the Spot fleet requests.
  5063      */
  5064     SpotFleetRequestIds?: ValueStringList;
  5065     /**
  5066      * The token for the next set of results.
  5067      */
  5068     NextToken?: String;
  5069     /**
  5070      * The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.
  5071      */
  5072     MaxResults?: Integer;
  5073   }
  5074   export interface DescribeSpotFleetRequestsResponse {
  5075     /**
  5076      * Information about the configuration of your Spot fleet.
  5077      */
  5078     SpotFleetRequestConfigs: SpotFleetRequestConfigSet;
  5079     /**
  5080      * The token required to retrieve the next set of results. This value is null when there are no more results to return.
  5081      */
  5082     NextToken?: String;
  5083   }
  5084   export interface DescribeSpotInstanceRequestsRequest {
  5085     /**
  5086      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5087      */
  5088     DryRun?: Boolean;
  5089     /**
  5090      * One or more Spot instance request IDs.
  5091      */
  5092     SpotInstanceRequestIds?: SpotInstanceRequestIdList;
  5093     /**
  5094      * One or more filters.    availability-zone-group - The Availability Zone group.    create-time - The time stamp when the Spot instance request was created.    fault-code - The fault code related to the request.    fault-message - The fault message related to the request.    instance-id - The ID of the instance that fulfilled the request.    launch-group - The Spot instance launch group.    launch.block-device-mapping.delete-on-termination - Indicates whether the Amazon EBS volume is deleted on instance termination.    launch.block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh).    launch.block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.    launch.block-device-mapping.volume-size - The size of the Amazon EBS volume, in GiB.    launch.block-device-mapping.volume-type - The type of the Amazon EBS volume: gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1for Cold HDD, or standard for Magnetic.    launch.group-id - The security group for the instance.    launch.image-id - The ID of the AMI.    launch.instance-type - The type of instance (for example, m3.medium).    launch.kernel-id - The kernel ID.    launch.key-name - The name of the key pair the instance launched with.    launch.monitoring-enabled - Whether monitoring is enabled for the Spot instance.    launch.ramdisk-id - The RAM disk ID.    network-interface.network-interface-id - The ID of the network interface.    network-interface.device-index - The index of the device for the network interface attachment on the instance.    network-interface.subnet-id - The ID of the subnet for the instance.    network-interface.description - A description of the network interface.    network-interface.private-ip-address - The primary private IP address of the network interface.    network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated.    network-interface.group-id - The ID of the security group associated with the network interface.    network-interface.group-name - The name of the security group associated with the network interface.    network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address.    product-description - The product description associated with the instance (Linux/UNIX | Windows).    spot-instance-request-id - The Spot instance request ID.    spot-price - The maximum hourly price for any Spot instance launched to fulfill the request.    state - The state of the Spot instance request (open | active | closed | cancelled | failed). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.    status-code - The short code describing the most recent evaluation of your Spot instance request.    status-message - The message explaining the status of the Spot instance request.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    type - The type of Spot instance request (one-time | persistent).    launched-availability-zone - The Availability Zone in which the bid is launched.    valid-from - The start date of the request.    valid-until - The end date of the request.  
  5095      */
  5096     Filters?: FilterList;
  5097   }
  5098   export interface DescribeSpotInstanceRequestsResult {
  5099     /**
  5100      * One or more Spot instance requests.
  5101      */
  5102     SpotInstanceRequests?: SpotInstanceRequestList;
  5103   }
  5104   export interface DescribeSpotPriceHistoryRequest {
  5105     /**
  5106      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5107      */
  5108     DryRun?: Boolean;
  5109     /**
  5110      * The date and time, up to the past 90 days, from which to start retrieving the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
  5111      */
  5112     StartTime?: DateTime;
  5113     /**
  5114      * The date and time, up to the current date, from which to stop retrieving the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
  5115      */
  5116     EndTime?: DateTime;
  5117     /**
  5118      * Filters the results by the specified instance types.
  5119      */
  5120     InstanceTypes?: InstanceTypeList;
  5121     /**
  5122      * Filters the results by the specified basic product descriptions.
  5123      */
  5124     ProductDescriptions?: ProductDescriptionList;
  5125     /**
  5126      * One or more filters.    availability-zone - The Availability Zone for which prices should be returned.    instance-type - The type of instance (for example, m3.medium).    product-description - The product description for the Spot price (Linux/UNIX | SUSE Linux | Windows | Linux/UNIX (Amazon VPC) | SUSE Linux (Amazon VPC) | Windows (Amazon VPC)).    spot-price - The Spot price. The value must match exactly (or use wildcards; greater than or less than comparison is not supported).    timestamp - The timestamp of the Spot price history, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). You can use wildcards (* and ?). Greater than or less than comparison is not supported.  
  5127      */
  5128     Filters?: FilterList;
  5129     /**
  5130      * Filters the results by the specified Availability Zone.
  5131      */
  5132     AvailabilityZone?: String;
  5133     /**
  5134      * The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.
  5135      */
  5136     MaxResults?: Integer;
  5137     /**
  5138      * The token for the next set of results.
  5139      */
  5140     NextToken?: String;
  5141   }
  5142   export interface DescribeSpotPriceHistoryResult {
  5143     /**
  5144      * The historical Spot prices.
  5145      */
  5146     SpotPriceHistory?: SpotPriceHistoryList;
  5147     /**
  5148      * The token required to retrieve the next set of results. This value is null when there are no more results to return.
  5149      */
  5150     NextToken?: String;
  5151   }
  5152   export interface DescribeStaleSecurityGroupsRequest {
  5153     /**
  5154      * Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5155      */
  5156     DryRun?: Boolean;
  5157     /**
  5158      * The ID of the VPC.
  5159      */
  5160     VpcId: String;
  5161     /**
  5162      * The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.
  5163      */
  5164     MaxResults?: MaxResults;
  5165     /**
  5166      * The token for the next set of items to return. (You received this token from a prior call.)
  5167      */
  5168     NextToken?: NextToken;
  5169   }
  5170   export interface DescribeStaleSecurityGroupsResult {
  5171     /**
  5172      * Information about the stale security groups.
  5173      */
  5174     StaleSecurityGroupSet?: StaleSecurityGroupSet;
  5175     /**
  5176      * The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.
  5177      */
  5178     NextToken?: String;
  5179   }
  5180   export interface DescribeSubnetsRequest {
  5181     /**
  5182      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5183      */
  5184     DryRun?: Boolean;
  5185     /**
  5186      * One or more subnet IDs. Default: Describes all your subnets.
  5187      */
  5188     SubnetIds?: SubnetIdStringList;
  5189     /**
  5190      * One or more filters.    availabilityZone - The Availability Zone for the subnet. You can also use availability-zone as the filter name.    available-ip-address-count - The number of IP addresses in the subnet that are available.    cidrBlock - The CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidr-block as the filter names.    defaultForAz - Indicates whether this is the default subnet for the Availability Zone. You can also use default-for-az as the filter name.    state - The state of the subnet (pending | available).    subnet-id - The ID of the subnet.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-id - The ID of the VPC for the subnet.  
  5191      */
  5192     Filters?: FilterList;
  5193   }
  5194   export interface DescribeSubnetsResult {
  5195     /**
  5196      * Information about one or more subnets.
  5197      */
  5198     Subnets?: SubnetList;
  5199   }
  5200   export interface DescribeTagsRequest {
  5201     /**
  5202      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5203      */
  5204     DryRun?: Boolean;
  5205     /**
  5206      * One or more filters.    key - The tag key.    resource-id - The resource ID.    resource-type - The resource type (customer-gateway | dhcp-options | image | instance | internet-gateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpn-connection | vpn-gateway).    value - The tag value.  
  5207      */
  5208     Filters?: FilterList;
  5209     /**
  5210      * The maximum number of results to return in a single call. This value can be between 5 and 1000. To retrieve the remaining results, make another call with the returned NextToken value.
  5211      */
  5212     MaxResults?: Integer;
  5213     /**
  5214      * The token to retrieve the next page of results.
  5215      */
  5216     NextToken?: String;
  5217   }
  5218   export interface DescribeTagsResult {
  5219     /**
  5220      * A list of tags.
  5221      */
  5222     Tags?: TagDescriptionList;
  5223     /**
  5224      * The token to use to retrieve the next page of results. This value is null when there are no more results to return..
  5225      */
  5226     NextToken?: String;
  5227   }
  5228   export interface DescribeVolumeAttributeRequest {
  5229     /**
  5230      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5231      */
  5232     DryRun?: Boolean;
  5233     /**
  5234      * The ID of the volume.
  5235      */
  5236     VolumeId: String;
  5237     /**
  5238      * The instance attribute.
  5239      */
  5240     Attribute?: VolumeAttributeName;
  5241   }
  5242   export interface DescribeVolumeAttributeResult {
  5243     /**
  5244      * The ID of the volume.
  5245      */
  5246     VolumeId?: String;
  5247     /**
  5248      * The state of autoEnableIO attribute.
  5249      */
  5250     AutoEnableIO?: AttributeBooleanValue;
  5251     /**
  5252      * A list of product codes.
  5253      */
  5254     ProductCodes?: ProductCodeList;
  5255   }
  5256   export interface DescribeVolumeStatusRequest {
  5257     /**
  5258      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5259      */
  5260     DryRun?: Boolean;
  5261     /**
  5262      * One or more volume IDs. Default: Describes all your volumes.
  5263      */
  5264     VolumeIds?: VolumeIdStringList;
  5265     /**
  5266      * One or more filters.    action.code - The action code for the event (for example, enable-volume-io).    action.description - A description of the action.    action.event-id - The event ID associated with the action.    availability-zone - The Availability Zone of the instance.    event.description - A description of the event.    event.event-id - The event ID.    event.event-type - The event type (for io-enabled: passed | failed; for io-performance: io-performance:degraded | io-performance:severely-degraded | io-performance:stalled).    event.not-after - The latest end time for the event.    event.not-before - The earliest start time for the event.    volume-status.details-name - The cause for volume-status.status (io-enabled | io-performance).    volume-status.details-status - The status of volume-status.details-name (for io-enabled: passed | failed; for io-performance: normal | degraded | severely-degraded | stalled).    volume-status.status - The status of the volume (ok | impaired | warning | insufficient-data).  
  5267      */
  5268     Filters?: FilterList;
  5269     /**
  5270      * The NextToken value to include in a future DescribeVolumeStatus request. When the results of the request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.
  5271      */
  5272     NextToken?: String;
  5273     /**
  5274      * The maximum number of volume results returned by DescribeVolumeStatus in paginated output. When this parameter is used, the request only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumeStatus returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.
  5275      */
  5276     MaxResults?: Integer;
  5277   }
  5278   export interface DescribeVolumeStatusResult {
  5279     /**
  5280      * A list of volumes.
  5281      */
  5282     VolumeStatuses?: VolumeStatusList;
  5283     /**
  5284      * The token to use to retrieve the next page of results. This value is null when there are no more results to return.
  5285      */
  5286     NextToken?: String;
  5287   }
  5288   export interface DescribeVolumesRequest {
  5289     /**
  5290      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5291      */
  5292     DryRun?: Boolean;
  5293     /**
  5294      * One or more volume IDs.
  5295      */
  5296     VolumeIds?: VolumeIdStringList;
  5297     /**
  5298      * One or more filters.    attachment.attach-time - The time stamp when the attachment initiated.    attachment.delete-on-termination - Whether the volume is deleted on instance termination.    attachment.device - The device name that is exposed to the instance (for example, /dev/sda1).    attachment.instance-id - The ID of the instance the volume is attached to.    attachment.status - The attachment state (attaching | attached | detaching | detached).    availability-zone - The Availability Zone in which the volume was created.    create-time - The time stamp when the volume was created.    encrypted - The encryption status of the volume.    size - The size of the volume, in GiB.    snapshot-id - The snapshot from which the volume was created.    status - The status of the volume (creating | available | in-use | deleting | deleted | error).    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    volume-id - The volume ID.    volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.  
  5299      */
  5300     Filters?: FilterList;
  5301     /**
  5302      * The NextToken value returned from a previous paginated DescribeVolumes request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.
  5303      */
  5304     NextToken?: String;
  5305     /**
  5306      * The maximum number of volume results returned by DescribeVolumes in paginated output. When this parameter is used, DescribeVolumes only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeVolumes request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumes returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.
  5307      */
  5308     MaxResults?: Integer;
  5309   }
  5310   export interface DescribeVolumesResult {
  5311     /**
  5312      * Information about the volumes.
  5313      */
  5314     Volumes?: VolumeList;
  5315     /**
  5316      * The NextToken value to include in a future DescribeVolumes request. When the results of a DescribeVolumes request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.
  5317      */
  5318     NextToken?: String;
  5319   }
  5320   export interface DescribeVpcAttributeRequest {
  5321     /**
  5322      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5323      */
  5324     DryRun?: Boolean;
  5325     /**
  5326      * The ID of the VPC.
  5327      */
  5328     VpcId: String;
  5329     /**
  5330      * The VPC attribute.
  5331      */
  5332     Attribute: VpcAttributeName;
  5333   }
  5334   export interface DescribeVpcAttributeResult {
  5335     /**
  5336      * The ID of the VPC.
  5337      */
  5338     VpcId?: String;
  5339     /**
  5340      * Indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.
  5341      */
  5342     EnableDnsSupport?: AttributeBooleanValue;
  5343     /**
  5344      * Indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.
  5345      */
  5346     EnableDnsHostnames?: AttributeBooleanValue;
  5347   }
  5348   export interface DescribeVpcClassicLinkDnsSupportRequest {
  5349     /**
  5350      * One or more VPC IDs.
  5351      */
  5352     VpcIds?: VpcClassicLinkIdList;
  5353     /**
  5354      * The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.
  5355      */
  5356     MaxResults?: MaxResults;
  5357     /**
  5358      * The token for the next set of items to return. (You received this token from a prior call.)
  5359      */
  5360     NextToken?: NextToken;
  5361   }
  5362   export interface DescribeVpcClassicLinkDnsSupportResult {
  5363     /**
  5364      * Information about the ClassicLink DNS support status of the VPCs.
  5365      */
  5366     Vpcs?: ClassicLinkDnsSupportList;
  5367     /**
  5368      * The token to use when requesting the next set of items.
  5369      */
  5370     NextToken?: NextToken;
  5371   }
  5372   export interface DescribeVpcClassicLinkRequest {
  5373     /**
  5374      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5375      */
  5376     DryRun?: Boolean;
  5377     /**
  5378      * One or more VPCs for which you want to describe the ClassicLink status.
  5379      */
  5380     VpcIds?: VpcClassicLinkIdList;
  5381     /**
  5382      * One or more filters.    is-classic-link-enabled - Whether the VPC is enabled for ClassicLink (true | false).    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.  
  5383      */
  5384     Filters?: FilterList;
  5385   }
  5386   export interface DescribeVpcClassicLinkResult {
  5387     /**
  5388      * The ClassicLink status of one or more VPCs.
  5389      */
  5390     Vpcs?: VpcClassicLinkList;
  5391   }
  5392   export interface DescribeVpcEndpointServicesRequest {
  5393     /**
  5394      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5395      */
  5396     DryRun?: Boolean;
  5397     /**
  5398      * The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1000, we return only 1000 items.
  5399      */
  5400     MaxResults?: Integer;
  5401     /**
  5402      * The token for the next set of items to return. (You received this token from a prior call.)
  5403      */
  5404     NextToken?: String;
  5405   }
  5406   export interface DescribeVpcEndpointServicesResult {
  5407     /**
  5408      * A list of supported AWS services.
  5409      */
  5410     ServiceNames?: ValueStringList;
  5411     /**
  5412      * The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.
  5413      */
  5414     NextToken?: String;
  5415   }
  5416   export interface DescribeVpcEndpointsRequest {
  5417     /**
  5418      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5419      */
  5420     DryRun?: Boolean;
  5421     /**
  5422      * One or more endpoint IDs.
  5423      */
  5424     VpcEndpointIds?: ValueStringList;
  5425     /**
  5426      * One or more filters.    service-name: The name of the AWS service.    vpc-id: The ID of the VPC in which the endpoint resides.    vpc-endpoint-id: The ID of the endpoint.    vpc-endpoint-state: The state of the endpoint. (pending | available | deleting | deleted)  
  5427      */
  5428     Filters?: FilterList;
  5429     /**
  5430      * The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1000, we return only 1000 items.
  5431      */
  5432     MaxResults?: Integer;
  5433     /**
  5434      * The token for the next set of items to return. (You received this token from a prior call.)
  5435      */
  5436     NextToken?: String;
  5437   }
  5438   export interface DescribeVpcEndpointsResult {
  5439     /**
  5440      * Information about the endpoints.
  5441      */
  5442     VpcEndpoints?: VpcEndpointSet;
  5443     /**
  5444      * The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.
  5445      */
  5446     NextToken?: String;
  5447   }
  5448   export interface DescribeVpcPeeringConnectionsRequest {
  5449     /**
  5450      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5451      */
  5452     DryRun?: Boolean;
  5453     /**
  5454      * One or more VPC peering connection IDs. Default: Describes all your VPC peering connections.
  5455      */
  5456     VpcPeeringConnectionIds?: ValueStringList;
  5457     /**
  5458      * One or more filters.    accepter-vpc-info.cidr-block - The CIDR block of the peer VPC.    accepter-vpc-info.owner-id - The AWS account ID of the owner of the peer VPC.    accepter-vpc-info.vpc-id - The ID of the peer VPC.    expiration-time - The expiration date and time for the VPC peering connection.    requester-vpc-info.cidr-block - The CIDR block of the requester's VPC.    requester-vpc-info.owner-id - The AWS account ID of the owner of the requester VPC.    requester-vpc-info.vpc-id - The ID of the requester VPC.    status-code - The status of the VPC peering connection (pending-acceptance | failed | expired | provisioning | active | deleted | rejected).    status-message - A message that provides more information about the status of the VPC peering connection, if applicable.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-peering-connection-id - The ID of the VPC peering connection.  
  5459      */
  5460     Filters?: FilterList;
  5461   }
  5462   export interface DescribeVpcPeeringConnectionsResult {
  5463     /**
  5464      * Information about the VPC peering connections.
  5465      */
  5466     VpcPeeringConnections?: VpcPeeringConnectionList;
  5467   }
  5468   export interface DescribeVpcsRequest {
  5469     /**
  5470      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5471      */
  5472     DryRun?: Boolean;
  5473     /**
  5474      * One or more VPC IDs. Default: Describes all your VPCs.
  5475      */
  5476     VpcIds?: VpcIdStringList;
  5477     /**
  5478      * One or more filters.    cidr - The CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, /28).    dhcp-options-id - The ID of a set of DHCP options.    isDefault - Indicates whether the VPC is the default VPC.    state - The state of the VPC (pending | available).    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    vpc-id - The ID of the VPC.  
  5479      */
  5480     Filters?: FilterList;
  5481   }
  5482   export interface DescribeVpcsResult {
  5483     /**
  5484      * Information about one or more VPCs.
  5485      */
  5486     Vpcs?: VpcList;
  5487   }
  5488   export interface DescribeVpnConnectionsRequest {
  5489     /**
  5490      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5491      */
  5492     DryRun?: Boolean;
  5493     /**
  5494      * One or more VPN connection IDs. Default: Describes your VPN connections.
  5495      */
  5496     VpnConnectionIds?: VpnConnectionIdStringList;
  5497     /**
  5498      * One or more filters.    customer-gateway-configuration - The configuration information for the customer gateway.    customer-gateway-id - The ID of a customer gateway associated with the VPN connection.    state - The state of the VPN connection (pending | available | deleting | deleted).    option.static-routes-only - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).    route.destination-cidr-block - The destination CIDR block. This corresponds to the subnet used in a customer data center.    bgp-asn - The BGP Autonomous System Number (ASN) associated with a BGP device.    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    type - The type of VPN connection. Currently the only supported type is ipsec.1.    vpn-connection-id - The ID of the VPN connection.    vpn-gateway-id - The ID of a virtual private gateway associated with the VPN connection.  
  5499      */
  5500     Filters?: FilterList;
  5501   }
  5502   export interface DescribeVpnConnectionsResult {
  5503     /**
  5504      * Information about one or more VPN connections.
  5505      */
  5506     VpnConnections?: VpnConnectionList;
  5507   }
  5508   export interface DescribeVpnGatewaysRequest {
  5509     /**
  5510      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5511      */
  5512     DryRun?: Boolean;
  5513     /**
  5514      * One or more virtual private gateway IDs. Default: Describes all your virtual private gateways.
  5515      */
  5516     VpnGatewayIds?: VpnGatewayIdStringList;
  5517     /**
  5518      * One or more filters.    attachment.state - The current state of the attachment between the gateway and the VPC (attaching | attached | detaching | detached).    attachment.vpc-id - The ID of an attached VPC.    availability-zone - The Availability Zone for the virtual private gateway (if applicable).    state - The state of the virtual private gateway (pending | available | deleting | deleted).    tag:key=value - The key/value combination of a tag assigned to the resource.    tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.    tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.    type - The type of virtual private gateway. Currently the only supported type is ipsec.1.    vpn-gateway-id - The ID of the virtual private gateway.  
  5519      */
  5520     Filters?: FilterList;
  5521   }
  5522   export interface DescribeVpnGatewaysResult {
  5523     /**
  5524      * Information about one or more virtual private gateways.
  5525      */
  5526     VpnGateways?: VpnGatewayList;
  5527   }
  5528   export interface DetachClassicLinkVpcRequest {
  5529     /**
  5530      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5531      */
  5532     DryRun?: Boolean;
  5533     /**
  5534      * The ID of the instance to unlink from the VPC.
  5535      */
  5536     InstanceId: String;
  5537     /**
  5538      * The ID of the VPC to which the instance is linked.
  5539      */
  5540     VpcId: String;
  5541   }
  5542   export interface DetachClassicLinkVpcResult {
  5543     /**
  5544      * Returns true if the request succeeds; otherwise, it returns an error.
  5545      */
  5546     Return?: Boolean;
  5547   }
  5548   export interface DetachInternetGatewayRequest {
  5549     /**
  5550      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5551      */
  5552     DryRun?: Boolean;
  5553     /**
  5554      * The ID of the Internet gateway.
  5555      */
  5556     InternetGatewayId: String;
  5557     /**
  5558      * The ID of the VPC.
  5559      */
  5560     VpcId: String;
  5561   }
  5562   export interface DetachNetworkInterfaceRequest {
  5563     /**
  5564      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5565      */
  5566     DryRun?: Boolean;
  5567     /**
  5568      * The ID of the attachment.
  5569      */
  5570     AttachmentId: String;
  5571     /**
  5572      * Specifies whether to force a detachment.
  5573      */
  5574     Force?: Boolean;
  5575   }
  5576   export interface DetachVolumeRequest {
  5577     /**
  5578      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5579      */
  5580     DryRun?: Boolean;
  5581     /**
  5582      * The ID of the volume.
  5583      */
  5584     VolumeId: String;
  5585     /**
  5586      * The ID of the instance.
  5587      */
  5588     InstanceId?: String;
  5589     /**
  5590      * The device name.
  5591      */
  5592     Device?: String;
  5593     /**
  5594      * Forces detachment if the previous detachment attempt did not occur cleanly (for example, logging into an instance, unmounting the volume, and detaching normally). This option can lead to data loss or a corrupted file system. Use this option only as a last resort to detach a volume from a failed instance. The instance won't have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures.
  5595      */
  5596     Force?: Boolean;
  5597   }
  5598   export interface DetachVpnGatewayRequest {
  5599     /**
  5600      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5601      */
  5602     DryRun?: Boolean;
  5603     /**
  5604      * The ID of the virtual private gateway.
  5605      */
  5606     VpnGatewayId: String;
  5607     /**
  5608      * The ID of the VPC.
  5609      */
  5610     VpcId: String;
  5611   }
  5612   export type DeviceType = "ebs"|"instance-store"|string;
  5613   export interface DhcpConfiguration {
  5614     /**
  5615      * The name of a DHCP option.
  5616      */
  5617     Key?: String;
  5618     /**
  5619      * One or more values for the DHCP option.
  5620      */
  5621     Values?: DhcpConfigurationValueList;
  5622   }
  5623   export type DhcpConfigurationList = DhcpConfiguration[];
  5624   export type DhcpConfigurationValueList = AttributeValue[];
  5625   export interface DhcpOptions {
  5626     /**
  5627      * The ID of the set of DHCP options.
  5628      */
  5629     DhcpOptionsId?: String;
  5630     /**
  5631      * One or more DHCP options in the set.
  5632      */
  5633     DhcpConfigurations?: DhcpConfigurationList;
  5634     /**
  5635      * Any tags assigned to the DHCP options set.
  5636      */
  5637     Tags?: TagList;
  5638   }
  5639   export type DhcpOptionsIdStringList = String[];
  5640   export type DhcpOptionsList = DhcpOptions[];
  5641   export interface DisableVgwRoutePropagationRequest {
  5642     /**
  5643      * The ID of the route table.
  5644      */
  5645     RouteTableId: String;
  5646     /**
  5647      * The ID of the virtual private gateway.
  5648      */
  5649     GatewayId: String;
  5650   }
  5651   export interface DisableVpcClassicLinkDnsSupportRequest {
  5652     /**
  5653      * The ID of the VPC.
  5654      */
  5655     VpcId?: String;
  5656   }
  5657   export interface DisableVpcClassicLinkDnsSupportResult {
  5658     /**
  5659      * Returns true if the request succeeds; otherwise, it returns an error.
  5660      */
  5661     Return?: Boolean;
  5662   }
  5663   export interface DisableVpcClassicLinkRequest {
  5664     /**
  5665      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5666      */
  5667     DryRun?: Boolean;
  5668     /**
  5669      * The ID of the VPC.
  5670      */
  5671     VpcId: String;
  5672   }
  5673   export interface DisableVpcClassicLinkResult {
  5674     /**
  5675      * Returns true if the request succeeds; otherwise, it returns an error.
  5676      */
  5677     Return?: Boolean;
  5678   }
  5679   export interface DisassociateAddressRequest {
  5680     /**
  5681      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5682      */
  5683     DryRun?: Boolean;
  5684     /**
  5685      * [EC2-Classic] The Elastic IP address. Required for EC2-Classic.
  5686      */
  5687     PublicIp?: String;
  5688     /**
  5689      * [EC2-VPC] The association ID. Required for EC2-VPC.
  5690      */
  5691     AssociationId?: String;
  5692   }
  5693   export interface DisassociateRouteTableRequest {
  5694     /**
  5695      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5696      */
  5697     DryRun?: Boolean;
  5698     /**
  5699      * The association ID representing the current association between the route table and subnet.
  5700      */
  5701     AssociationId: String;
  5702   }
  5703   export interface DiskImage {
  5704     /**
  5705      * Information about the disk image.
  5706      */
  5707     Image?: DiskImageDetail;
  5708     /**
  5709      * A description of the disk image.
  5710      */
  5711     Description?: String;
  5712     /**
  5713      * Information about the volume.
  5714      */
  5715     Volume?: VolumeDetail;
  5716   }
  5717   export interface DiskImageDescription {
  5718     /**
  5719      * The disk image format.
  5720      */
  5721     Format: DiskImageFormat;
  5722     /**
  5723      * The size of the disk image, in GiB.
  5724      */
  5725     Size: Long;
  5726     /**
  5727      * A presigned URL for the import manifest stored in Amazon S3. For information about creating a presigned URL for an Amazon S3 object, read the "Query String Request Authentication Alternative" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide. For information about the import manifest referenced by this API action, see VM Import Manifest.
  5728      */
  5729     ImportManifestUrl: String;
  5730     /**
  5731      * The checksum computed for the disk image.
  5732      */
  5733     Checksum?: String;
  5734   }
  5735   export interface DiskImageDetail {
  5736     /**
  5737      * The disk image format.
  5738      */
  5739     Format: DiskImageFormat;
  5740     /**
  5741      * The size of the disk image, in GiB.
  5742      */
  5743     Bytes: Long;
  5744     /**
  5745      * A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL. For information about creating a presigned URL for an Amazon S3 object, read the "Query String Request Authentication Alternative" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide. For information about the import manifest referenced by this API action, see VM Import Manifest.
  5746      */
  5747     ImportManifestUrl: String;
  5748   }
  5749   export type DiskImageFormat = "VMDK"|"RAW"|"VHD"|string;
  5750   export type DiskImageList = DiskImage[];
  5751   export interface DiskImageVolumeDescription {
  5752     /**
  5753      * The size of the volume, in GiB.
  5754      */
  5755     Size?: Long;
  5756     /**
  5757      * The volume identifier.
  5758      */
  5759     Id: String;
  5760   }
  5761   export type DomainType = "vpc"|"standard"|string;
  5762   export type Double = number;
  5763   export interface EbsBlockDevice {
  5764     /**
  5765      * The ID of the snapshot.
  5766      */
  5767     SnapshotId?: String;
  5768     /**
  5769      * The size of the volume, in GiB. Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 for Provisioned IOPS SSD (io1), 500-16384 for Throughput Optimized HDD (st1), 500-16384 for Cold HDD (sc1), and 1-1024 for Magnetic (standard) volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
  5770      */
  5771     VolumeSize?: Integer;
  5772     /**
  5773      * Indicates whether the EBS volume is deleted on instance termination.
  5774      */
  5775     DeleteOnTermination?: Boolean;
  5776     /**
  5777      * The volume type: gp2, io1, st1, sc1, or standard. Default: standard 
  5778      */
  5779     VolumeType?: VolumeType;
  5780     /**
  5781      * The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide. Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes. Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.
  5782      */
  5783     Iops?: Integer;
  5784     /**
  5785      * Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption.
  5786      */
  5787     Encrypted?: Boolean;
  5788   }
  5789   export interface EbsInstanceBlockDevice {
  5790     /**
  5791      * The ID of the EBS volume.
  5792      */
  5793     VolumeId?: String;
  5794     /**
  5795      * The attachment state.
  5796      */
  5797     Status?: AttachmentStatus;
  5798     /**
  5799      * The time stamp when the attachment initiated.
  5800      */
  5801     AttachTime?: DateTime;
  5802     /**
  5803      * Indicates whether the volume is deleted on instance termination.
  5804      */
  5805     DeleteOnTermination?: Boolean;
  5806   }
  5807   export interface EbsInstanceBlockDeviceSpecification {
  5808     /**
  5809      * The ID of the EBS volume.
  5810      */
  5811     VolumeId?: String;
  5812     /**
  5813      * Indicates whether the volume is deleted on instance termination.
  5814      */
  5815     DeleteOnTermination?: Boolean;
  5816   }
  5817   export interface EnableVgwRoutePropagationRequest {
  5818     /**
  5819      * The ID of the route table.
  5820      */
  5821     RouteTableId: String;
  5822     /**
  5823      * The ID of the virtual private gateway.
  5824      */
  5825     GatewayId: String;
  5826   }
  5827   export interface EnableVolumeIORequest {
  5828     /**
  5829      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5830      */
  5831     DryRun?: Boolean;
  5832     /**
  5833      * The ID of the volume.
  5834      */
  5835     VolumeId: String;
  5836   }
  5837   export interface EnableVpcClassicLinkDnsSupportRequest {
  5838     /**
  5839      * The ID of the VPC.
  5840      */
  5841     VpcId?: String;
  5842   }
  5843   export interface EnableVpcClassicLinkDnsSupportResult {
  5844     /**
  5845      * Returns true if the request succeeds; otherwise, it returns an error.
  5846      */
  5847     Return?: Boolean;
  5848   }
  5849   export interface EnableVpcClassicLinkRequest {
  5850     /**
  5851      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  5852      */
  5853     DryRun?: Boolean;
  5854     /**
  5855      * The ID of the VPC.
  5856      */
  5857     VpcId: String;
  5858   }
  5859   export interface EnableVpcClassicLinkResult {
  5860     /**
  5861      * Returns true if the request succeeds; otherwise, it returns an error.
  5862      */
  5863     Return?: Boolean;
  5864   }
  5865   export type EventCode = "instance-reboot"|"system-reboot"|"system-maintenance"|"instance-retirement"|"instance-stop"|string;
  5866   export interface EventInformation {
  5867     /**
  5868      * The ID of the instance. This information is available only for instanceChange events.
  5869      */
  5870     InstanceId?: String;
  5871     /**
  5872      * The event. The following are the error events.    iamFleetRoleInvalid - The Spot fleet did not have the required permissions either to launch or terminate an instance.    launchSpecTemporarilyBlacklisted - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.    spotFleetRequestConfigurationInvalid - The configuration is not valid. For more information, see the description of the event.    spotInstanceCountLimitExceeded - You've reached the limit on the number of Spot instances that you can launch.   The following are the fleetRequestChange events.    active - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot instances.    cancelled - The Spot fleet is canceled and has no running Spot instances. The Spot fleet will be deleted two days after its instances were terminated.    cancelled_running - The Spot fleet is canceled and will not launch additional Spot instances, but its existing Spot instances continue to run until they are interrupted or terminated.    cancelled_terminating - The Spot fleet is canceled and its Spot instances are terminating.    expired - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with TerminateInstancesWithExpiration set.    modify_in_progress - A request to modify the Spot fleet request was accepted and is in progress.    modify_successful - The Spot fleet request was modified.    price_update - The bid price for a launch configuration was adjusted because it was too high. This change is permanent.    submitted - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot instances.   The following are the instanceChange events.    launched - A bid was fulfilled and a new instance was launched.    terminated - An instance was terminated by the user.  
  5873      */
  5874     EventSubType?: String;
  5875     /**
  5876      * The description of the event.
  5877      */
  5878     EventDescription?: String;
  5879   }
  5880   export type EventType = "instanceChange"|"fleetRequestChange"|"error"|string;
  5881   export type ExcessCapacityTerminationPolicy = "noTermination"|"default"|string;
  5882   export type ExecutableByStringList = String[];
  5883   export type ExportEnvironment = "citrix"|"vmware"|"microsoft"|string;
  5884   export interface ExportTask {
  5885     /**
  5886      * The ID of the export task.
  5887      */
  5888     ExportTaskId?: String;
  5889     /**
  5890      * A description of the resource being exported.
  5891      */
  5892     Description?: String;
  5893     /**
  5894      * The state of the export task.
  5895      */
  5896     State?: ExportTaskState;
  5897     /**
  5898      * The status message related to the export task.
  5899      */
  5900     StatusMessage?: String;
  5901     /**
  5902      * Information about the instance to export.
  5903      */
  5904     InstanceExportDetails?: InstanceExportDetails;
  5905     /**
  5906      * Information about the export task.
  5907      */
  5908     ExportToS3Task?: ExportToS3Task;
  5909   }
  5910   export type ExportTaskIdStringList = String[];
  5911   export type ExportTaskList = ExportTask[];
  5912   export type ExportTaskState = "active"|"cancelling"|"cancelled"|"completed"|string;
  5913   export interface ExportToS3Task {
  5914     /**
  5915      * The format for the exported image.
  5916      */
  5917     DiskImageFormat?: DiskImageFormat;
  5918     /**
  5919      * The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.
  5920      */
  5921     ContainerFormat?: ContainerFormat;
  5922     /**
  5923      * The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.
  5924      */
  5925     S3Bucket?: String;
  5926     /**
  5927      * The encryption key for your S3 bucket.
  5928      */
  5929     S3Key?: String;
  5930   }
  5931   export interface ExportToS3TaskSpecification {
  5932     /**
  5933      * The format for the exported image.
  5934      */
  5935     DiskImageFormat?: DiskImageFormat;
  5936     /**
  5937      * The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.
  5938      */
  5939     ContainerFormat?: ContainerFormat;
  5940     /**
  5941      * The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.
  5942      */
  5943     S3Bucket?: String;
  5944     /**
  5945      * The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.
  5946      */
  5947     S3Prefix?: String;
  5948   }
  5949   export interface Filter {
  5950     /**
  5951      * The name of the filter. Filter names are case-sensitive.
  5952      */
  5953     Name?: String;
  5954     /**
  5955      * One or more filter values. Filter values are case-sensitive.
  5956      */
  5957     Values?: ValueStringList;
  5958   }
  5959   export type FilterList = Filter[];
  5960   export type FleetType = "request"|"maintain"|string;
  5961   export type Float = number;
  5962   export interface FlowLog {
  5963     /**
  5964      * The date and time the flow log was created.
  5965      */
  5966     CreationTime?: DateTime;
  5967     /**
  5968      * The flow log ID.
  5969      */
  5970     FlowLogId?: String;
  5971     /**
  5972      * The status of the flow log (ACTIVE).
  5973      */
  5974     FlowLogStatus?: String;
  5975     /**
  5976      * The ID of the resource on which the flow log was created.
  5977      */
  5978     ResourceId?: String;
  5979     /**
  5980      * The type of traffic captured for the flow log.
  5981      */
  5982     TrafficType?: TrafficType;
  5983     /**
  5984      * The name of the flow log group.
  5985      */
  5986     LogGroupName?: String;
  5987     /**
  5988      * The status of the logs delivery (SUCCESS | FAILED).
  5989      */
  5990     DeliverLogsStatus?: String;
  5991     /**
  5992      * Information about the error that occurred. Rate limited indicates that CloudWatch logs throttling has been applied for one or more network interfaces, or that you've reached the limit on the number of CloudWatch Logs log groups that you can create. Access error indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. Unknown error indicates an internal error.
  5993      */
  5994     DeliverLogsErrorMessage?: String;
  5995     /**
  5996      * The ARN of the IAM role that posts logs to CloudWatch Logs.
  5997      */
  5998     DeliverLogsPermissionArn?: String;
  5999   }
  6000   export type FlowLogSet = FlowLog[];
  6001   export type FlowLogsResourceType = "VPC"|"Subnet"|"NetworkInterface"|string;
  6002   export type GatewayType = "ipsec.1"|string;
  6003   export interface GetConsoleOutputRequest {
  6004     /**
  6005      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6006      */
  6007     DryRun?: Boolean;
  6008     /**
  6009      * The ID of the instance.
  6010      */
  6011     InstanceId: String;
  6012   }
  6013   export interface GetConsoleOutputResult {
  6014     /**
  6015      * The ID of the instance.
  6016      */
  6017     InstanceId?: String;
  6018     /**
  6019      * The time the output was last updated.
  6020      */
  6021     Timestamp?: DateTime;
  6022     /**
  6023      * The console output, Base64-encoded. If using a command line tool, the tool decodes the output for you.
  6024      */
  6025     Output?: String;
  6026   }
  6027   export interface GetConsoleScreenshotRequest {
  6028     /**
  6029      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6030      */
  6031     DryRun?: Boolean;
  6032     /**
  6033      * The ID of the instance.
  6034      */
  6035     InstanceId: String;
  6036     /**
  6037      * When set to true, acts as keystroke input and wakes up an instance that's in standby or "sleep" mode.
  6038      */
  6039     WakeUp?: Boolean;
  6040   }
  6041   export interface GetConsoleScreenshotResult {
  6042     /**
  6043      * The ID of the instance.
  6044      */
  6045     InstanceId?: String;
  6046     /**
  6047      * The data that comprises the image.
  6048      */
  6049     ImageData?: String;
  6050   }
  6051   export interface GetHostReservationPurchasePreviewRequest {
  6052     /**
  6053      * The offering ID of the reservation.
  6054      */
  6055     OfferingId: String;
  6056     /**
  6057      * The ID/s of the Dedicated Host/s that the reservation will be associated with.
  6058      */
  6059     HostIdSet: RequestHostIdSet;
  6060   }
  6061   export interface GetHostReservationPurchasePreviewResult {
  6062     /**
  6063      * The purchase information of the Dedicated Host Reservation and the Dedicated Hosts associated with it.
  6064      */
  6065     Purchase?: PurchaseSet;
  6066     /**
  6067      * The potential total upfront price. This is billed immediately.
  6068      */
  6069     TotalUpfrontPrice?: String;
  6070     /**
  6071      * The potential total hourly price of the reservation per hour.
  6072      */
  6073     TotalHourlyPrice?: String;
  6074     /**
  6075      * The currency in which the totalUpfrontPrice and totalHourlyPrice amounts are specified. At this time, the only supported currency is USD.
  6076      */
  6077     CurrencyCode?: CurrencyCodeValues;
  6078   }
  6079   export interface GetPasswordDataRequest {
  6080     /**
  6081      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6082      */
  6083     DryRun?: Boolean;
  6084     /**
  6085      * The ID of the Windows instance.
  6086      */
  6087     InstanceId: String;
  6088   }
  6089   export interface GetPasswordDataResult {
  6090     /**
  6091      * The ID of the Windows instance.
  6092      */
  6093     InstanceId?: String;
  6094     /**
  6095      * The time the data was last updated.
  6096      */
  6097     Timestamp?: DateTime;
  6098     /**
  6099      * The password of the instance.
  6100      */
  6101     PasswordData?: String;
  6102   }
  6103   export interface GetReservedInstancesExchangeQuoteRequest {
  6104     /**
  6105      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6106      */
  6107     DryRun?: Boolean;
  6108     /**
  6109      * The ID/s of the Convertible Reserved Instances you want to exchange.
  6110      */
  6111     ReservedInstanceIds: ReservedInstanceIdSet;
  6112     /**
  6113      * The configuration requirements of the Convertible Reserved Instances you want in exchange for your current Convertible Reserved Instances.
  6114      */
  6115     TargetConfigurations?: TargetConfigurationRequestSet;
  6116   }
  6117   export interface GetReservedInstancesExchangeQuoteResult {
  6118     /**
  6119      * The configuration of your Convertible Reserved Instances.
  6120      */
  6121     ReservedInstanceValueSet?: ReservedInstanceReservationValueSet;
  6122     ReservedInstanceValueRollup?: ReservationValue;
  6123     /**
  6124      * The values of the target Convertible Reserved Instances.
  6125      */
  6126     TargetConfigurationValueSet?: TargetReservationValueSet;
  6127     TargetConfigurationValueRollup?: ReservationValue;
  6128     /**
  6129      * The total true upfront charge for the exchange.
  6130      */
  6131     PaymentDue?: String;
  6132     /**
  6133      * The currency of the transaction.
  6134      */
  6135     CurrencyCode?: String;
  6136     /**
  6137      * The new end date of the reservation term.
  6138      */
  6139     OutputReservedInstancesWillExpireAt?: DateTime;
  6140     /**
  6141      * If true, the exchange is valid. If false, the exchange cannot be performed.
  6142      */
  6143     IsValidExchange?: Boolean;
  6144     /**
  6145      * Describes the reason why the exchange can not be completed.
  6146      */
  6147     ValidationFailureReason?: String;
  6148   }
  6149   export type GroupIdStringList = String[];
  6150   export interface GroupIdentifier {
  6151     /**
  6152      * The name of the security group.
  6153      */
  6154     GroupName?: String;
  6155     /**
  6156      * The ID of the security group.
  6157      */
  6158     GroupId?: String;
  6159   }
  6160   export type GroupIdentifierList = GroupIdentifier[];
  6161   export type GroupIds = String[];
  6162   export type GroupNameStringList = String[];
  6163   export interface HistoryRecord {
  6164     /**
  6165      * The date and time of the event, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
  6166      */
  6167     Timestamp: DateTime;
  6168     /**
  6169      * The event type.    error - Indicates an error with the Spot fleet request.    fleetRequestChange - Indicates a change in the status or configuration of the Spot fleet request.    instanceChange - Indicates that an instance was launched or terminated.  
  6170      */
  6171     EventType: EventType;
  6172     /**
  6173      * Information about the event.
  6174      */
  6175     EventInformation: EventInformation;
  6176   }
  6177   export type HistoryRecords = HistoryRecord[];
  6178   export interface Host {
  6179     /**
  6180      * The ID of the Dedicated Host.
  6181      */
  6182     HostId?: String;
  6183     /**
  6184      * Whether auto-placement is on or off.
  6185      */
  6186     AutoPlacement?: AutoPlacement;
  6187     /**
  6188      * The reservation ID of the Dedicated Host. This returns a null response if the Dedicated Host doesn't have an associated reservation.
  6189      */
  6190     HostReservationId?: String;
  6191     /**
  6192      * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide. 
  6193      */
  6194     ClientToken?: String;
  6195     /**
  6196      * The hardware specifications of the Dedicated Host.
  6197      */
  6198     HostProperties?: HostProperties;
  6199     /**
  6200      * The Dedicated Host's state.
  6201      */
  6202     State?: AllocationState;
  6203     /**
  6204      * The Availability Zone of the Dedicated Host.
  6205      */
  6206     AvailabilityZone?: String;
  6207     /**
  6208      * The IDs and instance type that are currently running on the Dedicated Host.
  6209      */
  6210     Instances?: HostInstanceList;
  6211     /**
  6212      * The number of new instances that can be launched onto the Dedicated Host.
  6213      */
  6214     AvailableCapacity?: AvailableCapacity;
  6215   }
  6216   export interface HostInstance {
  6217     /**
  6218      * the IDs of instances that are running on the Dedicated Host.
  6219      */
  6220     InstanceId?: String;
  6221     /**
  6222      * The instance type size (for example, m3.medium) of the running instance.
  6223      */
  6224     InstanceType?: String;
  6225   }
  6226   export type HostInstanceList = HostInstance[];
  6227   export type HostList = Host[];
  6228   export interface HostOffering {
  6229     /**
  6230      * The ID of the offering.
  6231      */
  6232     OfferingId?: String;
  6233     /**
  6234      * The instance family of the offering.
  6235      */
  6236     InstanceFamily?: String;
  6237     /**
  6238      * The available payment option.
  6239      */
  6240     PaymentOption?: PaymentOption;
  6241     /**
  6242      * The upfront price of the offering. Does not apply to No Upfront offerings.
  6243      */
  6244     UpfrontPrice?: String;
  6245     /**
  6246      * The hourly price of the offering.
  6247      */
  6248     HourlyPrice?: String;
  6249     /**
  6250      * The currency of the offering.
  6251      */
  6252     CurrencyCode?: CurrencyCodeValues;
  6253     /**
  6254      * The duration of the offering (in seconds).
  6255      */
  6256     Duration?: Integer;
  6257   }
  6258   export type HostOfferingSet = HostOffering[];
  6259   export interface HostProperties {
  6260     /**
  6261      * The number of sockets on the Dedicated Host.
  6262      */
  6263     Sockets?: Integer;
  6264     /**
  6265      * The number of cores on the Dedicated Host.
  6266      */
  6267     Cores?: Integer;
  6268     /**
  6269      * The number of vCPUs on the Dedicated Host.
  6270      */
  6271     TotalVCpus?: Integer;
  6272     /**
  6273      * The instance type size that the Dedicated Host supports (for example, m3.medium).
  6274      */
  6275     InstanceType?: String;
  6276   }
  6277   export interface HostReservation {
  6278     /**
  6279      * The ID of the reservation that specifies the associated Dedicated Hosts.
  6280      */
  6281     HostReservationId?: String;
  6282     /**
  6283      * The IDs of the Dedicated Hosts associated with the reservation.
  6284      */
  6285     HostIdSet?: ResponseHostIdSet;
  6286     /**
  6287      * The ID of the reservation. This remains the same regardless of which Dedicated Hosts are associated with it.
  6288      */
  6289     OfferingId?: String;
  6290     /**
  6291      * The instance family of the Dedicated Host Reservation. The instance family on the Dedicated Host must be the same in order for it to benefit from the reservation.
  6292      */
  6293     InstanceFamily?: String;
  6294     /**
  6295      * The payment option selected for this reservation.
  6296      */
  6297     PaymentOption?: PaymentOption;
  6298     /**
  6299      * The hourly price of the reservation.
  6300      */
  6301     HourlyPrice?: String;
  6302     /**
  6303      * The upfront price of the reservation.
  6304      */
  6305     UpfrontPrice?: String;
  6306     /**
  6307      * The currency in which the upfrontPrice and hourlyPrice amounts are specified. At this time, the only supported currency is USD.
  6308      */
  6309     CurrencyCode?: CurrencyCodeValues;
  6310     /**
  6311      * The number of Dedicated Hosts the reservation is associated with.
  6312      */
  6313     Count?: Integer;
  6314     /**
  6315      * The length of the reservation's term, specified in seconds. Can be 31536000 (1 year) | 94608000 (3 years).
  6316      */
  6317     Duration?: Integer;
  6318     /**
  6319      * The date and time that the reservation ends.
  6320      */
  6321     End?: DateTime;
  6322     /**
  6323      * The date and time that the reservation started.
  6324      */
  6325     Start?: DateTime;
  6326     /**
  6327      * The state of the reservation.
  6328      */
  6329     State?: ReservationState;
  6330   }
  6331   export type HostReservationIdSet = String[];
  6332   export type HostReservationSet = HostReservation[];
  6333   export type HostTenancy = "dedicated"|"host"|string;
  6334   export type HypervisorType = "ovm"|"xen"|string;
  6335   export interface IamInstanceProfile {
  6336     /**
  6337      * The Amazon Resource Name (ARN) of the instance profile.
  6338      */
  6339     Arn?: String;
  6340     /**
  6341      * The ID of the instance profile.
  6342      */
  6343     Id?: String;
  6344   }
  6345   export interface IamInstanceProfileSpecification {
  6346     /**
  6347      * The Amazon Resource Name (ARN) of the instance profile.
  6348      */
  6349     Arn?: String;
  6350     /**
  6351      * The name of the instance profile.
  6352      */
  6353     Name?: String;
  6354   }
  6355   export interface IcmpTypeCode {
  6356     /**
  6357      * The ICMP code. A value of -1 means all codes for the specified ICMP type.
  6358      */
  6359     Type?: Integer;
  6360     /**
  6361      * The ICMP type. A value of -1 means all types.
  6362      */
  6363     Code?: Integer;
  6364   }
  6365   export interface IdFormat {
  6366     /**
  6367      * The type of resource.
  6368      */
  6369     Resource?: String;
  6370     /**
  6371      * Indicates whether longer IDs (17-character IDs) are enabled for the resource.
  6372      */
  6373     UseLongIds?: Boolean;
  6374     /**
  6375      * The date in UTC at which you are permanently switched over to using longer IDs. If a deadline is not yet available for this resource type, this field is not returned.
  6376      */
  6377     Deadline?: DateTime;
  6378   }
  6379   export type IdFormatList = IdFormat[];
  6380   export interface Image {
  6381     /**
  6382      * The ID of the AMI.
  6383      */
  6384     ImageId?: String;
  6385     /**
  6386      * The location of the AMI.
  6387      */
  6388     ImageLocation?: String;
  6389     /**
  6390      * The current state of the AMI. If the state is available, the image is successfully registered and can be used to launch an instance.
  6391      */
  6392     State?: ImageState;
  6393     /**
  6394      * The AWS account ID of the image owner.
  6395      */
  6396     OwnerId?: String;
  6397     /**
  6398      * The date and time the image was created.
  6399      */
  6400     CreationDate?: String;
  6401     /**
  6402      * Indicates whether the image has public launch permissions. The value is true if this image has public launch permissions or false if it has only implicit and explicit launch permissions.
  6403      */
  6404     Public?: Boolean;
  6405     /**
  6406      * Any product codes associated with the AMI.
  6407      */
  6408     ProductCodes?: ProductCodeList;
  6409     /**
  6410      * The architecture of the image.
  6411      */
  6412     Architecture?: ArchitectureValues;
  6413     /**
  6414      * The type of image.
  6415      */
  6416     ImageType?: ImageTypeValues;
  6417     /**
  6418      * The kernel associated with the image, if any. Only applicable for machine images.
  6419      */
  6420     KernelId?: String;
  6421     /**
  6422      * The RAM disk associated with the image, if any. Only applicable for machine images.
  6423      */
  6424     RamdiskId?: String;
  6425     /**
  6426      * The value is Windows for Windows AMIs; otherwise blank.
  6427      */
  6428     Platform?: PlatformValues;
  6429     /**
  6430      * Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.
  6431      */
  6432     SriovNetSupport?: String;
  6433     /**
  6434      * Specifies whether enhanced networking with ENA is enabled.
  6435      */
  6436     EnaSupport?: Boolean;
  6437     /**
  6438      * The reason for the state change.
  6439      */
  6440     StateReason?: StateReason;
  6441     /**
  6442      * The AWS account alias (for example, amazon, self) or the AWS account ID of the AMI owner.
  6443      */
  6444     ImageOwnerAlias?: String;
  6445     /**
  6446      * The name of the AMI that was provided during image creation.
  6447      */
  6448     Name?: String;
  6449     /**
  6450      * The description of the AMI that was provided during image creation.
  6451      */
  6452     Description?: String;
  6453     /**
  6454      * The type of root device used by the AMI. The AMI can use an EBS volume or an instance store volume.
  6455      */
  6456     RootDeviceType?: DeviceType;
  6457     /**
  6458      * The device name of the root device (for example, /dev/sda1 or /dev/xvda).
  6459      */
  6460     RootDeviceName?: String;
  6461     /**
  6462      * Any block device mapping entries.
  6463      */
  6464     BlockDeviceMappings?: BlockDeviceMappingList;
  6465     /**
  6466      * The type of virtualization of the AMI.
  6467      */
  6468     VirtualizationType?: VirtualizationType;
  6469     /**
  6470      * Any tags assigned to the image.
  6471      */
  6472     Tags?: TagList;
  6473     /**
  6474      * The hypervisor type of the image.
  6475      */
  6476     Hypervisor?: HypervisorType;
  6477   }
  6478   export interface ImageAttribute {
  6479     /**
  6480      * The ID of the AMI.
  6481      */
  6482     ImageId?: String;
  6483     /**
  6484      * One or more launch permissions.
  6485      */
  6486     LaunchPermissions?: LaunchPermissionList;
  6487     /**
  6488      * One or more product codes.
  6489      */
  6490     ProductCodes?: ProductCodeList;
  6491     /**
  6492      * The kernel ID.
  6493      */
  6494     KernelId?: AttributeValue;
  6495     /**
  6496      * The RAM disk ID.
  6497      */
  6498     RamdiskId?: AttributeValue;
  6499     /**
  6500      * A description for the AMI.
  6501      */
  6502     Description?: AttributeValue;
  6503     /**
  6504      * Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.
  6505      */
  6506     SriovNetSupport?: AttributeValue;
  6507     /**
  6508      * One or more block device mapping entries.
  6509      */
  6510     BlockDeviceMappings?: BlockDeviceMappingList;
  6511   }
  6512   export type ImageAttributeName = "description"|"kernel"|"ramdisk"|"launchPermission"|"productCodes"|"blockDeviceMapping"|"sriovNetSupport"|string;
  6513   export interface ImageDiskContainer {
  6514     /**
  6515      * The description of the disk image.
  6516      */
  6517     Description?: String;
  6518     /**
  6519      * The format of the disk image being imported. Valid values: RAW | VHD | VMDK | OVA 
  6520      */
  6521     Format?: String;
  6522     /**
  6523      * The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)
  6524      */
  6525     Url?: String;
  6526     /**
  6527      * The S3 bucket for the disk image.
  6528      */
  6529     UserBucket?: UserBucket;
  6530     /**
  6531      * The block device mapping for the disk.
  6532      */
  6533     DeviceName?: String;
  6534     /**
  6535      * The ID of the EBS snapshot to be used for importing the snapshot.
  6536      */
  6537     SnapshotId?: String;
  6538   }
  6539   export type ImageDiskContainerList = ImageDiskContainer[];
  6540   export type ImageIdStringList = String[];
  6541   export type ImageList = Image[];
  6542   export type ImageState = "pending"|"available"|"invalid"|"deregistered"|"transient"|"failed"|"error"|string;
  6543   export type ImageTypeValues = "machine"|"kernel"|"ramdisk"|string;
  6544   export interface ImportImageRequest {
  6545     /**
  6546      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6547      */
  6548     DryRun?: Boolean;
  6549     /**
  6550      * A description string for the import image task.
  6551      */
  6552     Description?: String;
  6553     /**
  6554      * Information about the disk containers.
  6555      */
  6556     DiskContainers?: ImageDiskContainerList;
  6557     /**
  6558      * The license type to be used for the Amazon Machine Image (AMI) after importing.  Note: You may only use BYOL if you have existing licenses with rights to use these licenses in a third party cloud like AWS. For more information, see Prerequisites in the VM Import/Export User Guide. Valid values: AWS | BYOL 
  6559      */
  6560     LicenseType?: String;
  6561     /**
  6562      * The target hypervisor platform. Valid values: xen 
  6563      */
  6564     Hypervisor?: String;
  6565     /**
  6566      * The architecture of the virtual machine. Valid values: i386 | x86_64 
  6567      */
  6568     Architecture?: String;
  6569     /**
  6570      * The operating system of the virtual machine. Valid values: Windows | Linux 
  6571      */
  6572     Platform?: String;
  6573     /**
  6574      * The client-specific data.
  6575      */
  6576     ClientData?: ClientData;
  6577     /**
  6578      * The token to enable idempotency for VM import requests.
  6579      */
  6580     ClientToken?: String;
  6581     /**
  6582      * The name of the role to use when not using the default role, 'vmimport'.
  6583      */
  6584     RoleName?: String;
  6585   }
  6586   export interface ImportImageResult {
  6587     /**
  6588      * The task ID of the import image task.
  6589      */
  6590     ImportTaskId?: String;
  6591     /**
  6592      * The architecture of the virtual machine.
  6593      */
  6594     Architecture?: String;
  6595     /**
  6596      * The license type of the virtual machine.
  6597      */
  6598     LicenseType?: String;
  6599     /**
  6600      * The operating system of the virtual machine.
  6601      */
  6602     Platform?: String;
  6603     /**
  6604      * The target hypervisor of the import task.
  6605      */
  6606     Hypervisor?: String;
  6607     /**
  6608      * A description of the import task.
  6609      */
  6610     Description?: String;
  6611     /**
  6612      * Information about the snapshots.
  6613      */
  6614     SnapshotDetails?: SnapshotDetailList;
  6615     /**
  6616      * The ID of the Amazon Machine Image (AMI) created by the import task.
  6617      */
  6618     ImageId?: String;
  6619     /**
  6620      * The progress of the task.
  6621      */
  6622     Progress?: String;
  6623     /**
  6624      * A detailed status message of the import task.
  6625      */
  6626     StatusMessage?: String;
  6627     /**
  6628      * A brief status of the task.
  6629      */
  6630     Status?: String;
  6631   }
  6632   export interface ImportImageTask {
  6633     /**
  6634      * The ID of the import image task.
  6635      */
  6636     ImportTaskId?: String;
  6637     /**
  6638      * The architecture of the virtual machine. Valid values: i386 | x86_64 
  6639      */
  6640     Architecture?: String;
  6641     /**
  6642      * The license type of the virtual machine.
  6643      */
  6644     LicenseType?: String;
  6645     /**
  6646      * The description string for the import image task.
  6647      */
  6648     Platform?: String;
  6649     /**
  6650      * The target hypervisor for the import task. Valid values: xen 
  6651      */
  6652     Hypervisor?: String;
  6653     /**
  6654      * A description of the import task.
  6655      */
  6656     Description?: String;
  6657     /**
  6658      * Information about the snapshots.
  6659      */
  6660     SnapshotDetails?: SnapshotDetailList;
  6661     /**
  6662      * The ID of the Amazon Machine Image (AMI) of the imported virtual machine.
  6663      */
  6664     ImageId?: String;
  6665     /**
  6666      * The percentage of progress of the import image task.
  6667      */
  6668     Progress?: String;
  6669     /**
  6670      * A descriptive status message for the import image task.
  6671      */
  6672     StatusMessage?: String;
  6673     /**
  6674      * A brief status for the import image task.
  6675      */
  6676     Status?: String;
  6677   }
  6678   export type ImportImageTaskList = ImportImageTask[];
  6679   export interface ImportInstanceLaunchSpecification {
  6680     /**
  6681      * The architecture of the instance.
  6682      */
  6683     Architecture?: ArchitectureValues;
  6684     /**
  6685      * One or more security group names.
  6686      */
  6687     GroupNames?: SecurityGroupStringList;
  6688     /**
  6689      * One or more security group IDs.
  6690      */
  6691     GroupIds?: SecurityGroupIdStringList;
  6692     /**
  6693      * Reserved.
  6694      */
  6695     AdditionalInfo?: String;
  6696     /**
  6697      * The user data to make available to the instance. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
  6698      */
  6699     UserData?: UserData;
  6700     /**
  6701      * The instance type. For more information about the instance types that you can import, see Instance Types in the VM Import/Export User Guide.
  6702      */
  6703     InstanceType?: InstanceType;
  6704     /**
  6705      * The placement information for the instance.
  6706      */
  6707     Placement?: Placement;
  6708     /**
  6709      * Indicates whether monitoring is enabled.
  6710      */
  6711     Monitoring?: Boolean;
  6712     /**
  6713      * [EC2-VPC] The ID of the subnet in which to launch the instance.
  6714      */
  6715     SubnetId?: String;
  6716     /**
  6717      * Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
  6718      */
  6719     InstanceInitiatedShutdownBehavior?: ShutdownBehavior;
  6720     /**
  6721      * [EC2-VPC] An available IP address from the IP address range of the subnet.
  6722      */
  6723     PrivateIpAddress?: String;
  6724   }
  6725   export interface ImportInstanceRequest {
  6726     /**
  6727      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6728      */
  6729     DryRun?: Boolean;
  6730     /**
  6731      * A description for the instance being imported.
  6732      */
  6733     Description?: String;
  6734     /**
  6735      * The launch specification.
  6736      */
  6737     LaunchSpecification?: ImportInstanceLaunchSpecification;
  6738     /**
  6739      * The disk image.
  6740      */
  6741     DiskImages?: DiskImageList;
  6742     /**
  6743      * The instance operating system.
  6744      */
  6745     Platform: PlatformValues;
  6746   }
  6747   export interface ImportInstanceResult {
  6748     /**
  6749      * Information about the conversion task.
  6750      */
  6751     ConversionTask?: ConversionTask;
  6752   }
  6753   export interface ImportInstanceTaskDetails {
  6754     /**
  6755      * One or more volumes.
  6756      */
  6757     Volumes: ImportInstanceVolumeDetailSet;
  6758     /**
  6759      * The ID of the instance.
  6760      */
  6761     InstanceId?: String;
  6762     /**
  6763      * The instance operating system.
  6764      */
  6765     Platform?: PlatformValues;
  6766     /**
  6767      * A description of the task.
  6768      */
  6769     Description?: String;
  6770   }
  6771   export interface ImportInstanceVolumeDetailItem {
  6772     /**
  6773      * The number of bytes converted so far.
  6774      */
  6775     BytesConverted: Long;
  6776     /**
  6777      * The Availability Zone where the resulting instance will reside.
  6778      */
  6779     AvailabilityZone: String;
  6780     /**
  6781      * The image.
  6782      */
  6783     Image: DiskImageDescription;
  6784     /**
  6785      * The volume.
  6786      */
  6787     Volume: DiskImageVolumeDescription;
  6788     /**
  6789      * The status of the import of this particular disk image.
  6790      */
  6791     Status: String;
  6792     /**
  6793      * The status information or errors related to the disk image.
  6794      */
  6795     StatusMessage?: String;
  6796     /**
  6797      * A description of the task.
  6798      */
  6799     Description?: String;
  6800   }
  6801   export type ImportInstanceVolumeDetailSet = ImportInstanceVolumeDetailItem[];
  6802   export interface ImportKeyPairRequest {
  6803     /**
  6804      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6805      */
  6806     DryRun?: Boolean;
  6807     /**
  6808      * A unique name for the key pair.
  6809      */
  6810     KeyName: String;
  6811     /**
  6812      * The public key. For API calls, the text must be base64-encoded. For command line tools, base64 encoding is performed for you.
  6813      */
  6814     PublicKeyMaterial: _Blob;
  6815   }
  6816   export interface ImportKeyPairResult {
  6817     /**
  6818      * The key pair name you provided.
  6819      */
  6820     KeyName?: String;
  6821     /**
  6822      * The MD5 public key fingerprint as specified in section 4 of RFC 4716.
  6823      */
  6824     KeyFingerprint?: String;
  6825   }
  6826   export interface ImportSnapshotRequest {
  6827     /**
  6828      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6829      */
  6830     DryRun?: Boolean;
  6831     /**
  6832      * The description string for the import snapshot task.
  6833      */
  6834     Description?: String;
  6835     /**
  6836      * Information about the disk container.
  6837      */
  6838     DiskContainer?: SnapshotDiskContainer;
  6839     /**
  6840      * The client-specific data.
  6841      */
  6842     ClientData?: ClientData;
  6843     /**
  6844      * Token to enable idempotency for VM import requests.
  6845      */
  6846     ClientToken?: String;
  6847     /**
  6848      * The name of the role to use when not using the default role, 'vmimport'.
  6849      */
  6850     RoleName?: String;
  6851   }
  6852   export interface ImportSnapshotResult {
  6853     /**
  6854      * The ID of the import snapshot task.
  6855      */
  6856     ImportTaskId?: String;
  6857     /**
  6858      * Information about the import snapshot task.
  6859      */
  6860     SnapshotTaskDetail?: SnapshotTaskDetail;
  6861     /**
  6862      * A description of the import snapshot task.
  6863      */
  6864     Description?: String;
  6865   }
  6866   export interface ImportSnapshotTask {
  6867     /**
  6868      * The ID of the import snapshot task.
  6869      */
  6870     ImportTaskId?: String;
  6871     /**
  6872      * Describes an import snapshot task.
  6873      */
  6874     SnapshotTaskDetail?: SnapshotTaskDetail;
  6875     /**
  6876      * A description of the import snapshot task.
  6877      */
  6878     Description?: String;
  6879   }
  6880   export type ImportSnapshotTaskList = ImportSnapshotTask[];
  6881   export type ImportTaskIdList = String[];
  6882   export interface ImportVolumeRequest {
  6883     /**
  6884      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  6885      */
  6886     DryRun?: Boolean;
  6887     /**
  6888      * The Availability Zone for the resulting EBS volume.
  6889      */
  6890     AvailabilityZone: String;
  6891     /**
  6892      * The disk image.
  6893      */
  6894     Image: DiskImageDetail;
  6895     /**
  6896      * A description of the volume.
  6897      */
  6898     Description?: String;
  6899     /**
  6900      * The volume size.
  6901      */
  6902     Volume: VolumeDetail;
  6903   }
  6904   export interface ImportVolumeResult {
  6905     /**
  6906      * Information about the conversion task.
  6907      */
  6908     ConversionTask?: ConversionTask;
  6909   }
  6910   export interface ImportVolumeTaskDetails {
  6911     /**
  6912      * The number of bytes converted so far.
  6913      */
  6914     BytesConverted: Long;
  6915     /**
  6916      * The Availability Zone where the resulting volume will reside.
  6917      */
  6918     AvailabilityZone: String;
  6919     /**
  6920      * The description you provided when starting the import volume task.
  6921      */
  6922     Description?: String;
  6923     /**
  6924      * The image.
  6925      */
  6926     Image: DiskImageDescription;
  6927     /**
  6928      * The volume.
  6929      */
  6930     Volume: DiskImageVolumeDescription;
  6931   }
  6932   export interface Instance {
  6933     /**
  6934      * The ID of the instance.
  6935      */
  6936     InstanceId?: String;
  6937     /**
  6938      * The ID of the AMI used to launch the instance.
  6939      */
  6940     ImageId?: String;
  6941     /**
  6942      * The current state of the instance.
  6943      */
  6944     State?: InstanceState;
  6945     /**
  6946      * The private DNS name assigned to the instance. This DNS name can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.
  6947      */
  6948     PrivateDnsName?: String;
  6949     /**
  6950      * The public DNS name assigned to the instance. This name is not available until the instance enters the running state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.
  6951      */
  6952     PublicDnsName?: String;
  6953     /**
  6954      * The reason for the most recent state transition. This might be an empty string.
  6955      */
  6956     StateTransitionReason?: String;
  6957     /**
  6958      * The name of the key pair, if this instance was launched with an associated key pair.
  6959      */
  6960     KeyName?: String;
  6961     /**
  6962      * The AMI launch index, which can be used to find this instance in the launch group.
  6963      */
  6964     AmiLaunchIndex?: Integer;
  6965     /**
  6966      * The product codes attached to this instance, if applicable.
  6967      */
  6968     ProductCodes?: ProductCodeList;
  6969     /**
  6970      * The instance type.
  6971      */
  6972     InstanceType?: InstanceType;
  6973     /**
  6974      * The time the instance was launched.
  6975      */
  6976     LaunchTime?: DateTime;
  6977     /**
  6978      * The location where the instance launched, if applicable.
  6979      */
  6980     Placement?: Placement;
  6981     /**
  6982      * The kernel associated with this instance, if applicable.
  6983      */
  6984     KernelId?: String;
  6985     /**
  6986      * The RAM disk associated with this instance, if applicable.
  6987      */
  6988     RamdiskId?: String;
  6989     /**
  6990      * The value is Windows for Windows instances; otherwise blank.
  6991      */
  6992     Platform?: PlatformValues;
  6993     /**
  6994      * The monitoring information for the instance.
  6995      */
  6996     Monitoring?: Monitoring;
  6997     /**
  6998      * [EC2-VPC] The ID of the subnet in which the instance is running.
  6999      */
  7000     SubnetId?: String;
  7001     /**
  7002      * [EC2-VPC] The ID of the VPC in which the instance is running.
  7003      */
  7004     VpcId?: String;
  7005     /**
  7006      * The private IP address assigned to the instance.
  7007      */
  7008     PrivateIpAddress?: String;
  7009     /**
  7010      * The public IP address assigned to the instance, if applicable.
  7011      */
  7012     PublicIpAddress?: String;
  7013     /**
  7014      * The reason for the most recent state transition.
  7015      */
  7016     StateReason?: StateReason;
  7017     /**
  7018      * The architecture of the image.
  7019      */
  7020     Architecture?: ArchitectureValues;
  7021     /**
  7022      * The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.
  7023      */
  7024     RootDeviceType?: DeviceType;
  7025     /**
  7026      * The root device name (for example, /dev/sda1 or /dev/xvda).
  7027      */
  7028     RootDeviceName?: String;
  7029     /**
  7030      * Any block device mapping entries for the instance.
  7031      */
  7032     BlockDeviceMappings?: InstanceBlockDeviceMappingList;
  7033     /**
  7034      * The virtualization type of the instance.
  7035      */
  7036     VirtualizationType?: VirtualizationType;
  7037     /**
  7038      * Indicates whether this is a Spot instance or a Scheduled Instance.
  7039      */
  7040     InstanceLifecycle?: InstanceLifecycleType;
  7041     /**
  7042      * If the request is a Spot instance request, the ID of the request.
  7043      */
  7044     SpotInstanceRequestId?: String;
  7045     /**
  7046      * The idempotency token you provided when you launched the instance, if applicable.
  7047      */
  7048     ClientToken?: String;
  7049     /**
  7050      * Any tags assigned to the instance.
  7051      */
  7052     Tags?: TagList;
  7053     /**
  7054      * One or more security groups for the instance.
  7055      */
  7056     SecurityGroups?: GroupIdentifierList;
  7057     /**
  7058      * Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.
  7059      */
  7060     SourceDestCheck?: Boolean;
  7061     /**
  7062      * The hypervisor type of the instance.
  7063      */
  7064     Hypervisor?: HypervisorType;
  7065     /**
  7066      * [EC2-VPC] One or more network interfaces for the instance.
  7067      */
  7068     NetworkInterfaces?: InstanceNetworkInterfaceList;
  7069     /**
  7070      * The IAM instance profile associated with the instance, if applicable.
  7071      */
  7072     IamInstanceProfile?: IamInstanceProfile;
  7073     /**
  7074      * Indicates whether the instance is optimized for EBS I/O. 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.
  7075      */
  7076     EbsOptimized?: Boolean;
  7077     /**
  7078      * Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.
  7079      */
  7080     SriovNetSupport?: String;
  7081     /**
  7082      * Specifies whether enhanced networking with ENA is enabled.
  7083      */
  7084     EnaSupport?: Boolean;
  7085   }
  7086   export interface InstanceAttribute {
  7087     /**
  7088      * The ID of the instance.
  7089      */
  7090     InstanceId?: String;
  7091     /**
  7092      * The instance type.
  7093      */
  7094     InstanceType?: AttributeValue;
  7095     /**
  7096      * The kernel ID.
  7097      */
  7098     KernelId?: AttributeValue;
  7099     /**
  7100      * The RAM disk ID.
  7101      */
  7102     RamdiskId?: AttributeValue;
  7103     /**
  7104      * The user data.
  7105      */
  7106     UserData?: AttributeValue;
  7107     /**
  7108      * If the value is true, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.
  7109      */
  7110     DisableApiTermination?: AttributeBooleanValue;
  7111     /**
  7112      * Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
  7113      */
  7114     InstanceInitiatedShutdownBehavior?: AttributeValue;
  7115     /**
  7116      * The name of the root device (for example, /dev/sda1 or /dev/xvda).
  7117      */
  7118     RootDeviceName?: AttributeValue;
  7119     /**
  7120      * The block device mapping of the instance.
  7121      */
  7122     BlockDeviceMappings?: InstanceBlockDeviceMappingList;
  7123     /**
  7124      * A list of product codes.
  7125      */
  7126     ProductCodes?: ProductCodeList;
  7127     /**
  7128      * Indicates whether the instance is optimized for EBS I/O.
  7129      */
  7130     EbsOptimized?: AttributeBooleanValue;
  7131     /**
  7132      * Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.
  7133      */
  7134     SriovNetSupport?: AttributeValue;
  7135     /**
  7136      * Indicates whether enhanced networking with ENA is enabled.
  7137      */
  7138     EnaSupport?: AttributeBooleanValue;
  7139     /**
  7140      * Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.
  7141      */
  7142     SourceDestCheck?: AttributeBooleanValue;
  7143     /**
  7144      * The security groups associated with the instance.
  7145      */
  7146     Groups?: GroupIdentifierList;
  7147   }
  7148   export type InstanceAttributeName = "instanceType"|"kernel"|"ramdisk"|"userData"|"disableApiTermination"|"instanceInitiatedShutdownBehavior"|"rootDeviceName"|"blockDeviceMapping"|"productCodes"|"sourceDestCheck"|"groupSet"|"ebsOptimized"|"sriovNetSupport"|"enaSupport"|string;
  7149   export interface InstanceBlockDeviceMapping {
  7150     /**
  7151      * The device name exposed to the instance (for example, /dev/sdh or xvdh).
  7152      */
  7153     DeviceName?: String;
  7154     /**
  7155      * Parameters used to automatically set up EBS volumes when the instance is launched.
  7156      */
  7157     Ebs?: EbsInstanceBlockDevice;
  7158   }
  7159   export type InstanceBlockDeviceMappingList = InstanceBlockDeviceMapping[];
  7160   export interface InstanceBlockDeviceMappingSpecification {
  7161     /**
  7162      * The device name exposed to the instance (for example, /dev/sdh or xvdh).
  7163      */
  7164     DeviceName?: String;
  7165     /**
  7166      * Parameters used to automatically set up EBS volumes when the instance is launched.
  7167      */
  7168     Ebs?: EbsInstanceBlockDeviceSpecification;
  7169     /**
  7170      * The virtual device name.
  7171      */
  7172     VirtualName?: String;
  7173     /**
  7174      * suppress the specified device included in the block device mapping.
  7175      */
  7176     NoDevice?: String;
  7177   }
  7178   export type InstanceBlockDeviceMappingSpecificationList = InstanceBlockDeviceMappingSpecification[];
  7179   export interface InstanceCapacity {
  7180     /**
  7181      * The instance type size supported by the Dedicated Host.
  7182      */
  7183     InstanceType?: String;
  7184     /**
  7185      * The number of instances that can still be launched onto the Dedicated Host.
  7186      */
  7187     AvailableCapacity?: Integer;
  7188     /**
  7189      * The total number of instances that can be launched onto the Dedicated Host.
  7190      */
  7191     TotalCapacity?: Integer;
  7192   }
  7193   export interface InstanceCount {
  7194     /**
  7195      * The states of the listed Reserved Instances.
  7196      */
  7197     State?: ListingState;
  7198     /**
  7199      * The number of listed Reserved Instances in the state specified by the state.
  7200      */
  7201     InstanceCount?: Integer;
  7202   }
  7203   export type InstanceCountList = InstanceCount[];
  7204   export interface InstanceExportDetails {
  7205     /**
  7206      * The ID of the resource being exported.
  7207      */
  7208     InstanceId?: String;
  7209     /**
  7210      * The target virtualization environment.
  7211      */
  7212     TargetEnvironment?: ExportEnvironment;
  7213   }
  7214   export type InstanceIdSet = String[];
  7215   export type InstanceIdStringList = String[];
  7216   export type InstanceLifecycleType = "spot"|"scheduled"|string;
  7217   export type InstanceList = Instance[];
  7218   export interface InstanceMonitoring {
  7219     /**
  7220      * The ID of the instance.
  7221      */
  7222     InstanceId?: String;
  7223     /**
  7224      * The monitoring information.
  7225      */
  7226     Monitoring?: Monitoring;
  7227   }
  7228   export type InstanceMonitoringList = InstanceMonitoring[];
  7229   export interface InstanceNetworkInterface {
  7230     /**
  7231      * The ID of the network interface.
  7232      */
  7233     NetworkInterfaceId?: String;
  7234     /**
  7235      * The ID of the subnet.
  7236      */
  7237     SubnetId?: String;
  7238     /**
  7239      * The ID of the VPC.
  7240      */
  7241     VpcId?: String;
  7242     /**
  7243      * The description.
  7244      */
  7245     Description?: String;
  7246     /**
  7247      * The ID of the AWS account that created the network interface.
  7248      */
  7249     OwnerId?: String;
  7250     /**
  7251      * The status of the network interface.
  7252      */
  7253     Status?: NetworkInterfaceStatus;
  7254     /**
  7255      * The MAC address.
  7256      */
  7257     MacAddress?: String;
  7258     /**
  7259      * The IP address of the network interface within the subnet.
  7260      */
  7261     PrivateIpAddress?: String;
  7262     /**
  7263      * The private DNS name.
  7264      */
  7265     PrivateDnsName?: String;
  7266     /**
  7267      * Indicates whether to validate network traffic to or from this network interface.
  7268      */
  7269     SourceDestCheck?: Boolean;
  7270     /**
  7271      * One or more security groups.
  7272      */
  7273     Groups?: GroupIdentifierList;
  7274     /**
  7275      * The network interface attachment.
  7276      */
  7277     Attachment?: InstanceNetworkInterfaceAttachment;
  7278     /**
  7279      * The association information for an Elastic IP associated with the network interface.
  7280      */
  7281     Association?: InstanceNetworkInterfaceAssociation;
  7282     /**
  7283      * The private IP addresses associated with the network interface.
  7284      */
  7285     PrivateIpAddresses?: InstancePrivateIpAddressList;
  7286   }
  7287   export interface InstanceNetworkInterfaceAssociation {
  7288     /**
  7289      * The public IP address or Elastic IP address bound to the network interface.
  7290      */
  7291     PublicIp?: String;
  7292     /**
  7293      * The public DNS name.
  7294      */
  7295     PublicDnsName?: String;
  7296     /**
  7297      * The ID of the owner of the Elastic IP address.
  7298      */
  7299     IpOwnerId?: String;
  7300   }
  7301   export interface InstanceNetworkInterfaceAttachment {
  7302     /**
  7303      * The ID of the network interface attachment.
  7304      */
  7305     AttachmentId?: String;
  7306     /**
  7307      * The index of the device on the instance for the network interface attachment.
  7308      */
  7309     DeviceIndex?: Integer;
  7310     /**
  7311      * The attachment state.
  7312      */
  7313     Status?: AttachmentStatus;
  7314     /**
  7315      * The time stamp when the attachment initiated.
  7316      */
  7317     AttachTime?: DateTime;
  7318     /**
  7319      * Indicates whether the network interface is deleted when the instance is terminated.
  7320      */
  7321     DeleteOnTermination?: Boolean;
  7322   }
  7323   export type InstanceNetworkInterfaceList = InstanceNetworkInterface[];
  7324   export interface InstanceNetworkInterfaceSpecification {
  7325     /**
  7326      * The ID of the network interface.
  7327      */
  7328     NetworkInterfaceId?: String;
  7329     /**
  7330      * The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a RunInstances request, you must provide the device index.
  7331      */
  7332     DeviceIndex?: Integer;
  7333     /**
  7334      * The ID of the subnet associated with the network string. Applies only if creating a network interface when launching an instance.
  7335      */
  7336     SubnetId?: String;
  7337     /**
  7338      * The description of the network interface. Applies only if creating a network interface when launching an instance.
  7339      */
  7340     Description?: String;
  7341     /**
  7342      * The private IP address of the network interface. Applies only if creating a network interface when launching an instance. You cannot specify this option if you're launching more than one instance in a RunInstances request.
  7343      */
  7344     PrivateIpAddress?: String;
  7345     /**
  7346      * The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.
  7347      */
  7348     Groups?: SecurityGroupIdStringList;
  7349     /**
  7350      * If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance.
  7351      */
  7352     DeleteOnTermination?: Boolean;
  7353     /**
  7354      * One or more private IP addresses to assign to the network interface. Only one private IP address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request.
  7355      */
  7356     PrivateIpAddresses?: PrivateIpAddressSpecificationList;
  7357     /**
  7358      * The number of secondary private IP addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you're launching more than one instance in a RunInstances request.
  7359      */
  7360     SecondaryPrivateIpAddressCount?: Integer;
  7361     /**
  7362      * Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.
  7363      */
  7364     AssociatePublicIpAddress?: Boolean;
  7365   }
  7366   export type InstanceNetworkInterfaceSpecificationList = InstanceNetworkInterfaceSpecification[];
  7367   export interface InstancePrivateIpAddress {
  7368     /**
  7369      * The private IP address of the network interface.
  7370      */
  7371     PrivateIpAddress?: String;
  7372     /**
  7373      * The private DNS name.
  7374      */
  7375     PrivateDnsName?: String;
  7376     /**
  7377      * Indicates whether this IP address is the primary private IP address of the network interface.
  7378      */
  7379     Primary?: Boolean;
  7380     /**
  7381      * The association information for an Elastic IP address for the network interface.
  7382      */
  7383     Association?: InstanceNetworkInterfaceAssociation;
  7384   }
  7385   export type InstancePrivateIpAddressList = InstancePrivateIpAddress[];
  7386   export interface InstanceState {
  7387     /**
  7388      * The low byte represents the state. The high byte is an opaque internal value and should be ignored.    0 : pending     16 : running     32 : shutting-down     48 : terminated     64 : stopping     80 : stopped   
  7389      */
  7390     Code?: Integer;
  7391     /**
  7392      * The current state of the instance.
  7393      */
  7394     Name?: InstanceStateName;
  7395   }
  7396   export interface InstanceStateChange {
  7397     /**
  7398      * The ID of the instance.
  7399      */
  7400     InstanceId?: String;
  7401     /**
  7402      * The current state of the instance.
  7403      */
  7404     CurrentState?: InstanceState;
  7405     /**
  7406      * The previous state of the instance.
  7407      */
  7408     PreviousState?: InstanceState;
  7409   }
  7410   export type InstanceStateChangeList = InstanceStateChange[];
  7411   export type InstanceStateName = "pending"|"running"|"shutting-down"|"terminated"|"stopping"|"stopped"|string;
  7412   export interface InstanceStatus {
  7413     /**
  7414      * The ID of the instance.
  7415      */
  7416     InstanceId?: String;
  7417     /**
  7418      * The Availability Zone of the instance.
  7419      */
  7420     AvailabilityZone?: String;
  7421     /**
  7422      * Any scheduled events associated with the instance.
  7423      */
  7424     Events?: InstanceStatusEventList;
  7425     /**
  7426      * The intended state of the instance. DescribeInstanceStatus requires that an instance be in the running state.
  7427      */
  7428     InstanceState?: InstanceState;
  7429     /**
  7430      * Reports impaired functionality that stems from issues related to the systems that support an instance, such as hardware failures and network connectivity problems.
  7431      */
  7432     SystemStatus?: InstanceStatusSummary;
  7433     /**
  7434      * Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.
  7435      */
  7436     InstanceStatus?: InstanceStatusSummary;
  7437   }
  7438   export interface InstanceStatusDetails {
  7439     /**
  7440      * The type of instance status.
  7441      */
  7442     Name?: StatusName;
  7443     /**
  7444      * The status.
  7445      */
  7446     Status?: StatusType;
  7447     /**
  7448      * The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched.
  7449      */
  7450     ImpairedSince?: DateTime;
  7451   }
  7452   export type InstanceStatusDetailsList = InstanceStatusDetails[];
  7453   export interface InstanceStatusEvent {
  7454     /**
  7455      * The event code.
  7456      */
  7457     Code?: EventCode;
  7458     /**
  7459      * A description of the event. After a scheduled event is completed, it can still be described for up to a week. If the event has been completed, this description starts with the following text: [Completed].
  7460      */
  7461     Description?: String;
  7462     /**
  7463      * The earliest scheduled start time for the event.
  7464      */
  7465     NotBefore?: DateTime;
  7466     /**
  7467      * The latest scheduled end time for the event.
  7468      */
  7469     NotAfter?: DateTime;
  7470   }
  7471   export type InstanceStatusEventList = InstanceStatusEvent[];
  7472   export type InstanceStatusList = InstanceStatus[];
  7473   export interface InstanceStatusSummary {
  7474     /**
  7475      * The status.
  7476      */
  7477     Status?: SummaryStatus;
  7478     /**
  7479      * The system instance health or application instance health.
  7480      */
  7481     Details?: InstanceStatusDetailsList;
  7482   }
  7483   export type InstanceType = "t1.micro"|"t2.nano"|"t2.micro"|"t2.small"|"t2.medium"|"t2.large"|"m1.small"|"m1.medium"|"m1.large"|"m1.xlarge"|"m3.medium"|"m3.large"|"m3.xlarge"|"m3.2xlarge"|"m4.large"|"m4.xlarge"|"m4.2xlarge"|"m4.4xlarge"|"m4.10xlarge"|"m4.16xlarge"|"m2.xlarge"|"m2.2xlarge"|"m2.4xlarge"|"cr1.8xlarge"|"r3.large"|"r3.xlarge"|"r3.2xlarge"|"r3.4xlarge"|"r3.8xlarge"|"x1.16xlarge"|"x1.32xlarge"|"i2.xlarge"|"i2.2xlarge"|"i2.4xlarge"|"i2.8xlarge"|"hi1.4xlarge"|"hs1.8xlarge"|"c1.medium"|"c1.xlarge"|"c3.large"|"c3.xlarge"|"c3.2xlarge"|"c3.4xlarge"|"c3.8xlarge"|"c4.large"|"c4.xlarge"|"c4.2xlarge"|"c4.4xlarge"|"c4.8xlarge"|"cc1.4xlarge"|"cc2.8xlarge"|"g2.2xlarge"|"g2.8xlarge"|"cg1.4xlarge"|"p2.xlarge"|"p2.8xlarge"|"p2.16xlarge"|"d2.xlarge"|"d2.2xlarge"|"d2.4xlarge"|"d2.8xlarge"|string;
  7484   export type InstanceTypeList = InstanceType[];
  7485   export type Integer = number;
  7486   export interface InternetGateway {
  7487     /**
  7488      * The ID of the Internet gateway.
  7489      */
  7490     InternetGatewayId?: String;
  7491     /**
  7492      * Any VPCs attached to the Internet gateway.
  7493      */
  7494     Attachments?: InternetGatewayAttachmentList;
  7495     /**
  7496      * Any tags assigned to the Internet gateway.
  7497      */
  7498     Tags?: TagList;
  7499   }
  7500   export interface InternetGatewayAttachment {
  7501     /**
  7502      * The ID of the VPC.
  7503      */
  7504     VpcId?: String;
  7505     /**
  7506      * The current state of the attachment.
  7507      */
  7508     State?: AttachmentStatus;
  7509   }
  7510   export type InternetGatewayAttachmentList = InternetGatewayAttachment[];
  7511   export type InternetGatewayList = InternetGateway[];
  7512   export interface IpPermission {
  7513     /**
  7514      * The IP protocol name (for tcp, udp, and icmp) or number (see Protocol Numbers).  [EC2-VPC only] When you authorize or revoke security group rules, you can use -1 to specify all.
  7515      */
  7516     IpProtocol?: String;
  7517     /**
  7518      * The start of port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types.
  7519      */
  7520     FromPort?: Integer;
  7521     /**
  7522      * The end of port range for the TCP and UDP protocols, or an ICMP code. A value of -1 indicates all ICMP codes for the specified ICMP type.
  7523      */
  7524     ToPort?: Integer;
  7525     /**
  7526      * One or more security group and AWS account ID pairs.
  7527      */
  7528     UserIdGroupPairs?: UserIdGroupPairList;
  7529     /**
  7530      * One or more IP ranges.
  7531      */
  7532     IpRanges?: IpRangeList;
  7533     /**
  7534      * (Valid for AuthorizeSecurityGroupEgress, RevokeSecurityGroupEgress and DescribeSecurityGroups only) One or more prefix list IDs for an AWS service. In an AuthorizeSecurityGroupEgress request, this is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.
  7535      */
  7536     PrefixListIds?: PrefixListIdList;
  7537   }
  7538   export type IpPermissionList = IpPermission[];
  7539   export interface IpRange {
  7540     /**
  7541      * The CIDR range. You can either specify a CIDR range or a source security group, not both.
  7542      */
  7543     CidrIp?: String;
  7544   }
  7545   export type IpRangeList = IpRange[];
  7546   export type IpRanges = String[];
  7547   export type KeyNameStringList = String[];
  7548   export interface KeyPair {
  7549     /**
  7550      * The name of the key pair.
  7551      */
  7552     KeyName?: String;
  7553     /**
  7554      * The SHA-1 digest of the DER encoded private key.
  7555      */
  7556     KeyFingerprint?: String;
  7557     /**
  7558      * An unencrypted PEM encoded RSA private key.
  7559      */
  7560     KeyMaterial?: String;
  7561   }
  7562   export interface KeyPairInfo {
  7563     /**
  7564      * The name of the key pair.
  7565      */
  7566     KeyName?: String;
  7567     /**
  7568      * If you used CreateKeyPair to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used ImportKeyPair to provide AWS the public key, this is the MD5 public key fingerprint as specified in section 4 of RFC4716.
  7569      */
  7570     KeyFingerprint?: String;
  7571   }
  7572   export type KeyPairList = KeyPairInfo[];
  7573   export interface LaunchPermission {
  7574     /**
  7575      * The AWS account ID.
  7576      */
  7577     UserId?: String;
  7578     /**
  7579      * The name of the group.
  7580      */
  7581     Group?: PermissionGroup;
  7582   }
  7583   export type LaunchPermissionList = LaunchPermission[];
  7584   export interface LaunchPermissionModifications {
  7585     /**
  7586      * The AWS account ID to add to the list of launch permissions for the AMI.
  7587      */
  7588     Add?: LaunchPermissionList;
  7589     /**
  7590      * The AWS account ID to remove from the list of launch permissions for the AMI.
  7591      */
  7592     Remove?: LaunchPermissionList;
  7593   }
  7594   export interface LaunchSpecification {
  7595     /**
  7596      * The ID of the AMI.
  7597      */
  7598     ImageId?: String;
  7599     /**
  7600      * The name of the key pair.
  7601      */
  7602     KeyName?: String;
  7603     /**
  7604      * One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.
  7605      */
  7606     SecurityGroups?: GroupIdentifierList;
  7607     /**
  7608      * The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
  7609      */
  7610     UserData?: String;
  7611     /**
  7612      * Deprecated.
  7613      */
  7614     AddressingType?: String;
  7615     /**
  7616      * The instance type.
  7617      */
  7618     InstanceType?: InstanceType;
  7619     /**
  7620      * The placement information for the instance.
  7621      */
  7622     Placement?: SpotPlacement;
  7623     /**
  7624      * The ID of the kernel.
  7625      */
  7626     KernelId?: String;
  7627     /**
  7628      * The ID of the RAM disk.
  7629      */
  7630     RamdiskId?: String;
  7631     /**
  7632      * One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.
  7633      */
  7634     BlockDeviceMappings?: BlockDeviceMappingList;
  7635     /**
  7636      * The ID of the subnet in which to launch the instance.
  7637      */
  7638     SubnetId?: String;
  7639     /**
  7640      * One or more network interfaces.
  7641      */
  7642     NetworkInterfaces?: InstanceNetworkInterfaceSpecificationList;
  7643     /**
  7644      * The IAM instance profile.
  7645      */
  7646     IamInstanceProfile?: IamInstanceProfileSpecification;
  7647     /**
  7648      * Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: false 
  7649      */
  7650     EbsOptimized?: Boolean;
  7651     Monitoring?: RunInstancesMonitoringEnabled;
  7652   }
  7653   export type LaunchSpecsList = SpotFleetLaunchSpecification[];
  7654   export type ListingState = "available"|"sold"|"cancelled"|"pending"|string;
  7655   export type ListingStatus = "active"|"pending"|"cancelled"|"closed"|string;
  7656   export type Long = number;
  7657   export type MaxResults = number;
  7658   export interface ModifyHostsRequest {
  7659     /**
  7660      * The host IDs of the Dedicated Hosts you want to modify.
  7661      */
  7662     HostIds: RequestHostIdList;
  7663     /**
  7664      * Specify whether to enable or disable auto-placement.
  7665      */
  7666     AutoPlacement: AutoPlacement;
  7667   }
  7668   export interface ModifyHostsResult {
  7669     /**
  7670      * The IDs of the Dedicated Hosts that were successfully modified.
  7671      */
  7672     Successful?: ResponseHostIdList;
  7673     /**
  7674      * The IDs of the Dedicated Hosts that could not be modified. Check whether the setting you requested can be used.
  7675      */
  7676     Unsuccessful?: UnsuccessfulItemList;
  7677   }
  7678   export interface ModifyIdFormatRequest {
  7679     /**
  7680      * The type of resource: instance | reservation | snapshot | volume 
  7681      */
  7682     Resource: String;
  7683     /**
  7684      * Indicate whether the resource should use longer IDs (17-character IDs).
  7685      */
  7686     UseLongIds: Boolean;
  7687   }
  7688   export interface ModifyIdentityIdFormatRequest {
  7689     /**
  7690      * The type of resource: instance | reservation | snapshot | volume 
  7691      */
  7692     Resource: String;
  7693     /**
  7694      * Indicates whether the resource should use longer IDs (17-character IDs)
  7695      */
  7696     UseLongIds: Boolean;
  7697     /**
  7698      * The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify all to modify the ID format for all IAM users, IAM roles, and the root user of the account.
  7699      */
  7700     PrincipalArn: String;
  7701   }
  7702   export interface ModifyImageAttributeRequest {
  7703     /**
  7704      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  7705      */
  7706     DryRun?: Boolean;
  7707     /**
  7708      * The ID of the AMI.
  7709      */
  7710     ImageId: String;
  7711     /**
  7712      * The name of the attribute to modify.
  7713      */
  7714     Attribute?: String;
  7715     /**
  7716      * The operation type.
  7717      */
  7718     OperationType?: OperationType;
  7719     /**
  7720      * One or more AWS account IDs. This is only valid when modifying the launchPermission attribute.
  7721      */
  7722     UserIds?: UserIdStringList;
  7723     /**
  7724      * One or more user groups. This is only valid when modifying the launchPermission attribute.
  7725      */
  7726     UserGroups?: UserGroupStringList;
  7727     /**
  7728      * One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the productCodes attribute.
  7729      */
  7730     ProductCodes?: ProductCodeStringList;
  7731     /**
  7732      * The value of the attribute being modified. This is only valid when modifying the description attribute.
  7733      */
  7734     Value?: String;
  7735     /**
  7736      * A launch permission modification.
  7737      */
  7738     LaunchPermission?: LaunchPermissionModifications;
  7739     /**
  7740      * A description for the AMI.
  7741      */
  7742     Description?: AttributeValue;
  7743   }
  7744   export interface ModifyInstanceAttributeRequest {
  7745     /**
  7746      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  7747      */
  7748     DryRun?: Boolean;
  7749     /**
  7750      * The ID of the instance.
  7751      */
  7752     InstanceId: String;
  7753     /**
  7754      * The name of the attribute.
  7755      */
  7756     Attribute?: InstanceAttributeName;
  7757     /**
  7758      * A new value for the attribute. Use only with the kernel, ramdisk, userData, disableApiTermination, or instanceInitiatedShutdownBehavior attribute.
  7759      */
  7760     Value?: String;
  7761     /**
  7762      * Modifies the DeleteOnTermination attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for DeleteOnTermination, the default is true and the volume is deleted when the instance is terminated. To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see Updating the Block Device Mapping when Launching an Instance in the Amazon Elastic Compute Cloud User Guide.
  7763      */
  7764     BlockDeviceMappings?: InstanceBlockDeviceMappingSpecificationList;
  7765     /**
  7766      * Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.
  7767      */
  7768     SourceDestCheck?: AttributeBooleanValue;
  7769     /**
  7770      * If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this paramater for Spot Instances.
  7771      */
  7772     DisableApiTermination?: AttributeBooleanValue;
  7773     /**
  7774      * Changes the instance type to the specified value. For more information, see Instance Types. If the instance type is not valid, the error returned is InvalidInstanceAttributeValue.
  7775      */
  7776     InstanceType?: AttributeValue;
  7777     /**
  7778      * Changes the instance's kernel to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.
  7779      */
  7780     Kernel?: AttributeValue;
  7781     /**
  7782      * Changes the instance's RAM disk to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.
  7783      */
  7784     Ramdisk?: AttributeValue;
  7785     /**
  7786      * Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
  7787      */
  7788     UserData?: BlobAttributeValue;
  7789     /**
  7790      * Specifies whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
  7791      */
  7792     InstanceInitiatedShutdownBehavior?: AttributeValue;
  7793     /**
  7794      * [EC2-VPC] Changes the security groups of the instance. You must specify at least one security group, even if it's just the default security group for the VPC. You must specify the security group ID, not the security group name.
  7795      */
  7796     Groups?: GroupIdStringList;
  7797     /**
  7798      * Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.
  7799      */
  7800     EbsOptimized?: AttributeBooleanValue;
  7801     /**
  7802      * Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the instance. There is no way to disable enhanced networking with the Intel 82599 Virtual Function interface at this time. This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.
  7803      */
  7804     SriovNetSupport?: AttributeValue;
  7805     /**
  7806      * Set to true to enable enhanced networking with ENA for the instance. This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.
  7807      */
  7808     EnaSupport?: AttributeBooleanValue;
  7809   }
  7810   export interface ModifyInstancePlacementRequest {
  7811     /**
  7812      * The ID of the instance that you are modifying.
  7813      */
  7814     InstanceId: String;
  7815     /**
  7816      * The tenancy of the instance that you are modifying.
  7817      */
  7818     Tenancy?: HostTenancy;
  7819     /**
  7820      * The new affinity setting for the instance.
  7821      */
  7822     Affinity?: Affinity;
  7823     /**
  7824      * The ID of the Dedicated Host that the instance will have affinity with.
  7825      */
  7826     HostId?: String;
  7827   }
  7828   export interface ModifyInstancePlacementResult {
  7829     /**
  7830      * Is true if the request succeeds, and an error otherwise.
  7831      */
  7832     Return?: Boolean;
  7833   }
  7834   export interface ModifyNetworkInterfaceAttributeRequest {
  7835     /**
  7836      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  7837      */
  7838     DryRun?: Boolean;
  7839     /**
  7840      * The ID of the network interface.
  7841      */
  7842     NetworkInterfaceId: String;
  7843     /**
  7844      * A description for the network interface.
  7845      */
  7846     Description?: AttributeValue;
  7847     /**
  7848      * Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.
  7849      */
  7850     SourceDestCheck?: AttributeBooleanValue;
  7851     /**
  7852      * Changes the security groups for the network interface. The new set of groups you specify replaces the current set. You must specify at least one group, even if it's just the default security group in the VPC. You must specify the ID of the security group, not the name.
  7853      */
  7854     Groups?: SecurityGroupIdStringList;
  7855     /**
  7856      * Information about the interface attachment. If modifying the 'delete on termination' attribute, you must specify the ID of the interface attachment.
  7857      */
  7858     Attachment?: NetworkInterfaceAttachmentChanges;
  7859   }
  7860   export interface ModifyReservedInstancesRequest {
  7861     /**
  7862      * A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.
  7863      */
  7864     ClientToken?: String;
  7865     /**
  7866      * The IDs of the Reserved Instances to modify.
  7867      */
  7868     ReservedInstancesIds: ReservedInstancesIdStringList;
  7869     /**
  7870      * The configuration settings for the Reserved Instances to modify.
  7871      */
  7872     TargetConfigurations: ReservedInstancesConfigurationList;
  7873   }
  7874   export interface ModifyReservedInstancesResult {
  7875     /**
  7876      * The ID for the modification.
  7877      */
  7878     ReservedInstancesModificationId?: String;
  7879   }
  7880   export interface ModifySnapshotAttributeRequest {
  7881     /**
  7882      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  7883      */
  7884     DryRun?: Boolean;
  7885     /**
  7886      * The ID of the snapshot.
  7887      */
  7888     SnapshotId: String;
  7889     /**
  7890      * The snapshot attribute to modify.  Only volume creation permissions may be modified at the customer level. 
  7891      */
  7892     Attribute?: SnapshotAttributeName;
  7893     /**
  7894      * The type of operation to perform to the attribute.
  7895      */
  7896     OperationType?: OperationType;
  7897     /**
  7898      * The account ID to modify for the snapshot.
  7899      */
  7900     UserIds?: UserIdStringList;
  7901     /**
  7902      * The group to modify for the snapshot.
  7903      */
  7904     GroupNames?: GroupNameStringList;
  7905     /**
  7906      * A JSON representation of the snapshot attribute modification.
  7907      */
  7908     CreateVolumePermission?: CreateVolumePermissionModifications;
  7909   }
  7910   export interface ModifySpotFleetRequestRequest {
  7911     /**
  7912      * The ID of the Spot fleet request.
  7913      */
  7914     SpotFleetRequestId: String;
  7915     /**
  7916      * The size of the fleet.
  7917      */
  7918     TargetCapacity?: Integer;
  7919     /**
  7920      * Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
  7921      */
  7922     ExcessCapacityTerminationPolicy?: ExcessCapacityTerminationPolicy;
  7923   }
  7924   export interface ModifySpotFleetRequestResponse {
  7925     /**
  7926      * Is true if the request succeeds, and an error otherwise.
  7927      */
  7928     Return?: Boolean;
  7929   }
  7930   export interface ModifySubnetAttributeRequest {
  7931     /**
  7932      * The ID of the subnet.
  7933      */
  7934     SubnetId: String;
  7935     /**
  7936      * Specify true to indicate that instances launched into the specified subnet should be assigned public IP address.
  7937      */
  7938     MapPublicIpOnLaunch?: AttributeBooleanValue;
  7939   }
  7940   export interface ModifyVolumeAttributeRequest {
  7941     /**
  7942      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  7943      */
  7944     DryRun?: Boolean;
  7945     /**
  7946      * The ID of the volume.
  7947      */
  7948     VolumeId: String;
  7949     /**
  7950      * Indicates whether the volume should be auto-enabled for I/O operations.
  7951      */
  7952     AutoEnableIO?: AttributeBooleanValue;
  7953   }
  7954   export interface ModifyVpcAttributeRequest {
  7955     /**
  7956      * The ID of the VPC.
  7957      */
  7958     VpcId: String;
  7959     /**
  7960      * Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" will succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. You cannot modify the DNS resolution and DNS hostnames attributes in the same request. Use separate requests for each attribute.
  7961      */
  7962     EnableDnsSupport?: AttributeBooleanValue;
  7963     /**
  7964      * Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. You cannot modify the DNS resolution and DNS hostnames attributes in the same request. Use separate requests for each attribute. You can only enable DNS hostnames if you've enabled DNS support.
  7965      */
  7966     EnableDnsHostnames?: AttributeBooleanValue;
  7967   }
  7968   export interface ModifyVpcEndpointRequest {
  7969     /**
  7970      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  7971      */
  7972     DryRun?: Boolean;
  7973     /**
  7974      * The ID of the endpoint.
  7975      */
  7976     VpcEndpointId: String;
  7977     /**
  7978      * Specify true to reset the policy document to the default policy. The default policy allows access to the service.
  7979      */
  7980     ResetPolicy?: Boolean;
  7981     /**
  7982      * A policy document to attach to the endpoint. The policy must be in valid JSON format.
  7983      */
  7984     PolicyDocument?: String;
  7985     /**
  7986      * One or more route tables IDs to associate with the endpoint.
  7987      */
  7988     AddRouteTableIds?: ValueStringList;
  7989     /**
  7990      * One or more route table IDs to disassociate from the endpoint.
  7991      */
  7992     RemoveRouteTableIds?: ValueStringList;
  7993   }
  7994   export interface ModifyVpcEndpointResult {
  7995     /**
  7996      * Returns true if the request succeeds; otherwise, it returns an error.
  7997      */
  7998     Return?: Boolean;
  7999   }
  8000   export interface ModifyVpcPeeringConnectionOptionsRequest {
  8001     /**
  8002      * Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8003      */
  8004     DryRun?: Boolean;
  8005     /**
  8006      * The ID of the VPC peering connection.
  8007      */
  8008     VpcPeeringConnectionId: String;
  8009     /**
  8010      * The VPC peering connection options for the requester VPC.
  8011      */
  8012     RequesterPeeringConnectionOptions?: PeeringConnectionOptionsRequest;
  8013     /**
  8014      * The VPC peering connection options for the accepter VPC.
  8015      */
  8016     AccepterPeeringConnectionOptions?: PeeringConnectionOptionsRequest;
  8017   }
  8018   export interface ModifyVpcPeeringConnectionOptionsResult {
  8019     /**
  8020      * Information about the VPC peering connection options for the requester VPC.
  8021      */
  8022     RequesterPeeringConnectionOptions?: PeeringConnectionOptions;
  8023     /**
  8024      * Information about the VPC peering connection options for the accepter VPC.
  8025      */
  8026     AccepterPeeringConnectionOptions?: PeeringConnectionOptions;
  8027   }
  8028   export interface MonitorInstancesRequest {
  8029     /**
  8030      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8031      */
  8032     DryRun?: Boolean;
  8033     /**
  8034      * One or more instance IDs.
  8035      */
  8036     InstanceIds: InstanceIdStringList;
  8037   }
  8038   export interface MonitorInstancesResult {
  8039     /**
  8040      * Monitoring information for one or more instances.
  8041      */
  8042     InstanceMonitorings?: InstanceMonitoringList;
  8043   }
  8044   export interface Monitoring {
  8045     /**
  8046      * Indicates whether monitoring is enabled for the instance.
  8047      */
  8048     State?: MonitoringState;
  8049   }
  8050   export type MonitoringState = "disabled"|"disabling"|"enabled"|"pending"|string;
  8051   export interface MoveAddressToVpcRequest {
  8052     /**
  8053      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8054      */
  8055     DryRun?: Boolean;
  8056     /**
  8057      * The Elastic IP address.
  8058      */
  8059     PublicIp: String;
  8060   }
  8061   export interface MoveAddressToVpcResult {
  8062     /**
  8063      * The allocation ID for the Elastic IP address.
  8064      */
  8065     AllocationId?: String;
  8066     /**
  8067      * The status of the move of the IP address.
  8068      */
  8069     Status?: Status;
  8070   }
  8071   export type MoveStatus = "movingToVpc"|"restoringToClassic"|string;
  8072   export interface MovingAddressStatus {
  8073     /**
  8074      * The Elastic IP address.
  8075      */
  8076     PublicIp?: String;
  8077     /**
  8078      * The status of the Elastic IP address that's being moved to the EC2-VPC platform, or restored to the EC2-Classic platform.
  8079      */
  8080     MoveStatus?: MoveStatus;
  8081   }
  8082   export type MovingAddressStatusSet = MovingAddressStatus[];
  8083   export interface NatGateway {
  8084     /**
  8085      * The ID of the VPC in which the NAT gateway is located.
  8086      */
  8087     VpcId?: String;
  8088     /**
  8089      * The ID of the subnet in which the NAT gateway is located.
  8090      */
  8091     SubnetId?: String;
  8092     /**
  8093      * The ID of the NAT gateway.
  8094      */
  8095     NatGatewayId?: String;
  8096     /**
  8097      * The date and time the NAT gateway was created.
  8098      */
  8099     CreateTime?: DateTime;
  8100     /**
  8101      * The date and time the NAT gateway was deleted, if applicable.
  8102      */
  8103     DeleteTime?: DateTime;
  8104     /**
  8105      * Information about the IP addresses and network interface associated with the NAT gateway.
  8106      */
  8107     NatGatewayAddresses?: NatGatewayAddressList;
  8108     /**
  8109      * The state of the NAT gateway.    pending: The NAT gateway is being created and is not ready to process traffic.    failed: The NAT gateway could not be created. Check the failureCode and failureMessage fields for the reason.    available: The NAT gateway is able to process traffic. This status remains until you delete the NAT gateway, and does not indicate the health of the NAT gateway.    deleting: The NAT gateway is in the process of being terminated and may still be processing traffic.    deleted: The NAT gateway has been terminated and is no longer processing traffic.  
  8110      */
  8111     State?: NatGatewayState;
  8112     /**
  8113      * If the NAT gateway could not be created, specifies the error code for the failure. (InsufficientFreeAddressesInSubnet | Gateway.NotAttached | InvalidAllocationID.NotFound | Resource.AlreadyAssociated | InternalError | InvalidSubnetID.NotFound)
  8114      */
  8115     FailureCode?: String;
  8116     /**
  8117      * If the NAT gateway could not be created, specifies the error message for the failure, that corresponds to the error code.   For InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to create this NAT gateway"   For Gateway.NotAttached: "Network vpc-xxxxxxxx has no Internet gateway attached"   For InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway"   For Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already associated"   For InternalError: "Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again."   For InvalidSubnetID.NotFound: "The specified subnet subnet-xxxxxxxx does not exist or could not be found."  
  8118      */
  8119     FailureMessage?: String;
  8120     /**
  8121      * Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.
  8122      */
  8123     ProvisionedBandwidth?: ProvisionedBandwidth;
  8124   }
  8125   export interface NatGatewayAddress {
  8126     /**
  8127      * The Elastic IP address associated with the NAT gateway.
  8128      */
  8129     PublicIp?: String;
  8130     /**
  8131      * The allocation ID of the Elastic IP address that's associated with the NAT gateway.
  8132      */
  8133     AllocationId?: String;
  8134     /**
  8135      * The private IP address associated with the Elastic IP address.
  8136      */
  8137     PrivateIp?: String;
  8138     /**
  8139      * The ID of the network interface associated with the NAT gateway.
  8140      */
  8141     NetworkInterfaceId?: String;
  8142   }
  8143   export type NatGatewayAddressList = NatGatewayAddress[];
  8144   export type NatGatewayList = NatGateway[];
  8145   export type NatGatewayState = "pending"|"failed"|"available"|"deleting"|"deleted"|string;
  8146   export interface NetworkAcl {
  8147     /**
  8148      * The ID of the network ACL.
  8149      */
  8150     NetworkAclId?: String;
  8151     /**
  8152      * The ID of the VPC for the network ACL.
  8153      */
  8154     VpcId?: String;
  8155     /**
  8156      * Indicates whether this is the default network ACL for the VPC.
  8157      */
  8158     IsDefault?: Boolean;
  8159     /**
  8160      * One or more entries (rules) in the network ACL.
  8161      */
  8162     Entries?: NetworkAclEntryList;
  8163     /**
  8164      * Any associations between the network ACL and one or more subnets
  8165      */
  8166     Associations?: NetworkAclAssociationList;
  8167     /**
  8168      * Any tags assigned to the network ACL.
  8169      */
  8170     Tags?: TagList;
  8171   }
  8172   export interface NetworkAclAssociation {
  8173     /**
  8174      * The ID of the association between a network ACL and a subnet.
  8175      */
  8176     NetworkAclAssociationId?: String;
  8177     /**
  8178      * The ID of the network ACL.
  8179      */
  8180     NetworkAclId?: String;
  8181     /**
  8182      * The ID of the subnet.
  8183      */
  8184     SubnetId?: String;
  8185   }
  8186   export type NetworkAclAssociationList = NetworkAclAssociation[];
  8187   export interface NetworkAclEntry {
  8188     /**
  8189      * The rule number for the entry. ACL entries are processed in ascending order by rule number.
  8190      */
  8191     RuleNumber?: Integer;
  8192     /**
  8193      * The protocol. A value of -1 means all protocols.
  8194      */
  8195     Protocol?: String;
  8196     /**
  8197      * Indicates whether to allow or deny the traffic that matches the rule.
  8198      */
  8199     RuleAction?: RuleAction;
  8200     /**
  8201      * Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).
  8202      */
  8203     Egress?: Boolean;
  8204     /**
  8205      * The network range to allow or deny, in CIDR notation.
  8206      */
  8207     CidrBlock?: String;
  8208     /**
  8209      * ICMP protocol: The ICMP type and code.
  8210      */
  8211     IcmpTypeCode?: IcmpTypeCode;
  8212     /**
  8213      * TCP or UDP protocols: The range of ports the rule applies to.
  8214      */
  8215     PortRange?: PortRange;
  8216   }
  8217   export type NetworkAclEntryList = NetworkAclEntry[];
  8218   export type NetworkAclList = NetworkAcl[];
  8219   export interface NetworkInterface {
  8220     /**
  8221      * The ID of the network interface.
  8222      */
  8223     NetworkInterfaceId?: String;
  8224     /**
  8225      * The ID of the subnet.
  8226      */
  8227     SubnetId?: String;
  8228     /**
  8229      * The ID of the VPC.
  8230      */
  8231     VpcId?: String;
  8232     /**
  8233      * The Availability Zone.
  8234      */
  8235     AvailabilityZone?: String;
  8236     /**
  8237      * A description.
  8238      */
  8239     Description?: String;
  8240     /**
  8241      * The AWS account ID of the owner of the network interface.
  8242      */
  8243     OwnerId?: String;
  8244     /**
  8245      * The ID of the entity that launched the instance on your behalf (for example, AWS Management Console or Auto Scaling).
  8246      */
  8247     RequesterId?: String;
  8248     /**
  8249      * Indicates whether the network interface is being managed by AWS.
  8250      */
  8251     RequesterManaged?: Boolean;
  8252     /**
  8253      * The status of the network interface.
  8254      */
  8255     Status?: NetworkInterfaceStatus;
  8256     /**
  8257      * The MAC address.
  8258      */
  8259     MacAddress?: String;
  8260     /**
  8261      * The IP address of the network interface within the subnet.
  8262      */
  8263     PrivateIpAddress?: String;
  8264     /**
  8265      * The private DNS name.
  8266      */
  8267     PrivateDnsName?: String;
  8268     /**
  8269      * Indicates whether traffic to or from the instance is validated.
  8270      */
  8271     SourceDestCheck?: Boolean;
  8272     /**
  8273      * Any security groups for the network interface.
  8274      */
  8275     Groups?: GroupIdentifierList;
  8276     /**
  8277      * The network interface attachment.
  8278      */
  8279     Attachment?: NetworkInterfaceAttachment;
  8280     /**
  8281      * The association information for an Elastic IP associated with the network interface.
  8282      */
  8283     Association?: NetworkInterfaceAssociation;
  8284     /**
  8285      * Any tags assigned to the network interface.
  8286      */
  8287     TagSet?: TagList;
  8288     /**
  8289      * The private IP addresses associated with the network interface.
  8290      */
  8291     PrivateIpAddresses?: NetworkInterfacePrivateIpAddressList;
  8292     /**
  8293      * The type of interface.
  8294      */
  8295     InterfaceType?: NetworkInterfaceType;
  8296   }
  8297   export interface NetworkInterfaceAssociation {
  8298     /**
  8299      * The address of the Elastic IP address bound to the network interface.
  8300      */
  8301     PublicIp?: String;
  8302     /**
  8303      * The public DNS name.
  8304      */
  8305     PublicDnsName?: String;
  8306     /**
  8307      * The ID of the Elastic IP address owner.
  8308      */
  8309     IpOwnerId?: String;
  8310     /**
  8311      * The allocation ID.
  8312      */
  8313     AllocationId?: String;
  8314     /**
  8315      * The association ID.
  8316      */
  8317     AssociationId?: String;
  8318   }
  8319   export interface NetworkInterfaceAttachment {
  8320     /**
  8321      * The ID of the network interface attachment.
  8322      */
  8323     AttachmentId?: String;
  8324     /**
  8325      * The ID of the instance.
  8326      */
  8327     InstanceId?: String;
  8328     /**
  8329      * The AWS account ID of the owner of the instance.
  8330      */
  8331     InstanceOwnerId?: String;
  8332     /**
  8333      * The device index of the network interface attachment on the instance.
  8334      */
  8335     DeviceIndex?: Integer;
  8336     /**
  8337      * The attachment state.
  8338      */
  8339     Status?: AttachmentStatus;
  8340     /**
  8341      * The timestamp indicating when the attachment initiated.
  8342      */
  8343     AttachTime?: DateTime;
  8344     /**
  8345      * Indicates whether the network interface is deleted when the instance is terminated.
  8346      */
  8347     DeleteOnTermination?: Boolean;
  8348   }
  8349   export interface NetworkInterfaceAttachmentChanges {
  8350     /**
  8351      * The ID of the network interface attachment.
  8352      */
  8353     AttachmentId?: String;
  8354     /**
  8355      * Indicates whether the network interface is deleted when the instance is terminated.
  8356      */
  8357     DeleteOnTermination?: Boolean;
  8358   }
  8359   export type NetworkInterfaceAttribute = "description"|"groupSet"|"sourceDestCheck"|"attachment"|string;
  8360   export type NetworkInterfaceIdList = String[];
  8361   export type NetworkInterfaceList = NetworkInterface[];
  8362   export interface NetworkInterfacePrivateIpAddress {
  8363     /**
  8364      * The private IP address.
  8365      */
  8366     PrivateIpAddress?: String;
  8367     /**
  8368      * The private DNS name.
  8369      */
  8370     PrivateDnsName?: String;
  8371     /**
  8372      * Indicates whether this IP address is the primary private IP address of the network interface.
  8373      */
  8374     Primary?: Boolean;
  8375     /**
  8376      * The association information for an Elastic IP address associated with the network interface.
  8377      */
  8378     Association?: NetworkInterfaceAssociation;
  8379   }
  8380   export type NetworkInterfacePrivateIpAddressList = NetworkInterfacePrivateIpAddress[];
  8381   export type NetworkInterfaceStatus = "available"|"attaching"|"in-use"|"detaching"|string;
  8382   export type NetworkInterfaceType = "interface"|"natGateway"|string;
  8383   export interface NewDhcpConfiguration {
  8384     Key?: String;
  8385     Values?: ValueStringList;
  8386   }
  8387   export type NewDhcpConfigurationList = NewDhcpConfiguration[];
  8388   export type NextToken = string;
  8389   export type OccurrenceDayRequestSet = Integer[];
  8390   export type OccurrenceDaySet = Integer[];
  8391   export type OfferingClassType = "standard"|"convertible"|string;
  8392   export type OfferingTypeValues = "Heavy Utilization"|"Medium Utilization"|"Light Utilization"|"No Upfront"|"Partial Upfront"|"All Upfront"|string;
  8393   export type OperationType = "add"|"remove"|string;
  8394   export type OwnerStringList = String[];
  8395   export type PaymentOption = "AllUpfront"|"PartialUpfront"|"NoUpfront"|string;
  8396   export interface PeeringConnectionOptions {
  8397     /**
  8398      * If true, enables outbound communication from an EC2-Classic instance that's linked to a local VPC via ClassicLink to instances in a peer VPC.
  8399      */
  8400     AllowEgressFromLocalClassicLinkToRemoteVpc?: Boolean;
  8401     /**
  8402      * If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC via ClassicLink.
  8403      */
  8404     AllowEgressFromLocalVpcToRemoteClassicLink?: Boolean;
  8405     /**
  8406      * If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.
  8407      */
  8408     AllowDnsResolutionFromRemoteVpc?: Boolean;
  8409   }
  8410   export interface PeeringConnectionOptionsRequest {
  8411     /**
  8412      * If true, enables outbound communication from an EC2-Classic instance that's linked to a local VPC via ClassicLink to instances in a peer VPC.
  8413      */
  8414     AllowEgressFromLocalClassicLinkToRemoteVpc?: Boolean;
  8415     /**
  8416      * If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC via ClassicLink.
  8417      */
  8418     AllowEgressFromLocalVpcToRemoteClassicLink?: Boolean;
  8419     /**
  8420      * If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.
  8421      */
  8422     AllowDnsResolutionFromRemoteVpc?: Boolean;
  8423   }
  8424   export type PermissionGroup = "all"|string;
  8425   export interface Placement {
  8426     /**
  8427      * The Availability Zone of the instance.
  8428      */
  8429     AvailabilityZone?: String;
  8430     /**
  8431      * The name of the placement group the instance is in (for cluster compute instances).
  8432      */
  8433     GroupName?: String;
  8434     /**
  8435      * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the ImportInstance command.
  8436      */
  8437     Tenancy?: Tenancy;
  8438     /**
  8439      * The ID of the Dedicted host on which the instance resides. This parameter is not support for the ImportInstance command.
  8440      */
  8441     HostId?: String;
  8442     /**
  8443      * The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the ImportInstance command.
  8444      */
  8445     Affinity?: String;
  8446   }
  8447   export interface PlacementGroup {
  8448     /**
  8449      * The name of the placement group.
  8450      */
  8451     GroupName?: String;
  8452     /**
  8453      * The placement strategy.
  8454      */
  8455     Strategy?: PlacementStrategy;
  8456     /**
  8457      * The state of the placement group.
  8458      */
  8459     State?: PlacementGroupState;
  8460   }
  8461   export type PlacementGroupList = PlacementGroup[];
  8462   export type PlacementGroupState = "pending"|"available"|"deleting"|"deleted"|string;
  8463   export type PlacementGroupStringList = String[];
  8464   export type PlacementStrategy = "cluster"|string;
  8465   export type PlatformValues = "Windows"|string;
  8466   export interface PortRange {
  8467     /**
  8468      * The first port in the range.
  8469      */
  8470     From?: Integer;
  8471     /**
  8472      * The last port in the range.
  8473      */
  8474     To?: Integer;
  8475   }
  8476   export interface PrefixList {
  8477     /**
  8478      * The ID of the prefix.
  8479      */
  8480     PrefixListId?: String;
  8481     /**
  8482      * The name of the prefix.
  8483      */
  8484     PrefixListName?: String;
  8485     /**
  8486      * The IP address range of the AWS service.
  8487      */
  8488     Cidrs?: ValueStringList;
  8489   }
  8490   export interface PrefixListId {
  8491     /**
  8492      * The ID of the prefix.
  8493      */
  8494     PrefixListId?: String;
  8495   }
  8496   export type PrefixListIdList = PrefixListId[];
  8497   export type PrefixListIdSet = String[];
  8498   export type PrefixListSet = PrefixList[];
  8499   export interface PriceSchedule {
  8500     /**
  8501      * The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.
  8502      */
  8503     Term?: Long;
  8504     /**
  8505      * The fixed price for the term.
  8506      */
  8507     Price?: Double;
  8508     /**
  8509      * The currency for transacting the Reserved Instance resale. At this time, the only supported currency is USD.
  8510      */
  8511     CurrencyCode?: CurrencyCodeValues;
  8512     /**
  8513      * The current price schedule, as determined by the term remaining for the Reserved Instance in the listing. A specific price schedule is always in effect, but only one price schedule can be active at any time. Take, for example, a Reserved Instance listing that has five months remaining in its term. When you specify price schedules for five months and two months, this means that schedule 1, covering the first three months of the remaining term, will be active during months 5, 4, and 3. Then schedule 2, covering the last two months of the term, will be active for months 2 and 1.
  8514      */
  8515     Active?: Boolean;
  8516   }
  8517   export type PriceScheduleList = PriceSchedule[];
  8518   export interface PriceScheduleSpecification {
  8519     /**
  8520      * The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.
  8521      */
  8522     Term?: Long;
  8523     /**
  8524      * The fixed price for the term.
  8525      */
  8526     Price?: Double;
  8527     /**
  8528      * The currency for transacting the Reserved Instance resale. At this time, the only supported currency is USD.
  8529      */
  8530     CurrencyCode?: CurrencyCodeValues;
  8531   }
  8532   export type PriceScheduleSpecificationList = PriceScheduleSpecification[];
  8533   export interface PricingDetail {
  8534     /**
  8535      * The price per instance.
  8536      */
  8537     Price?: Double;
  8538     /**
  8539      * The number of reservations available for the price.
  8540      */
  8541     Count?: Integer;
  8542   }
  8543   export type PricingDetailsList = PricingDetail[];
  8544   export type PrivateIpAddressConfigSet = ScheduledInstancesPrivateIpAddressConfig[];
  8545   export interface PrivateIpAddressSpecification {
  8546     /**
  8547      * The private IP addresses.
  8548      */
  8549     PrivateIpAddress: String;
  8550     /**
  8551      * Indicates whether the private IP address is the primary private IP address. Only one IP address can be designated as primary.
  8552      */
  8553     Primary?: Boolean;
  8554   }
  8555   export type PrivateIpAddressSpecificationList = PrivateIpAddressSpecification[];
  8556   export type PrivateIpAddressStringList = String[];
  8557   export interface ProductCode {
  8558     /**
  8559      * The product code.
  8560      */
  8561     ProductCodeId?: String;
  8562     /**
  8563      * The type of product code.
  8564      */
  8565     ProductCodeType?: ProductCodeValues;
  8566   }
  8567   export type ProductCodeList = ProductCode[];
  8568   export type ProductCodeStringList = String[];
  8569   export type ProductCodeValues = "devpay"|"marketplace"|string;
  8570   export type ProductDescriptionList = String[];
  8571   export interface PropagatingVgw {
  8572     /**
  8573      * The ID of the virtual private gateway (VGW).
  8574      */
  8575     GatewayId?: String;
  8576   }
  8577   export type PropagatingVgwList = PropagatingVgw[];
  8578   export interface ProvisionedBandwidth {
  8579     /**
  8580      * Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.
  8581      */
  8582     Provisioned?: String;
  8583     /**
  8584      * Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.
  8585      */
  8586     Requested?: String;
  8587     /**
  8588      * Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.
  8589      */
  8590     RequestTime?: DateTime;
  8591     /**
  8592      * Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.
  8593      */
  8594     ProvisionTime?: DateTime;
  8595     /**
  8596      * Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.
  8597      */
  8598     Status?: String;
  8599   }
  8600   export type PublicIpStringList = String[];
  8601   export interface Purchase {
  8602     /**
  8603      * The ID of the reservation.
  8604      */
  8605     HostReservationId?: String;
  8606     /**
  8607      * The IDs of the Dedicated Hosts associated with the reservation.
  8608      */
  8609     HostIdSet?: ResponseHostIdSet;
  8610     /**
  8611      * The instance family on the Dedicated Host that the reservation can be associated with.
  8612      */
  8613     InstanceFamily?: String;
  8614     /**
  8615      * The payment option for the reservation.
  8616      */
  8617     PaymentOption?: PaymentOption;
  8618     /**
  8619      * The upfront price of the reservation.
  8620      */
  8621     UpfrontPrice?: String;
  8622     /**
  8623      * The hourly price of the reservation per hour.
  8624      */
  8625     HourlyPrice?: String;
  8626     /**
  8627      * The currency in which the UpfrontPrice and HourlyPrice amounts are specified. At this time, the only supported currency is USD.
  8628      */
  8629     CurrencyCode?: CurrencyCodeValues;
  8630     /**
  8631      * The duration of the reservation's term in seconds.
  8632      */
  8633     Duration?: Integer;
  8634   }
  8635   export interface PurchaseHostReservationRequest {
  8636     /**
  8637      * The ID of the offering.
  8638      */
  8639     OfferingId: String;
  8640     /**
  8641      * The ID/s of the Dedicated Host/s that the reservation will be associated with.
  8642      */
  8643     HostIdSet: RequestHostIdSet;
  8644     /**
  8645      * The specified limit is checked against the total upfront cost of the reservation (calculated as the offering's upfront cost multiplied by the host count). If the total upfront cost is greater than the specified price limit, the request will fail. This is used to ensure that the purchase does not exceed the expected upfront cost of the purchase. At this time, the only supported currency is USD. For example, to indicate a limit price of USD 100, specify 100.00.
  8646      */
  8647     LimitPrice?: String;
  8648     /**
  8649      * The currency in which the totalUpfrontPrice, LimitPrice, and totalHourlyPrice amounts are specified. At this time, the only supported currency is USD.
  8650      */
  8651     CurrencyCode?: CurrencyCodeValues;
  8652     /**
  8653      * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.
  8654      */
  8655     ClientToken?: String;
  8656   }
  8657   export interface PurchaseHostReservationResult {
  8658     /**
  8659      * Describes the details of the purchase.
  8660      */
  8661     Purchase?: PurchaseSet;
  8662     /**
  8663      * The total amount that will be charged to your account when you purchase the reservation.
  8664      */
  8665     TotalUpfrontPrice?: String;
  8666     /**
  8667      * The total hourly price of the reservation calculated per hour.
  8668      */
  8669     TotalHourlyPrice?: String;
  8670     /**
  8671      * The currency in which the totalUpfrontPrice and totalHourlyPrice amounts are specified. At this time, the only supported currency is USD.
  8672      */
  8673     CurrencyCode?: CurrencyCodeValues;
  8674     /**
  8675      * Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide 
  8676      */
  8677     ClientToken?: String;
  8678   }
  8679   export interface PurchaseRequest {
  8680     /**
  8681      * The purchase token.
  8682      */
  8683     PurchaseToken: String;
  8684     /**
  8685      * The number of instances.
  8686      */
  8687     InstanceCount: Integer;
  8688   }
  8689   export type PurchaseRequestSet = PurchaseRequest[];
  8690   export interface PurchaseReservedInstancesOfferingRequest {
  8691     /**
  8692      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8693      */
  8694     DryRun?: Boolean;
  8695     /**
  8696      * The ID of the Reserved Instance offering to purchase.
  8697      */
  8698     ReservedInstancesOfferingId: String;
  8699     /**
  8700      * The number of Reserved Instances to purchase.
  8701      */
  8702     InstanceCount: Integer;
  8703     /**
  8704      * Specified for Reserved Instance Marketplace offerings to limit the total order and ensure that the Reserved Instances are not purchased at unexpected prices.
  8705      */
  8706     LimitPrice?: ReservedInstanceLimitPrice;
  8707   }
  8708   export interface PurchaseReservedInstancesOfferingResult {
  8709     /**
  8710      * The IDs of the purchased Reserved Instances.
  8711      */
  8712     ReservedInstancesId?: String;
  8713   }
  8714   export interface PurchaseScheduledInstancesRequest {
  8715     /**
  8716      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8717      */
  8718     DryRun?: Boolean;
  8719     /**
  8720      * Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see Ensuring Idempotency.
  8721      */
  8722     ClientToken?: String;
  8723     /**
  8724      * One or more purchase requests.
  8725      */
  8726     PurchaseRequests: PurchaseRequestSet;
  8727   }
  8728   export interface PurchaseScheduledInstancesResult {
  8729     /**
  8730      * Information about the Scheduled Instances.
  8731      */
  8732     ScheduledInstanceSet?: PurchasedScheduledInstanceSet;
  8733   }
  8734   export type PurchaseSet = Purchase[];
  8735   export type PurchasedScheduledInstanceSet = ScheduledInstance[];
  8736   export type RIProductDescription = "Linux/UNIX"|"Linux/UNIX (Amazon VPC)"|"Windows"|"Windows (Amazon VPC)"|string;
  8737   export type ReasonCodesList = ReportInstanceReasonCodes[];
  8738   export interface RebootInstancesRequest {
  8739     /**
  8740      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8741      */
  8742     DryRun?: Boolean;
  8743     /**
  8744      * One or more instance IDs.
  8745      */
  8746     InstanceIds: InstanceIdStringList;
  8747   }
  8748   export interface RecurringCharge {
  8749     /**
  8750      * The frequency of the recurring charge.
  8751      */
  8752     Frequency?: RecurringChargeFrequency;
  8753     /**
  8754      * The amount of the recurring charge.
  8755      */
  8756     Amount?: Double;
  8757   }
  8758   export type RecurringChargeFrequency = "Hourly"|string;
  8759   export type RecurringChargesList = RecurringCharge[];
  8760   export interface Region {
  8761     /**
  8762      * The name of the region.
  8763      */
  8764     RegionName?: String;
  8765     /**
  8766      * The region service endpoint.
  8767      */
  8768     Endpoint?: String;
  8769   }
  8770   export type RegionList = Region[];
  8771   export type RegionNameStringList = String[];
  8772   export interface RegisterImageRequest {
  8773     /**
  8774      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8775      */
  8776     DryRun?: Boolean;
  8777     /**
  8778      * The full path to your AMI manifest in Amazon S3 storage.
  8779      */
  8780     ImageLocation?: String;
  8781     /**
  8782      * A name for your AMI. Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)
  8783      */
  8784     Name: String;
  8785     /**
  8786      * A description for your AMI.
  8787      */
  8788     Description?: String;
  8789     /**
  8790      * The architecture of the AMI. Default: For Amazon EBS-backed AMIs, i386. For instance store-backed AMIs, the architecture specified in the manifest file.
  8791      */
  8792     Architecture?: ArchitectureValues;
  8793     /**
  8794      * The ID of the kernel.
  8795      */
  8796     KernelId?: String;
  8797     /**
  8798      * The ID of the RAM disk.
  8799      */
  8800     RamdiskId?: String;
  8801     /**
  8802      * The name of the root device (for example, /dev/sda1, or /dev/xvda).
  8803      */
  8804     RootDeviceName?: String;
  8805     /**
  8806      * One or more block device mapping entries.
  8807      */
  8808     BlockDeviceMappings?: BlockDeviceMappingRequestList;
  8809     /**
  8810      * The type of virtualization. Default: paravirtual 
  8811      */
  8812     VirtualizationType?: String;
  8813     /**
  8814      * Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the AMI and any instances that you launch from the AMI. There is no way to disable sriovNetSupport at this time. This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.
  8815      */
  8816     SriovNetSupport?: String;
  8817     /**
  8818      * Set to true to enable enhanced networking with ENA for the AMI and any instances that you launch from the AMI. This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.
  8819      */
  8820     EnaSupport?: Boolean;
  8821   }
  8822   export interface RegisterImageResult {
  8823     /**
  8824      * The ID of the newly registered AMI.
  8825      */
  8826     ImageId?: String;
  8827   }
  8828   export interface RejectVpcPeeringConnectionRequest {
  8829     /**
  8830      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8831      */
  8832     DryRun?: Boolean;
  8833     /**
  8834      * The ID of the VPC peering connection.
  8835      */
  8836     VpcPeeringConnectionId: String;
  8837   }
  8838   export interface RejectVpcPeeringConnectionResult {
  8839     /**
  8840      * Returns true if the request succeeds; otherwise, it returns an error.
  8841      */
  8842     Return?: Boolean;
  8843   }
  8844   export interface ReleaseAddressRequest {
  8845     /**
  8846      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8847      */
  8848     DryRun?: Boolean;
  8849     /**
  8850      * [EC2-Classic] The Elastic IP address. Required for EC2-Classic.
  8851      */
  8852     PublicIp?: String;
  8853     /**
  8854      * [EC2-VPC] The allocation ID. Required for EC2-VPC.
  8855      */
  8856     AllocationId?: String;
  8857   }
  8858   export interface ReleaseHostsRequest {
  8859     /**
  8860      * The IDs of the Dedicated Hosts you want to release.
  8861      */
  8862     HostIds: RequestHostIdList;
  8863   }
  8864   export interface ReleaseHostsResult {
  8865     /**
  8866      * The IDs of the Dedicated Hosts that were successfully released.
  8867      */
  8868     Successful?: ResponseHostIdList;
  8869     /**
  8870      * The IDs of the Dedicated Hosts that could not be released, including an error message.
  8871      */
  8872     Unsuccessful?: UnsuccessfulItemList;
  8873   }
  8874   export interface ReplaceNetworkAclAssociationRequest {
  8875     /**
  8876      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8877      */
  8878     DryRun?: Boolean;
  8879     /**
  8880      * The ID of the current association between the original network ACL and the subnet.
  8881      */
  8882     AssociationId: String;
  8883     /**
  8884      * The ID of the new network ACL to associate with the subnet.
  8885      */
  8886     NetworkAclId: String;
  8887   }
  8888   export interface ReplaceNetworkAclAssociationResult {
  8889     /**
  8890      * The ID of the new association.
  8891      */
  8892     NewAssociationId?: String;
  8893   }
  8894   export interface ReplaceNetworkAclEntryRequest {
  8895     /**
  8896      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8897      */
  8898     DryRun?: Boolean;
  8899     /**
  8900      * The ID of the ACL.
  8901      */
  8902     NetworkAclId: String;
  8903     /**
  8904      * The rule number of the entry to replace.
  8905      */
  8906     RuleNumber: Integer;
  8907     /**
  8908      * The IP protocol. You can specify all or -1 to mean all protocols.
  8909      */
  8910     Protocol: String;
  8911     /**
  8912      * Indicates whether to allow or deny the traffic that matches the rule.
  8913      */
  8914     RuleAction: RuleAction;
  8915     /**
  8916      * Indicates whether to replace the egress rule. Default: If no value is specified, we replace the ingress rule.
  8917      */
  8918     Egress: Boolean;
  8919     /**
  8920      * The network range to allow or deny, in CIDR notation.
  8921      */
  8922     CidrBlock: String;
  8923     /**
  8924      * ICMP protocol: The ICMP type and code. Required if specifying 1 (ICMP) for the protocol.
  8925      */
  8926     IcmpTypeCode?: IcmpTypeCode;
  8927     /**
  8928      * TCP or UDP protocols: The range of ports the rule applies to. Required if specifying 6 (TCP) or 17 (UDP) for the protocol.
  8929      */
  8930     PortRange?: PortRange;
  8931   }
  8932   export interface ReplaceRouteRequest {
  8933     /**
  8934      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8935      */
  8936     DryRun?: Boolean;
  8937     /**
  8938      * The ID of the route table.
  8939      */
  8940     RouteTableId: String;
  8941     /**
  8942      * The CIDR address block used for the destination match. The value you provide must match the CIDR of an existing route in the table.
  8943      */
  8944     DestinationCidrBlock: String;
  8945     /**
  8946      * The ID of an Internet gateway or virtual private gateway.
  8947      */
  8948     GatewayId?: String;
  8949     /**
  8950      * The ID of a NAT instance in your VPC.
  8951      */
  8952     InstanceId?: String;
  8953     /**
  8954      * The ID of a network interface.
  8955      */
  8956     NetworkInterfaceId?: String;
  8957     /**
  8958      * The ID of a VPC peering connection.
  8959      */
  8960     VpcPeeringConnectionId?: String;
  8961     /**
  8962      * The ID of a NAT gateway.
  8963      */
  8964     NatGatewayId?: String;
  8965   }
  8966   export interface ReplaceRouteTableAssociationRequest {
  8967     /**
  8968      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8969      */
  8970     DryRun?: Boolean;
  8971     /**
  8972      * The association ID.
  8973      */
  8974     AssociationId: String;
  8975     /**
  8976      * The ID of the new route table to associate with the subnet.
  8977      */
  8978     RouteTableId: String;
  8979   }
  8980   export interface ReplaceRouteTableAssociationResult {
  8981     /**
  8982      * The ID of the new association.
  8983      */
  8984     NewAssociationId?: String;
  8985   }
  8986   export type ReportInstanceReasonCodes = "instance-stuck-in-state"|"unresponsive"|"not-accepting-credentials"|"password-not-available"|"performance-network"|"performance-instance-store"|"performance-ebs-volume"|"performance-other"|"other"|string;
  8987   export interface ReportInstanceStatusRequest {
  8988     /**
  8989      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  8990      */
  8991     DryRun?: Boolean;
  8992     /**
  8993      * One or more instances.
  8994      */
  8995     Instances: InstanceIdStringList;
  8996     /**
  8997      * The status of all instances listed.
  8998      */
  8999     Status: ReportStatusType;
  9000     /**
  9001      * The time at which the reported instance health state began.
  9002      */
  9003     StartTime?: DateTime;
  9004     /**
  9005      * The time at which the reported instance health state ended.
  9006      */
  9007     EndTime?: DateTime;
  9008     /**
  9009      * One or more reason codes that describes the health state of your instance.    instance-stuck-in-state: My instance is stuck in a state.    unresponsive: My instance is unresponsive.    not-accepting-credentials: My instance is not accepting my credentials.    password-not-available: A password is not available for my instance.    performance-network: My instance is experiencing performance problems which I believe are network related.    performance-instance-store: My instance is experiencing performance problems which I believe are related to the instance stores.    performance-ebs-volume: My instance is experiencing performance problems which I believe are related to an EBS volume.    performance-other: My instance is experiencing performance problems.    other: [explain using the description parameter]  
  9010      */
  9011     ReasonCodes: ReasonCodesList;
  9012     /**
  9013      * Descriptive text about the health state of your instance.
  9014      */
  9015     Description?: String;
  9016   }
  9017   export type ReportStatusType = "ok"|"impaired"|string;
  9018   export type RequestHostIdList = String[];
  9019   export type RequestHostIdSet = String[];
  9020   export interface RequestSpotFleetRequest {
  9021     /**
  9022      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9023      */
  9024     DryRun?: Boolean;
  9025     /**
  9026      * The configuration for the Spot fleet request.
  9027      */
  9028     SpotFleetRequestConfig: SpotFleetRequestConfigData;
  9029   }
  9030   export interface RequestSpotFleetResponse {
  9031     /**
  9032      * The ID of the Spot fleet request.
  9033      */
  9034     SpotFleetRequestId: String;
  9035   }
  9036   export interface RequestSpotInstancesRequest {
  9037     /**
  9038      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9039      */
  9040     DryRun?: Boolean;
  9041     /**
  9042      * The maximum hourly price (bid) for any Spot instance launched to fulfill the request.
  9043      */
  9044     SpotPrice: String;
  9045     /**
  9046      * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.
  9047      */
  9048     ClientToken?: String;
  9049     /**
  9050      * The maximum number of Spot instances to launch. Default: 1
  9051      */
  9052     InstanceCount?: Integer;
  9053     /**
  9054      * The Spot instance request type. Default: one-time 
  9055      */
  9056     Type?: SpotInstanceType;
  9057     /**
  9058      * The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled. Default: The request is effective indefinitely.
  9059      */
  9060     ValidFrom?: DateTime;
  9061     /**
  9062      * The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. Default: The request is effective indefinitely.
  9063      */
  9064     ValidUntil?: DateTime;
  9065     /**
  9066      * The instance launch group. Launch groups are Spot instances that launch together and terminate together. Default: Instances are launched and terminated individually
  9067      */
  9068     LaunchGroup?: String;
  9069     /**
  9070      * The user-specified name for a logical grouping of bids. When you specify an Availability Zone group in a Spot Instance request, all Spot instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to bids for Spot Instances of the same instance type. Any additional Spot instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active. If there is no active instance running in the Availability Zone group that you specify for a new Spot instance request (all instances are terminated, the bid is expired, or the bid falls below current market), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group. Default: Instances are launched in any available Availability Zone.
  9071      */
  9072     AvailabilityZoneGroup?: String;
  9073     /**
  9074      * The required duration for the Spot instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can't specify an Availability Zone group or a launch group if you specify a duration.
  9075      */
  9076     BlockDurationMinutes?: Integer;
  9077     LaunchSpecification?: RequestSpotLaunchSpecification;
  9078   }
  9079   export interface RequestSpotInstancesResult {
  9080     /**
  9081      * One or more Spot instance requests.
  9082      */
  9083     SpotInstanceRequests?: SpotInstanceRequestList;
  9084   }
  9085   export interface RequestSpotLaunchSpecification {
  9086     /**
  9087      * The ID of the AMI.
  9088      */
  9089     ImageId?: String;
  9090     /**
  9091      * The name of the key pair.
  9092      */
  9093     KeyName?: String;
  9094     SecurityGroups?: ValueStringList;
  9095     /**
  9096      * The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
  9097      */
  9098     UserData?: String;
  9099     /**
  9100      * Deprecated.
  9101      */
  9102     AddressingType?: String;
  9103     /**
  9104      * The instance type.
  9105      */
  9106     InstanceType?: InstanceType;
  9107     /**
  9108      * The placement information for the instance.
  9109      */
  9110     Placement?: SpotPlacement;
  9111     /**
  9112      * The ID of the kernel.
  9113      */
  9114     KernelId?: String;
  9115     /**
  9116      * The ID of the RAM disk.
  9117      */
  9118     RamdiskId?: String;
  9119     /**
  9120      * One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.
  9121      */
  9122     BlockDeviceMappings?: BlockDeviceMappingList;
  9123     /**
  9124      * The ID of the subnet in which to launch the instance.
  9125      */
  9126     SubnetId?: String;
  9127     /**
  9128      * One or more network interfaces.
  9129      */
  9130     NetworkInterfaces?: InstanceNetworkInterfaceSpecificationList;
  9131     /**
  9132      * The IAM instance profile.
  9133      */
  9134     IamInstanceProfile?: IamInstanceProfileSpecification;
  9135     /**
  9136      * Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: false 
  9137      */
  9138     EbsOptimized?: Boolean;
  9139     Monitoring?: RunInstancesMonitoringEnabled;
  9140     SecurityGroupIds?: ValueStringList;
  9141   }
  9142   export interface Reservation {
  9143     /**
  9144      * The ID of the reservation.
  9145      */
  9146     ReservationId?: String;
  9147     /**
  9148      * The ID of the AWS account that owns the reservation.
  9149      */
  9150     OwnerId?: String;
  9151     /**
  9152      * The ID of the requester that launched the instances on your behalf (for example, AWS Management Console or Auto Scaling).
  9153      */
  9154     RequesterId?: String;
  9155     /**
  9156      * [EC2-Classic only] One or more security groups.
  9157      */
  9158     Groups?: GroupIdentifierList;
  9159     /**
  9160      * One or more instances.
  9161      */
  9162     Instances?: InstanceList;
  9163   }
  9164   export type ReservationList = Reservation[];
  9165   export type ReservationState = "payment-pending"|"payment-failed"|"active"|"retired"|string;
  9166   export interface ReservationValue {
  9167     /**
  9168      * The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).
  9169      */
  9170     RemainingTotalValue?: String;
  9171     /**
  9172      * The remaining upfront cost of the reservation.
  9173      */
  9174     RemainingUpfrontValue?: String;
  9175     /**
  9176      * The hourly rate of the reservation.
  9177      */
  9178     HourlyPrice?: String;
  9179   }
  9180   export type ReservedInstanceIdSet = String[];
  9181   export interface ReservedInstanceLimitPrice {
  9182     /**
  9183      * Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).
  9184      */
  9185     Amount?: Double;
  9186     /**
  9187      * The currency in which the limitPrice amount is specified. At this time, the only supported currency is USD.
  9188      */
  9189     CurrencyCode?: CurrencyCodeValues;
  9190   }
  9191   export interface ReservedInstanceReservationValue {
  9192     /**
  9193      * The ID of the Convertible Reserved Instance that you are exchanging.
  9194      */
  9195     ReservedInstanceId?: String;
  9196     /**
  9197      * The total value of the Convertible Reserved Instance that you are exchanging.
  9198      */
  9199     ReservationValue?: ReservationValue;
  9200   }
  9201   export type ReservedInstanceReservationValueSet = ReservedInstanceReservationValue[];
  9202   export type ReservedInstanceState = "payment-pending"|"active"|"payment-failed"|"retired"|string;
  9203   export interface ReservedInstances {
  9204     /**
  9205      * The ID of the Reserved Instance.
  9206      */
  9207     ReservedInstancesId?: String;
  9208     /**
  9209      * The instance type on which the Reserved Instance can be used.
  9210      */
  9211     InstanceType?: InstanceType;
  9212     /**
  9213      * The Availability Zone in which the Reserved Instance can be used.
  9214      */
  9215     AvailabilityZone?: String;
  9216     /**
  9217      * The date and time the Reserved Instance started.
  9218      */
  9219     Start?: DateTime;
  9220     /**
  9221      * The time when the Reserved Instance expires.
  9222      */
  9223     End?: DateTime;
  9224     /**
  9225      * The duration of the Reserved Instance, in seconds.
  9226      */
  9227     Duration?: Long;
  9228     /**
  9229      * The usage price of the Reserved Instance, per hour.
  9230      */
  9231     UsagePrice?: Float;
  9232     /**
  9233      * The purchase price of the Reserved Instance.
  9234      */
  9235     FixedPrice?: Float;
  9236     /**
  9237      * The number of reservations purchased.
  9238      */
  9239     InstanceCount?: Integer;
  9240     /**
  9241      * The Reserved Instance product platform description.
  9242      */
  9243     ProductDescription?: RIProductDescription;
  9244     /**
  9245      * The state of the Reserved Instance purchase.
  9246      */
  9247     State?: ReservedInstanceState;
  9248     /**
  9249      * Any tags assigned to the resource.
  9250      */
  9251     Tags?: TagList;
  9252     /**
  9253      * The tenancy of the instance.
  9254      */
  9255     InstanceTenancy?: Tenancy;
  9256     /**
  9257      * The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.
  9258      */
  9259     CurrencyCode?: CurrencyCodeValues;
  9260     /**
  9261      * The Reserved Instance offering type.
  9262      */
  9263     OfferingType?: OfferingTypeValues;
  9264     /**
  9265      * The recurring charge tag assigned to the resource.
  9266      */
  9267     RecurringCharges?: RecurringChargesList;
  9268     /**
  9269      * The offering class of the Reserved Instance.
  9270      */
  9271     OfferingClass?: OfferingClassType;
  9272     /**
  9273      * The scope of the Reserved Instance.
  9274      */
  9275     Scope?: scope;
  9276   }
  9277   export interface ReservedInstancesConfiguration {
  9278     /**
  9279      * The Availability Zone for the modified Reserved Instances.
  9280      */
  9281     AvailabilityZone?: String;
  9282     /**
  9283      * The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.
  9284      */
  9285     Platform?: String;
  9286     /**
  9287      * The number of modified Reserved Instances.
  9288      */
  9289     InstanceCount?: Integer;
  9290     /**
  9291      * The instance type for the modified Reserved Instances.
  9292      */
  9293     InstanceType?: InstanceType;
  9294     /**
  9295      * Whether the Reserved Instance is standard or convertible.
  9296      */
  9297     Scope?: scope;
  9298   }
  9299   export type ReservedInstancesConfigurationList = ReservedInstancesConfiguration[];
  9300   export interface ReservedInstancesId {
  9301     /**
  9302      * The ID of the Reserved Instance.
  9303      */
  9304     ReservedInstancesId?: String;
  9305   }
  9306   export type ReservedInstancesIdStringList = String[];
  9307   export type ReservedInstancesList = ReservedInstances[];
  9308   export interface ReservedInstancesListing {
  9309     /**
  9310      * The ID of the Reserved Instance listing.
  9311      */
  9312     ReservedInstancesListingId?: String;
  9313     /**
  9314      * The ID of the Reserved Instance.
  9315      */
  9316     ReservedInstancesId?: String;
  9317     /**
  9318      * The time the listing was created.
  9319      */
  9320     CreateDate?: DateTime;
  9321     /**
  9322      * The last modified timestamp of the listing.
  9323      */
  9324     UpdateDate?: DateTime;
  9325     /**
  9326      * The status of the Reserved Instance listing.
  9327      */
  9328     Status?: ListingStatus;
  9329     /**
  9330      * The reason for the current status of the Reserved Instance listing. The response can be blank.
  9331      */
  9332     StatusMessage?: String;
  9333     /**
  9334      * The number of instances in this state.
  9335      */
  9336     InstanceCounts?: InstanceCountList;
  9337     /**
  9338      * The price of the Reserved Instance listing.
  9339      */
  9340     PriceSchedules?: PriceScheduleList;
  9341     /**
  9342      * Any tags assigned to the resource.
  9343      */
  9344     Tags?: TagList;
  9345     /**
  9346      * A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see Ensuring Idempotency.
  9347      */
  9348     ClientToken?: String;
  9349   }
  9350   export type ReservedInstancesListingList = ReservedInstancesListing[];
  9351   export interface ReservedInstancesModification {
  9352     /**
  9353      * A unique ID for the Reserved Instance modification.
  9354      */
  9355     ReservedInstancesModificationId?: String;
  9356     /**
  9357      * The IDs of one or more Reserved Instances.
  9358      */
  9359     ReservedInstancesIds?: ReservedIntancesIds;
  9360     /**
  9361      * Contains target configurations along with their corresponding new Reserved Instance IDs.
  9362      */
  9363     ModificationResults?: ReservedInstancesModificationResultList;
  9364     /**
  9365      * The time when the modification request was created.
  9366      */
  9367     CreateDate?: DateTime;
  9368     /**
  9369      * The time when the modification request was last updated.
  9370      */
  9371     UpdateDate?: DateTime;
  9372     /**
  9373      * The time for the modification to become effective.
  9374      */
  9375     EffectiveDate?: DateTime;
  9376     /**
  9377      * The status of the Reserved Instances modification request.
  9378      */
  9379     Status?: String;
  9380     /**
  9381      * The reason for the status.
  9382      */
  9383     StatusMessage?: String;
  9384     /**
  9385      * A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see Ensuring Idempotency.
  9386      */
  9387     ClientToken?: String;
  9388   }
  9389   export type ReservedInstancesModificationIdStringList = String[];
  9390   export type ReservedInstancesModificationList = ReservedInstancesModification[];
  9391   export interface ReservedInstancesModificationResult {
  9392     /**
  9393      * The ID for the Reserved Instances that were created as part of the modification request. This field is only available when the modification is fulfilled.
  9394      */
  9395     ReservedInstancesId?: String;
  9396     /**
  9397      * The target Reserved Instances configurations supplied as part of the modification request.
  9398      */
  9399     TargetConfiguration?: ReservedInstancesConfiguration;
  9400   }
  9401   export type ReservedInstancesModificationResultList = ReservedInstancesModificationResult[];
  9402   export interface ReservedInstancesOffering {
  9403     /**
  9404      * The ID of the Reserved Instance offering. This is the offering ID used in GetReservedInstancesExchangeQuote to confirm that an exchange can be made.
  9405      */
  9406     ReservedInstancesOfferingId?: String;
  9407     /**
  9408      * The instance type on which the Reserved Instance can be used.
  9409      */
  9410     InstanceType?: InstanceType;
  9411     /**
  9412      * The Availability Zone in which the Reserved Instance can be used.
  9413      */
  9414     AvailabilityZone?: String;
  9415     /**
  9416      * The duration of the Reserved Instance, in seconds.
  9417      */
  9418     Duration?: Long;
  9419     /**
  9420      * The usage price of the Reserved Instance, per hour.
  9421      */
  9422     UsagePrice?: Float;
  9423     /**
  9424      * The purchase price of the Reserved Instance.
  9425      */
  9426     FixedPrice?: Float;
  9427     /**
  9428      * The Reserved Instance product platform description.
  9429      */
  9430     ProductDescription?: RIProductDescription;
  9431     /**
  9432      * The tenancy of the instance.
  9433      */
  9434     InstanceTenancy?: Tenancy;
  9435     /**
  9436      * The currency of the Reserved Instance offering you are purchasing. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.
  9437      */
  9438     CurrencyCode?: CurrencyCodeValues;
  9439     /**
  9440      * The Reserved Instance offering type.
  9441      */
  9442     OfferingType?: OfferingTypeValues;
  9443     /**
  9444      * The recurring charge tag assigned to the resource.
  9445      */
  9446     RecurringCharges?: RecurringChargesList;
  9447     /**
  9448      * Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is true.
  9449      */
  9450     Marketplace?: Boolean;
  9451     /**
  9452      * The pricing details of the Reserved Instance offering.
  9453      */
  9454     PricingDetails?: PricingDetailsList;
  9455     /**
  9456      * If convertible it can be exchanged for Reserved Instances of the same or higher monetary value, with different configurations. If standard, it is not possible to perform an exchange.
  9457      */
  9458     OfferingClass?: OfferingClassType;
  9459     /**
  9460      * Whether the Reserved Instance is applied to instances in a region or an Availability Zone.
  9461      */
  9462     Scope?: scope;
  9463   }
  9464   export type ReservedInstancesOfferingIdStringList = String[];
  9465   export type ReservedInstancesOfferingList = ReservedInstancesOffering[];
  9466   export type ReservedIntancesIds = ReservedInstancesId[];
  9467   export type ResetImageAttributeName = "launchPermission"|string;
  9468   export interface ResetImageAttributeRequest {
  9469     /**
  9470      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9471      */
  9472     DryRun?: Boolean;
  9473     /**
  9474      * The ID of the AMI.
  9475      */
  9476     ImageId: String;
  9477     /**
  9478      * The attribute to reset (currently you can only reset the launch permission attribute).
  9479      */
  9480     Attribute: ResetImageAttributeName;
  9481   }
  9482   export interface ResetInstanceAttributeRequest {
  9483     /**
  9484      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9485      */
  9486     DryRun?: Boolean;
  9487     /**
  9488      * The ID of the instance.
  9489      */
  9490     InstanceId: String;
  9491     /**
  9492      * The attribute to reset.  You can only reset the following attributes: kernel | ramdisk | sourceDestCheck. To change an instance attribute, use ModifyInstanceAttribute. 
  9493      */
  9494     Attribute: InstanceAttributeName;
  9495   }
  9496   export interface ResetNetworkInterfaceAttributeRequest {
  9497     /**
  9498      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9499      */
  9500     DryRun?: Boolean;
  9501     /**
  9502      * The ID of the network interface.
  9503      */
  9504     NetworkInterfaceId: String;
  9505     /**
  9506      * The source/destination checking attribute. Resets the value to true.
  9507      */
  9508     SourceDestCheck?: String;
  9509   }
  9510   export interface ResetSnapshotAttributeRequest {
  9511     /**
  9512      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9513      */
  9514     DryRun?: Boolean;
  9515     /**
  9516      * The ID of the snapshot.
  9517      */
  9518     SnapshotId: String;
  9519     /**
  9520      * The attribute to reset. Currently, only the attribute for permission to create volumes can be reset.
  9521      */
  9522     Attribute: SnapshotAttributeName;
  9523   }
  9524   export type ResourceIdList = String[];
  9525   export type ResourceType = "customer-gateway"|"dhcp-options"|"image"|"instance"|"internet-gateway"|"network-acl"|"network-interface"|"reserved-instances"|"route-table"|"snapshot"|"spot-instances-request"|"subnet"|"security-group"|"volume"|"vpc"|"vpn-connection"|"vpn-gateway"|string;
  9526   export type ResponseHostIdList = String[];
  9527   export type ResponseHostIdSet = String[];
  9528   export type RestorableByStringList = String[];
  9529   export interface RestoreAddressToClassicRequest {
  9530     /**
  9531      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9532      */
  9533     DryRun?: Boolean;
  9534     /**
  9535      * The Elastic IP address.
  9536      */
  9537     PublicIp: String;
  9538   }
  9539   export interface RestoreAddressToClassicResult {
  9540     /**
  9541      * The move status for the IP address.
  9542      */
  9543     Status?: Status;
  9544     /**
  9545      * The Elastic IP address.
  9546      */
  9547     PublicIp?: String;
  9548   }
  9549   export interface RevokeSecurityGroupEgressRequest {
  9550     /**
  9551      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9552      */
  9553     DryRun?: Boolean;
  9554     /**
  9555      * The ID of the security group.
  9556      */
  9557     GroupId: String;
  9558     /**
  9559      * The name of a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.
  9560      */
  9561     SourceSecurityGroupName?: String;
  9562     /**
  9563      * The AWS account number for a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.
  9564      */
  9565     SourceSecurityGroupOwnerId?: String;
  9566     /**
  9567      * The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.
  9568      */
  9569     IpProtocol?: String;
  9570     /**
  9571      * The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.
  9572      */
  9573     FromPort?: Integer;
  9574     /**
  9575      * The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.
  9576      */
  9577     ToPort?: Integer;
  9578     /**
  9579      * The CIDR IP address range. We recommend that you specify the CIDR range in a set of IP permissions instead.
  9580      */
  9581     CidrIp?: String;
  9582     /**
  9583      * A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.
  9584      */
  9585     IpPermissions?: IpPermissionList;
  9586   }
  9587   export interface RevokeSecurityGroupIngressRequest {
  9588     /**
  9589      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9590      */
  9591     DryRun?: Boolean;
  9592     /**
  9593      * [EC2-Classic, default VPC] The name of the security group.
  9594      */
  9595     GroupName?: String;
  9596     /**
  9597      * The ID of the security group. Required for a security group in a nondefault VPC.
  9598      */
  9599     GroupId?: String;
  9600     /**
  9601      * [EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. For EC2-VPC, the source security group must be in the same VPC. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.
  9602      */
  9603     SourceSecurityGroupName?: String;
  9604     /**
  9605      * [EC2-Classic] The AWS account ID of the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.
  9606      */
  9607     SourceSecurityGroupOwnerId?: String;
  9608     /**
  9609      * The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.
  9610      */
  9611     IpProtocol?: String;
  9612     /**
  9613      * The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.
  9614      */
  9615     FromPort?: Integer;
  9616     /**
  9617      * The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.
  9618      */
  9619     ToPort?: Integer;
  9620     /**
  9621      * The CIDR IP address range. You can't specify this parameter when specifying a source security group.
  9622      */
  9623     CidrIp?: String;
  9624     /**
  9625      * A set of IP permissions. You can't specify a source security group and a CIDR IP address range.
  9626      */
  9627     IpPermissions?: IpPermissionList;
  9628   }
  9629   export interface Route {
  9630     /**
  9631      * The CIDR block used for the destination match.
  9632      */
  9633     DestinationCidrBlock?: String;
  9634     /**
  9635      * The prefix of the AWS service.
  9636      */
  9637     DestinationPrefixListId?: String;
  9638     /**
  9639      * The ID of a gateway attached to your VPC.
  9640      */
  9641     GatewayId?: String;
  9642     /**
  9643      * The ID of a NAT instance in your VPC.
  9644      */
  9645     InstanceId?: String;
  9646     /**
  9647      * The AWS account ID of the owner of the instance.
  9648      */
  9649     InstanceOwnerId?: String;
  9650     /**
  9651      * The ID of the network interface.
  9652      */
  9653     NetworkInterfaceId?: String;
  9654     /**
  9655      * The ID of the VPC peering connection.
  9656      */
  9657     VpcPeeringConnectionId?: String;
  9658     /**
  9659      * The ID of a NAT gateway.
  9660      */
  9661     NatGatewayId?: String;
  9662     /**
  9663      * The state of the route. The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, or the specified NAT instance has been terminated).
  9664      */
  9665     State?: RouteState;
  9666     /**
  9667      * Describes how the route was created.    CreateRouteTable - The route was automatically created when the route table was created.    CreateRoute - The route was manually added to the route table.    EnableVgwRoutePropagation - The route was propagated by route propagation.  
  9668      */
  9669     Origin?: RouteOrigin;
  9670   }
  9671   export type RouteList = Route[];
  9672   export type RouteOrigin = "CreateRouteTable"|"CreateRoute"|"EnableVgwRoutePropagation"|string;
  9673   export type RouteState = "active"|"blackhole"|string;
  9674   export interface RouteTable {
  9675     /**
  9676      * The ID of the route table.
  9677      */
  9678     RouteTableId?: String;
  9679     /**
  9680      * The ID of the VPC.
  9681      */
  9682     VpcId?: String;
  9683     /**
  9684      * The routes in the route table.
  9685      */
  9686     Routes?: RouteList;
  9687     /**
  9688      * The associations between the route table and one or more subnets.
  9689      */
  9690     Associations?: RouteTableAssociationList;
  9691     /**
  9692      * Any tags assigned to the route table.
  9693      */
  9694     Tags?: TagList;
  9695     /**
  9696      * Any virtual private gateway (VGW) propagating routes.
  9697      */
  9698     PropagatingVgws?: PropagatingVgwList;
  9699   }
  9700   export interface RouteTableAssociation {
  9701     /**
  9702      * The ID of the association between a route table and a subnet.
  9703      */
  9704     RouteTableAssociationId?: String;
  9705     /**
  9706      * The ID of the route table.
  9707      */
  9708     RouteTableId?: String;
  9709     /**
  9710      * The ID of the subnet. A subnet ID is not returned for an implicit association.
  9711      */
  9712     SubnetId?: String;
  9713     /**
  9714      * Indicates whether this is the main route table.
  9715      */
  9716     Main?: Boolean;
  9717   }
  9718   export type RouteTableAssociationList = RouteTableAssociation[];
  9719   export type RouteTableList = RouteTable[];
  9720   export type RuleAction = "allow"|"deny"|string;
  9721   export interface RunInstancesMonitoringEnabled {
  9722     /**
  9723      * Indicates whether monitoring is enabled for the instance.
  9724      */
  9725     Enabled: Boolean;
  9726   }
  9727   export interface RunInstancesRequest {
  9728     /**
  9729      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9730      */
  9731     DryRun?: Boolean;
  9732     /**
  9733      * The ID of the AMI, which you can get by calling DescribeImages.
  9734      */
  9735     ImageId: String;
  9736     /**
  9737      * The minimum number of instances to launch. If you specify a minimum that is more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches no instances. Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 General FAQ.
  9738      */
  9739     MinCount: Integer;
  9740     /**
  9741      * The maximum number of instances to launch. If you specify more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches the largest possible number of instances above MinCount. Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 FAQ.
  9742      */
  9743     MaxCount: Integer;
  9744     /**
  9745      * The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.  If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. 
  9746      */
  9747     KeyName?: String;
  9748     /**
  9749      * [EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. Default: Amazon EC2 uses the default security group.
  9750      */
  9751     SecurityGroups?: SecurityGroupStringList;
  9752     /**
  9753      * One or more security group IDs. You can create a security group using CreateSecurityGroup. Default: Amazon EC2 uses the default security group.
  9754      */
  9755     SecurityGroupIds?: SecurityGroupIdStringList;
  9756     /**
  9757      * The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
  9758      */
  9759     UserData?: String;
  9760     /**
  9761      * The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide. Default: m1.small 
  9762      */
  9763     InstanceType?: InstanceType;
  9764     /**
  9765      * The placement for the instance.
  9766      */
  9767     Placement?: Placement;
  9768     /**
  9769      * The ID of the kernel.  We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see  PV-GRUB in the Amazon Elastic Compute Cloud User Guide. 
  9770      */
  9771     KernelId?: String;
  9772     /**
  9773      * The ID of the RAM disk.  We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see  PV-GRUB in the Amazon Elastic Compute Cloud User Guide. 
  9774      */
  9775     RamdiskId?: String;
  9776     /**
  9777      * The block device mapping.  Supplying both a snapshot ID and an encryption value as arguments for block-device mapping results in an error. This is because only blank volumes can be encrypted on start, and these are not created from a snapshot. If a snapshot is the basis for the volume, it contains data by definition and its encryption status cannot be changed using this action. 
  9778      */
  9779     BlockDeviceMappings?: BlockDeviceMappingRequestList;
  9780     /**
  9781      * The monitoring for the instance.
  9782      */
  9783     Monitoring?: RunInstancesMonitoringEnabled;
  9784     /**
  9785      * [EC2-VPC] The ID of the subnet to launch the instance into.
  9786      */
  9787     SubnetId?: String;
  9788     /**
  9789      * If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. If you set this parameter to true and then later want to be able to terminate the instance, you must first change the value of the disableApiTermination attribute to false using ModifyInstanceAttribute. Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance by running the shutdown command from the instance. Default: false 
  9790      */
  9791     DisableApiTermination?: Boolean;
  9792     /**
  9793      * Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: stop 
  9794      */
  9795     InstanceInitiatedShutdownBehavior?: ShutdownBehavior;
  9796     /**
  9797      * [EC2-VPC] The primary IP address. You must specify a value from the IP address range of the subnet. Only one private IP address can be designated as primary. Therefore, you can't specify this parameter if PrivateIpAddresses.n.Primary is set to true and PrivateIpAddresses.n.PrivateIpAddress is set to an IP address.  You cannot specify this option if you're launching more than one instance in the request. Default: We select an IP address from the IP address range of the subnet.
  9798      */
  9799     PrivateIpAddress?: String;
  9800     /**
  9801      * Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. Constraints: Maximum 64 ASCII characters
  9802      */
  9803     ClientToken?: String;
  9804     /**
  9805      * Reserved.
  9806      */
  9807     AdditionalInfo?: String;
  9808     /**
  9809      * One or more network interfaces.
  9810      */
  9811     NetworkInterfaces?: InstanceNetworkInterfaceSpecificationList;
  9812     /**
  9813      * The IAM instance profile.
  9814      */
  9815     IamInstanceProfile?: IamInstanceProfileSpecification;
  9816     /**
  9817      * Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: false 
  9818      */
  9819     EbsOptimized?: Boolean;
  9820   }
  9821   export interface RunScheduledInstancesRequest {
  9822     /**
  9823      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
  9824      */
  9825     DryRun?: Boolean;
  9826     /**
  9827      * Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see Ensuring Idempotency.
  9828      */
  9829     ClientToken?: String;
  9830     /**
  9831      * The number of instances. Default: 1
  9832      */
  9833     InstanceCount?: Integer;
  9834     /**
  9835      * The Scheduled Instance ID.
  9836      */
  9837     ScheduledInstanceId: String;
  9838     /**
  9839      * The launch specification. You must match the instance type, Availability Zone, network, and platform of the schedule that you purchased.
  9840      */
  9841     LaunchSpecification: ScheduledInstancesLaunchSpecification;
  9842   }
  9843   export interface RunScheduledInstancesResult {
  9844     /**
  9845      * The IDs of the newly launched instances.
  9846      */
  9847     InstanceIdSet?: InstanceIdSet;
  9848   }
  9849   export interface S3Storage {
  9850     /**
  9851      * The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.
  9852      */
  9853     Bucket?: String;
  9854     /**
  9855      * The beginning of the file name of the AMI.
  9856      */
  9857     Prefix?: String;
  9858     /**
  9859      * The access key ID of the owner of the bucket. Before you specify a value for your access key ID, review and follow the guidance in Best Practices for Managing AWS Access Keys.
  9860      */
  9861     AWSAccessKeyId?: String;
  9862     /**
  9863      * An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.
  9864      */
  9865     UploadPolicy?: _Blob;
  9866     /**
  9867      * The signature of the JSON document.
  9868      */
  9869     UploadPolicySignature?: String;
  9870   }
  9871   export interface ScheduledInstance {
  9872     /**
  9873      * The Scheduled Instance ID.
  9874      */
  9875     ScheduledInstanceId?: String;
  9876     /**
  9877      * The instance type.
  9878      */
  9879     InstanceType?: String;
  9880     /**
  9881      * The platform (Linux/UNIX or Windows).
  9882      */
  9883     Platform?: String;
  9884     /**
  9885      * The network platform (EC2-Classic or EC2-VPC).
  9886      */
  9887     NetworkPlatform?: String;
  9888     /**
  9889      * The Availability Zone.
  9890      */
  9891     AvailabilityZone?: String;
  9892     /**
  9893      * The number of hours in the schedule.
  9894      */
  9895     SlotDurationInHours?: Integer;
  9896     /**
  9897      * The schedule recurrence.
  9898      */
  9899     Recurrence?: ScheduledInstanceRecurrence;
  9900     /**
  9901      * The time that the previous schedule ended or will end.
  9902      */
  9903     PreviousSlotEndTime?: DateTime;
  9904     /**
  9905      * The time for the next schedule to start.
  9906      */
  9907     NextSlotStartTime?: DateTime;
  9908     /**
  9909      * The hourly price for a single instance.
  9910      */
  9911     HourlyPrice?: String;
  9912     /**
  9913      * The total number of hours for a single instance for the entire term.
  9914      */
  9915     TotalScheduledInstanceHours?: Integer;
  9916     /**
  9917      * The number of instances.
  9918      */
  9919     InstanceCount?: Integer;
  9920     /**
  9921      * The start date for the Scheduled Instance.
  9922      */
  9923     TermStartDate?: DateTime;
  9924     /**
  9925      * The end date for the Scheduled Instance.
  9926      */
  9927     TermEndDate?: DateTime;
  9928     /**
  9929      * The date when the Scheduled Instance was purchased.
  9930      */
  9931     CreateDate?: DateTime;
  9932   }
  9933   export interface ScheduledInstanceAvailability {
  9934     /**
  9935      * The instance type. You can specify one of the C3, C4, M4, or R3 instance types.
  9936      */
  9937     InstanceType?: String;
  9938     /**
  9939      * The platform (Linux/UNIX or Windows).
  9940      */
  9941     Platform?: String;
  9942     /**
  9943      * The network platform (EC2-Classic or EC2-VPC).
  9944      */
  9945     NetworkPlatform?: String;
  9946     /**
  9947      * The Availability Zone.
  9948      */
  9949     AvailabilityZone?: String;
  9950     /**
  9951      * The purchase token. This token expires in two hours.
  9952      */
  9953     PurchaseToken?: String;
  9954     /**
  9955      * The number of hours in the schedule.
  9956      */
  9957     SlotDurationInHours?: Integer;
  9958     /**
  9959      * The schedule recurrence.
  9960      */
  9961     Recurrence?: ScheduledInstanceRecurrence;
  9962     /**
  9963      * The time period for the first schedule to start.
  9964      */
  9965     FirstSlotStartTime?: DateTime;
  9966     /**
  9967      * The hourly price for a single instance.
  9968      */
  9969     HourlyPrice?: String;
  9970     /**
  9971      * The total number of hours for a single instance for the entire term.
  9972      */
  9973     TotalScheduledInstanceHours?: Integer;
  9974     /**
  9975      * The number of available instances.
  9976      */
  9977     AvailableInstanceCount?: Integer;
  9978     /**
  9979      * The minimum term. The only possible value is 365 days.
  9980      */
  9981     MinTermDurationInDays?: Integer;
  9982     /**
  9983      * The maximum term. The only possible value is 365 days.
  9984      */
  9985     MaxTermDurationInDays?: Integer;
  9986   }
  9987   export type ScheduledInstanceAvailabilitySet = ScheduledInstanceAvailability[];
  9988   export type ScheduledInstanceIdRequestSet = String[];
  9989   export interface ScheduledInstanceRecurrence {
  9990     /**
  9991      * The frequency (Daily, Weekly, or Monthly).
  9992      */
  9993     Frequency?: String;
  9994     /**
  9995      * The interval quantity. The interval unit depends on the value of frequency. For example, every 2 weeks or every 2 months.
  9996      */
  9997     Interval?: Integer;
  9998     /**
  9999      * The days. For a monthly schedule, this is one or more days of the month (1-31). For a weekly schedule, this is one or more days of the week (1-7, where 1 is Sunday).
 10000      */
 10001     OccurrenceDaySet?: OccurrenceDaySet;
 10002     /**
 10003      * Indicates whether the occurrence is relative to the end of the specified week or month.
 10004      */
 10005     OccurrenceRelativeToEnd?: Boolean;
 10006     /**
 10007      * The unit for occurrenceDaySet (DayOfWeek or DayOfMonth).
 10008      */
 10009     OccurrenceUnit?: String;
 10010   }
 10011   export interface ScheduledInstanceRecurrenceRequest {
 10012     /**
 10013      * The frequency (Daily, Weekly, or Monthly).
 10014      */
 10015     Frequency?: String;
 10016     /**
 10017      * The interval quantity. The interval unit depends on the value of Frequency. For example, every 2 weeks or every 2 months.
 10018      */
 10019     Interval?: Integer;
 10020     /**
 10021      * The days. For a monthly schedule, this is one or more days of the month (1-31). For a weekly schedule, this is one or more days of the week (1-7, where 1 is Sunday). You can't specify this value with a daily schedule. If the occurrence is relative to the end of the month, you can specify only a single day.
 10022      */
 10023     OccurrenceDays?: OccurrenceDayRequestSet;
 10024     /**
 10025      * Indicates whether the occurrence is relative to the end of the specified week or month. You can't specify this value with a daily schedule.
 10026      */
 10027     OccurrenceRelativeToEnd?: Boolean;
 10028     /**
 10029      * The unit for OccurrenceDays (DayOfWeek or DayOfMonth). This value is required for a monthly schedule. You can't specify DayOfWeek with a weekly schedule. You can't specify this value with a daily schedule.
 10030      */
 10031     OccurrenceUnit?: String;
 10032   }
 10033   export type ScheduledInstanceSet = ScheduledInstance[];
 10034   export interface ScheduledInstancesBlockDeviceMapping {
 10035     /**
 10036      * The device name exposed to the instance (for example, /dev/sdh or xvdh).
 10037      */
 10038     DeviceName?: String;
 10039     /**
 10040      * Suppresses the specified device included in the block device mapping of the AMI.
 10041      */
 10042     NoDevice?: String;
 10043     /**
 10044      * The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with two available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
 10045      */
 10046     VirtualName?: String;
 10047     /**
 10048      * Parameters used to set up EBS volumes automatically when the instance is launched.
 10049      */
 10050     Ebs?: ScheduledInstancesEbs;
 10051   }
 10052   export type ScheduledInstancesBlockDeviceMappingSet = ScheduledInstancesBlockDeviceMapping[];
 10053   export interface ScheduledInstancesEbs {
 10054     /**
 10055      * The ID of the snapshot.
 10056      */
 10057     SnapshotId?: String;
 10058     /**
 10059      * The size of the volume, in GiB. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
 10060      */
 10061     VolumeSize?: Integer;
 10062     /**
 10063      * Indicates whether the volume is deleted on instance termination.
 10064      */
 10065     DeleteOnTermination?: Boolean;
 10066     /**
 10067      * The volume type. gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, Throughput Optimized HDD for st1, Cold HDD for sc1, or standard for Magnetic. Default: standard 
 10068      */
 10069     VolumeType?: String;
 10070     /**
 10071      * The number of I/O operations per second (IOPS) that the volume supports. For io1 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about gp2 baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide. Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes. Condition: This parameter is required for requests to create io1volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.
 10072      */
 10073     Iops?: Integer;
 10074     /**
 10075      * Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.
 10076      */
 10077     Encrypted?: Boolean;
 10078   }
 10079   export interface ScheduledInstancesIamInstanceProfile {
 10080     /**
 10081      * The Amazon Resource Name (ARN).
 10082      */
 10083     Arn?: String;
 10084     /**
 10085      * The name.
 10086      */
 10087     Name?: String;
 10088   }
 10089   export interface ScheduledInstancesLaunchSpecification {
 10090     /**
 10091      * The ID of the Amazon Machine Image (AMI).
 10092      */
 10093     ImageId: String;
 10094     /**
 10095      * The name of the key pair.
 10096      */
 10097     KeyName?: String;
 10098     /**
 10099      * The IDs of one or more security groups.
 10100      */
 10101     SecurityGroupIds?: ScheduledInstancesSecurityGroupIdSet;
 10102     /**
 10103      * The base64-encoded MIME user data.
 10104      */
 10105     UserData?: String;
 10106     /**
 10107      * The placement information.
 10108      */
 10109     Placement?: ScheduledInstancesPlacement;
 10110     /**
 10111      * The ID of the kernel.
 10112      */
 10113     KernelId?: String;
 10114     /**
 10115      * The instance type.
 10116      */
 10117     InstanceType?: String;
 10118     /**
 10119      * The ID of the RAM disk.
 10120      */
 10121     RamdiskId?: String;
 10122     /**
 10123      * One or more block device mapping entries.
 10124      */
 10125     BlockDeviceMappings?: ScheduledInstancesBlockDeviceMappingSet;
 10126     /**
 10127      * Enable or disable monitoring for the instances.
 10128      */
 10129     Monitoring?: ScheduledInstancesMonitoring;
 10130     /**
 10131      * The ID of the subnet in which to launch the instances.
 10132      */
 10133     SubnetId?: String;
 10134     /**
 10135      * One or more network interfaces.
 10136      */
 10137     NetworkInterfaces?: ScheduledInstancesNetworkInterfaceSet;
 10138     /**
 10139      * The IAM instance profile.
 10140      */
 10141     IamInstanceProfile?: ScheduledInstancesIamInstanceProfile;
 10142     /**
 10143      * Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: false 
 10144      */
 10145     EbsOptimized?: Boolean;
 10146   }
 10147   export interface ScheduledInstancesMonitoring {
 10148     /**
 10149      * Indicates whether monitoring is enabled.
 10150      */
 10151     Enabled?: Boolean;
 10152   }
 10153   export interface ScheduledInstancesNetworkInterface {
 10154     /**
 10155      * The ID of the network interface.
 10156      */
 10157     NetworkInterfaceId?: String;
 10158     /**
 10159      * The index of the device for the network interface attachment.
 10160      */
 10161     DeviceIndex?: Integer;
 10162     /**
 10163      * The ID of the subnet.
 10164      */
 10165     SubnetId?: String;
 10166     /**
 10167      * The description.
 10168      */
 10169     Description?: String;
 10170     /**
 10171      * The IP address of the network interface within the subnet.
 10172      */
 10173     PrivateIpAddress?: String;
 10174     /**
 10175      * The private IP addresses.
 10176      */
 10177     PrivateIpAddressConfigs?: PrivateIpAddressConfigSet;
 10178     /**
 10179      * The number of secondary private IP addresses.
 10180      */
 10181     SecondaryPrivateIpAddressCount?: Integer;
 10182     /**
 10183      * Indicates whether to assign a public IP address to instances launched in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.
 10184      */
 10185     AssociatePublicIpAddress?: Boolean;
 10186     /**
 10187      * The IDs of one or more security groups.
 10188      */
 10189     Groups?: ScheduledInstancesSecurityGroupIdSet;
 10190     /**
 10191      * Indicates whether to delete the interface when the instance is terminated.
 10192      */
 10193     DeleteOnTermination?: Boolean;
 10194   }
 10195   export type ScheduledInstancesNetworkInterfaceSet = ScheduledInstancesNetworkInterface[];
 10196   export interface ScheduledInstancesPlacement {
 10197     /**
 10198      * The Availability Zone.
 10199      */
 10200     AvailabilityZone?: String;
 10201     /**
 10202      * The name of the placement group.
 10203      */
 10204     GroupName?: String;
 10205   }
 10206   export interface ScheduledInstancesPrivateIpAddressConfig {
 10207     /**
 10208      * The IP address.
 10209      */
 10210     PrivateIpAddress?: String;
 10211     /**
 10212      * Indicates whether this is a primary IP address. Otherwise, this is a secondary IP address.
 10213      */
 10214     Primary?: Boolean;
 10215   }
 10216   export type ScheduledInstancesSecurityGroupIdSet = String[];
 10217   export interface SecurityGroup {
 10218     /**
 10219      * The AWS account ID of the owner of the security group.
 10220      */
 10221     OwnerId?: String;
 10222     /**
 10223      * The name of the security group.
 10224      */
 10225     GroupName?: String;
 10226     /**
 10227      * The ID of the security group.
 10228      */
 10229     GroupId?: String;
 10230     /**
 10231      * A description of the security group.
 10232      */
 10233     Description?: String;
 10234     /**
 10235      * One or more inbound rules associated with the security group.
 10236      */
 10237     IpPermissions?: IpPermissionList;
 10238     /**
 10239      * [EC2-VPC] One or more outbound rules associated with the security group.
 10240      */
 10241     IpPermissionsEgress?: IpPermissionList;
 10242     /**
 10243      * [EC2-VPC] The ID of the VPC for the security group.
 10244      */
 10245     VpcId?: String;
 10246     /**
 10247      * Any tags assigned to the security group.
 10248      */
 10249     Tags?: TagList;
 10250   }
 10251   export type SecurityGroupIdStringList = String[];
 10252   export type SecurityGroupList = SecurityGroup[];
 10253   export interface SecurityGroupReference {
 10254     /**
 10255      * The ID of your security group.
 10256      */
 10257     GroupId: String;
 10258     /**
 10259      * The ID of the VPC with the referencing security group.
 10260      */
 10261     ReferencingVpcId: String;
 10262     /**
 10263      * The ID of the VPC peering connection.
 10264      */
 10265     VpcPeeringConnectionId?: String;
 10266   }
 10267   export type SecurityGroupReferences = SecurityGroupReference[];
 10268   export type SecurityGroupStringList = String[];
 10269   export type ShutdownBehavior = "stop"|"terminate"|string;
 10270   export interface SlotDateTimeRangeRequest {
 10271     /**
 10272      * The earliest date and time, in UTC, for the Scheduled Instance to start.
 10273      */
 10274     EarliestTime: DateTime;
 10275     /**
 10276      * The latest date and time, in UTC, for the Scheduled Instance to start. This value must be later than or equal to the earliest date and at most three months in the future.
 10277      */
 10278     LatestTime: DateTime;
 10279   }
 10280   export interface SlotStartTimeRangeRequest {
 10281     /**
 10282      * The earliest date and time, in UTC, for the Scheduled Instance to start.
 10283      */
 10284     EarliestTime?: DateTime;
 10285     /**
 10286      * The latest date and time, in UTC, for the Scheduled Instance to start.
 10287      */
 10288     LatestTime?: DateTime;
 10289   }
 10290   export interface Snapshot {
 10291     /**
 10292      * The ID of the snapshot. Each snapshot receives a unique identifier when it is created.
 10293      */
 10294     SnapshotId?: String;
 10295     /**
 10296      * The ID of the volume that was used to create the snapshot. Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.
 10297      */
 10298     VolumeId?: String;
 10299     /**
 10300      * The snapshot state.
 10301      */
 10302     State?: SnapshotState;
 10303     /**
 10304      * Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot copy operation fails (for example, if the proper AWS Key Management Service (AWS KMS) permissions are not obtained) this field displays error state details to help you diagnose why the error occurred. This parameter is only returned by the DescribeSnapshots API operation.
 10305      */
 10306     StateMessage?: String;
 10307     /**
 10308      * The time stamp when the snapshot was initiated.
 10309      */
 10310     StartTime?: DateTime;
 10311     /**
 10312      * The progress of the snapshot, as a percentage.
 10313      */
 10314     Progress?: String;
 10315     /**
 10316      * The AWS account ID of the EBS snapshot owner.
 10317      */
 10318     OwnerId?: String;
 10319     /**
 10320      * The description for the snapshot.
 10321      */
 10322     Description?: String;
 10323     /**
 10324      * The size of the volume, in GiB.
 10325      */
 10326     VolumeSize?: Integer;
 10327     /**
 10328      *  Value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console. 
 10329      */
 10330     OwnerAlias?: String;
 10331     /**
 10332      * Any tags assigned to the snapshot.
 10333      */
 10334     Tags?: TagList;
 10335     /**
 10336      * Indicates whether the snapshot is encrypted.
 10337      */
 10338     Encrypted?: Boolean;
 10339     /**
 10340      * The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the parent volume.
 10341      */
 10342     KmsKeyId?: String;
 10343     /**
 10344      * The data encryption key identifier for the snapshot. This value is a unique identifier that corresponds to the data encryption key that was used to encrypt the original volume or snapshot copy. Because data encryption keys are inherited by volumes created from snapshots, and vice versa, if snapshots share the same data encryption key identifier, then they belong to the same volume/snapshot lineage. This parameter is only returned by the DescribeSnapshots API operation.
 10345      */
 10346     DataEncryptionKeyId?: String;
 10347   }
 10348   export type SnapshotAttributeName = "productCodes"|"createVolumePermission"|string;
 10349   export interface SnapshotDetail {
 10350     /**
 10351      * The size of the disk in the snapshot, in GiB.
 10352      */
 10353     DiskImageSize?: Double;
 10354     /**
 10355      * A description for the snapshot.
 10356      */
 10357     Description?: String;
 10358     /**
 10359      * The format of the disk image from which the snapshot is created.
 10360      */
 10361     Format?: String;
 10362     /**
 10363      * The URL used to access the disk image.
 10364      */
 10365     Url?: String;
 10366     /**
 10367      * The S3 bucket for the disk image.
 10368      */
 10369     UserBucket?: UserBucketDetails;
 10370     /**
 10371      * The block device mapping for the snapshot.
 10372      */
 10373     DeviceName?: String;
 10374     /**
 10375      * The snapshot ID of the disk being imported.
 10376      */
 10377     SnapshotId?: String;
 10378     /**
 10379      * The percentage of progress for the task.
 10380      */
 10381     Progress?: String;
 10382     /**
 10383      * A detailed status message for the snapshot creation.
 10384      */
 10385     StatusMessage?: String;
 10386     /**
 10387      * A brief status of the snapshot creation.
 10388      */
 10389     Status?: String;
 10390   }
 10391   export type SnapshotDetailList = SnapshotDetail[];
 10392   export interface SnapshotDiskContainer {
 10393     /**
 10394      * The description of the disk image being imported.
 10395      */
 10396     Description?: String;
 10397     /**
 10398      * The format of the disk image being imported. Valid values: RAW | VHD | VMDK | OVA 
 10399      */
 10400     Format?: String;
 10401     /**
 10402      * The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).
 10403      */
 10404     Url?: String;
 10405     /**
 10406      * The S3 bucket for the disk image.
 10407      */
 10408     UserBucket?: UserBucket;
 10409   }
 10410   export type SnapshotIdStringList = String[];
 10411   export type SnapshotList = Snapshot[];
 10412   export type SnapshotState = "pending"|"completed"|"error"|string;
 10413   export interface SnapshotTaskDetail {
 10414     /**
 10415      * The size of the disk in the snapshot, in GiB.
 10416      */
 10417     DiskImageSize?: Double;
 10418     /**
 10419      * The description of the snapshot.
 10420      */
 10421     Description?: String;
 10422     /**
 10423      * The format of the disk image from which the snapshot is created.
 10424      */
 10425     Format?: String;
 10426     /**
 10427      * The URL of the disk image from which the snapshot is created.
 10428      */
 10429     Url?: String;
 10430     /**
 10431      * The S3 bucket for the disk image.
 10432      */
 10433     UserBucket?: UserBucketDetails;
 10434     /**
 10435      * The snapshot ID of the disk being imported.
 10436      */
 10437     SnapshotId?: String;
 10438     /**
 10439      * The percentage of completion for the import snapshot task.
 10440      */
 10441     Progress?: String;
 10442     /**
 10443      * A detailed status message for the import snapshot task.
 10444      */
 10445     StatusMessage?: String;
 10446     /**
 10447      * A brief status for the import snapshot task.
 10448      */
 10449     Status?: String;
 10450   }
 10451   export interface SpotDatafeedSubscription {
 10452     /**
 10453      * The AWS account ID of the account.
 10454      */
 10455     OwnerId?: String;
 10456     /**
 10457      * The Amazon S3 bucket where the Spot instance data feed is located.
 10458      */
 10459     Bucket?: String;
 10460     /**
 10461      * The prefix that is prepended to data feed files.
 10462      */
 10463     Prefix?: String;
 10464     /**
 10465      * The state of the Spot instance data feed subscription.
 10466      */
 10467     State?: DatafeedSubscriptionState;
 10468     /**
 10469      * The fault codes for the Spot instance request, if any.
 10470      */
 10471     Fault?: SpotInstanceStateFault;
 10472   }
 10473   export interface SpotFleetLaunchSpecification {
 10474     /**
 10475      * The ID of the AMI.
 10476      */
 10477     ImageId?: String;
 10478     /**
 10479      * The name of the key pair.
 10480      */
 10481     KeyName?: String;
 10482     /**
 10483      * One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.
 10484      */
 10485     SecurityGroups?: GroupIdentifierList;
 10486     /**
 10487      * The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
 10488      */
 10489     UserData?: String;
 10490     /**
 10491      * Deprecated.
 10492      */
 10493     AddressingType?: String;
 10494     /**
 10495      * The instance type.
 10496      */
 10497     InstanceType?: InstanceType;
 10498     /**
 10499      * The placement information.
 10500      */
 10501     Placement?: SpotPlacement;
 10502     /**
 10503      * The ID of the kernel.
 10504      */
 10505     KernelId?: String;
 10506     /**
 10507      * The ID of the RAM disk.
 10508      */
 10509     RamdiskId?: String;
 10510     /**
 10511      * One or more block device mapping entries.
 10512      */
 10513     BlockDeviceMappings?: BlockDeviceMappingList;
 10514     /**
 10515      * Enable or disable monitoring for the instances.
 10516      */
 10517     Monitoring?: SpotFleetMonitoring;
 10518     /**
 10519      * The ID of the subnet in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-a61dafcf, subnet-65ea5f08".
 10520      */
 10521     SubnetId?: String;
 10522     /**
 10523      * One or more network interfaces.
 10524      */
 10525     NetworkInterfaces?: InstanceNetworkInterfaceSpecificationList;
 10526     /**
 10527      * The IAM instance profile.
 10528      */
 10529     IamInstanceProfile?: IamInstanceProfileSpecification;
 10530     /**
 10531      * Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: false 
 10532      */
 10533     EbsOptimized?: Boolean;
 10534     /**
 10535      * The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms (instances or a performance characteristic such as vCPUs, memory, or I/O). If the target capacity divided by this value is not a whole number, we round the number of instances to the next whole number. If this value is not specified, the default is 1.
 10536      */
 10537     WeightedCapacity?: Double;
 10538     /**
 10539      * The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of WeightedCapacity.
 10540      */
 10541     SpotPrice?: String;
 10542   }
 10543   export interface SpotFleetMonitoring {
 10544     /**
 10545      * Enables monitoring for the instance. Default: false 
 10546      */
 10547     Enabled?: Boolean;
 10548   }
 10549   export interface SpotFleetRequestConfig {
 10550     /**
 10551      * The ID of the Spot fleet request.
 10552      */
 10553     SpotFleetRequestId: String;
 10554     /**
 10555      * The state of the Spot fleet request.
 10556      */
 10557     SpotFleetRequestState: BatchState;
 10558     /**
 10559      * Information about the configuration of the Spot fleet request.
 10560      */
 10561     SpotFleetRequestConfig: SpotFleetRequestConfigData;
 10562     /**
 10563      * The creation date and time of the request.
 10564      */
 10565     CreateTime: DateTime;
 10566     /**
 10567      * The progress of the Spot fleet request. If there is an error, the status is error. After all bids are placed, the status is pending_fulfillment. If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled. If the size of the fleet is decreased, the status is pending_termination while Spot instances are terminating.
 10568      */
 10569     ActivityStatus?: ActivityStatus;
 10570   }
 10571   export interface SpotFleetRequestConfigData {
 10572     /**
 10573      * A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.
 10574      */
 10575     ClientToken?: String;
 10576     /**
 10577      * The bid price per unit hour.
 10578      */
 10579     SpotPrice: String;
 10580     /**
 10581      * The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
 10582      */
 10583     TargetCapacity: Integer;
 10584     /**
 10585      * The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
 10586      */
 10587     ValidFrom?: DateTime;
 10588     /**
 10589      * The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
 10590      */
 10591     ValidUntil?: DateTime;
 10592     /**
 10593      * Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
 10594      */
 10595     TerminateInstancesWithExpiration?: Boolean;
 10596     /**
 10597      * Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
 10598      */
 10599     IamFleetRole: String;
 10600     /**
 10601      * Information about the launch specifications for the Spot fleet request.
 10602      */
 10603     LaunchSpecifications: LaunchSpecsList;
 10604     /**
 10605      * Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
 10606      */
 10607     ExcessCapacityTerminationPolicy?: ExcessCapacityTerminationPolicy;
 10608     /**
 10609      * Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
 10610      */
 10611     AllocationStrategy?: AllocationStrategy;
 10612     /**
 10613      * The number of units fulfilled by this request compared to the set target capacity.
 10614      */
 10615     FulfilledCapacity?: Double;
 10616     /**
 10617      * The type of request. Indicates whether the fleet will only request the target capacity or also attempt to maintain it. When you request a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to maintain a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: maintain.
 10618      */
 10619     Type?: FleetType;
 10620   }
 10621   export type SpotFleetRequestConfigSet = SpotFleetRequestConfig[];
 10622   export interface SpotInstanceRequest {
 10623     /**
 10624      * The ID of the Spot instance request.
 10625      */
 10626     SpotInstanceRequestId?: String;
 10627     /**
 10628      * The maximum hourly price (bid) for the Spot instance launched to fulfill the request.
 10629      */
 10630     SpotPrice?: String;
 10631     /**
 10632      * The Spot instance request type.
 10633      */
 10634     Type?: SpotInstanceType;
 10635     /**
 10636      * The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.
 10637      */
 10638     State?: SpotInstanceState;
 10639     /**
 10640      * The fault codes for the Spot instance request, if any.
 10641      */
 10642     Fault?: SpotInstanceStateFault;
 10643     /**
 10644      * The status code and status message describing the Spot instance request.
 10645      */
 10646     Status?: SpotInstanceStatus;
 10647     /**
 10648      * The start date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The request becomes active at this date and time.
 10649      */
 10650     ValidFrom?: DateTime;
 10651     /**
 10652      * The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached.
 10653      */
 10654     ValidUntil?: DateTime;
 10655     /**
 10656      * The instance launch group. Launch groups are Spot instances that launch together and terminate together.
 10657      */
 10658     LaunchGroup?: String;
 10659     /**
 10660      * The Availability Zone group. If you specify the same Availability Zone group for all Spot instance requests, all Spot instances are launched in the same Availability Zone.
 10661      */
 10662     AvailabilityZoneGroup?: String;
 10663     /**
 10664      * Additional information for launching instances.
 10665      */
 10666     LaunchSpecification?: LaunchSpecification;
 10667     /**
 10668      * The instance ID, if an instance has been launched to fulfill the Spot instance request.
 10669      */
 10670     InstanceId?: String;
 10671     /**
 10672      * The date and time when the Spot instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
 10673      */
 10674     CreateTime?: DateTime;
 10675     /**
 10676      * The product description associated with the Spot instance.
 10677      */
 10678     ProductDescription?: RIProductDescription;
 10679     /**
 10680      * The duration for the Spot instance, in minutes.
 10681      */
 10682     BlockDurationMinutes?: Integer;
 10683     /**
 10684      * If you specified a duration and your Spot instance request was fulfilled, this is the fixed hourly price in effect for the Spot instance while it runs.
 10685      */
 10686     ActualBlockHourlyPrice?: String;
 10687     /**
 10688      * Any tags assigned to the resource.
 10689      */
 10690     Tags?: TagList;
 10691     /**
 10692      * The Availability Zone in which the bid is launched.
 10693      */
 10694     LaunchedAvailabilityZone?: String;
 10695   }
 10696   export type SpotInstanceRequestIdList = String[];
 10697   export type SpotInstanceRequestList = SpotInstanceRequest[];
 10698   export type SpotInstanceState = "open"|"active"|"closed"|"cancelled"|"failed"|string;
 10699   export interface SpotInstanceStateFault {
 10700     /**
 10701      * The reason code for the Spot instance state change.
 10702      */
 10703     Code?: String;
 10704     /**
 10705      * The message for the Spot instance state change.
 10706      */
 10707     Message?: String;
 10708   }
 10709   export interface SpotInstanceStatus {
 10710     /**
 10711      * The status code. For a list of status codes, see Spot Bid Status Codes in the Amazon Elastic Compute Cloud User Guide.
 10712      */
 10713     Code?: String;
 10714     /**
 10715      * The date and time of the most recent status update, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
 10716      */
 10717     UpdateTime?: DateTime;
 10718     /**
 10719      * The description for the status code.
 10720      */
 10721     Message?: String;
 10722   }
 10723   export type SpotInstanceType = "one-time"|"persistent"|string;
 10724   export interface SpotPlacement {
 10725     /**
 10726      * The Availability Zone. [Spot fleet only] To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b".
 10727      */
 10728     AvailabilityZone?: String;
 10729     /**
 10730      * The name of the placement group (for cluster instances).
 10731      */
 10732     GroupName?: String;
 10733   }
 10734   export interface SpotPrice {
 10735     /**
 10736      * The instance type.
 10737      */
 10738     InstanceType?: InstanceType;
 10739     /**
 10740      * A general description of the AMI.
 10741      */
 10742     ProductDescription?: RIProductDescription;
 10743     /**
 10744      * The maximum price (bid) that you are willing to pay for a Spot instance.
 10745      */
 10746     SpotPrice?: String;
 10747     /**
 10748      * The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
 10749      */
 10750     Timestamp?: DateTime;
 10751     /**
 10752      * The Availability Zone.
 10753      */
 10754     AvailabilityZone?: String;
 10755   }
 10756   export type SpotPriceHistoryList = SpotPrice[];
 10757   export interface StaleIpPermission {
 10758     /**
 10759      * The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types. 
 10760      */
 10761     FromPort?: Integer;
 10762     /**
 10763      * The IP protocol name (for tcp, udp, and icmp) or number (see Protocol Numbers).
 10764      */
 10765     IpProtocol?: String;
 10766     /**
 10767      * One or more IP ranges. Not applicable for stale security group rules.
 10768      */
 10769     IpRanges?: IpRanges;
 10770     /**
 10771      * One or more prefix list IDs for an AWS service. Not applicable for stale security group rules.
 10772      */
 10773     PrefixListIds?: PrefixListIdSet;
 10774     /**
 10775      * The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types. 
 10776      */
 10777     ToPort?: Integer;
 10778     /**
 10779      * One or more security group pairs. Returns the ID of the referenced security group and VPC, and the ID and status of the VPC peering connection.
 10780      */
 10781     UserIdGroupPairs?: UserIdGroupPairSet;
 10782   }
 10783   export type StaleIpPermissionSet = StaleIpPermission[];
 10784   export interface StaleSecurityGroup {
 10785     /**
 10786      * The ID of the security group.
 10787      */
 10788     GroupId: String;
 10789     /**
 10790      * The name of the security group.
 10791      */
 10792     GroupName?: String;
 10793     /**
 10794      * The description of the security group.
 10795      */
 10796     Description?: String;
 10797     /**
 10798      * The ID of the VPC for the security group.
 10799      */
 10800     VpcId?: String;
 10801     /**
 10802      * Information about the stale inbound rules in the security group.
 10803      */
 10804     StaleIpPermissions?: StaleIpPermissionSet;
 10805     /**
 10806      * Information about the stale outbound rules in the security group.
 10807      */
 10808     StaleIpPermissionsEgress?: StaleIpPermissionSet;
 10809   }
 10810   export type StaleSecurityGroupSet = StaleSecurityGroup[];
 10811   export interface StartInstancesRequest {
 10812     /**
 10813      * One or more instance IDs.
 10814      */
 10815     InstanceIds: InstanceIdStringList;
 10816     /**
 10817      * Reserved.
 10818      */
 10819     AdditionalInfo?: String;
 10820     /**
 10821      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
 10822      */
 10823     DryRun?: Boolean;
 10824   }
 10825   export interface StartInstancesResult {
 10826     /**
 10827      * Information about one or more started instances.
 10828      */
 10829     StartingInstances?: InstanceStateChangeList;
 10830   }
 10831   export type State = "Pending"|"Available"|"Deleting"|"Deleted"|string;
 10832   export interface StateReason {
 10833     /**
 10834      * The reason code for the state change.
 10835      */
 10836     Code?: String;
 10837     /**
 10838      * The message for the state change.    Server.SpotInstanceTermination: A Spot instance was terminated due to an increase in the market price.    Server.InternalError: An internal error occurred during instance launch, resulting in termination.    Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request.    Client.InternalError: A client error caused the instance to terminate on launch.    Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance.    Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API.    Client.VolumeLimitExceeded: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.    Client.InvalidSnapshot.NotFound: The specified snapshot was not found.  
 10839      */
 10840     Message?: String;
 10841   }
 10842   export type Status = "MoveInProgress"|"InVpc"|"InClassic"|string;
 10843   export type StatusName = "reachability"|string;
 10844   export type StatusType = "passed"|"failed"|"insufficient-data"|"initializing"|string;
 10845   export interface StopInstancesRequest {
 10846     /**
 10847      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
 10848      */
 10849     DryRun?: Boolean;
 10850     /**
 10851      * One or more instance IDs.
 10852      */
 10853     InstanceIds: InstanceIdStringList;
 10854     /**
 10855      * Forces the instances to stop. The instances do not have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures. This option is not recommended for Windows instances. Default: false 
 10856      */
 10857     Force?: Boolean;
 10858   }
 10859   export interface StopInstancesResult {
 10860     /**
 10861      * Information about one or more stopped instances.
 10862      */
 10863     StoppingInstances?: InstanceStateChangeList;
 10864   }
 10865   export interface Storage {
 10866     /**
 10867      * An Amazon S3 storage location.
 10868      */
 10869     S3?: S3Storage;
 10870   }
 10871   export type String = string;
 10872   export interface Subnet {
 10873     /**
 10874      * The ID of the subnet.
 10875      */
 10876     SubnetId?: String;
 10877     /**
 10878      * The current state of the subnet.
 10879      */
 10880     State?: SubnetState;
 10881     /**
 10882      * The ID of the VPC the subnet is in.
 10883      */
 10884     VpcId?: String;
 10885     /**
 10886      * The CIDR block assigned to the subnet.
 10887      */
 10888     CidrBlock?: String;
 10889     /**
 10890      * The number of unused IP addresses in the subnet. Note that the IP addresses for any stopped instances are considered unavailable.
 10891      */
 10892     AvailableIpAddressCount?: Integer;
 10893     /**
 10894      * The Availability Zone of the subnet.
 10895      */
 10896     AvailabilityZone?: String;
 10897     /**
 10898      * Indicates whether this is the default subnet for the Availability Zone.
 10899      */
 10900     DefaultForAz?: Boolean;
 10901     /**
 10902      * Indicates whether instances launched in this subnet receive a public IP address.
 10903      */
 10904     MapPublicIpOnLaunch?: Boolean;
 10905     /**
 10906      * Any tags assigned to the subnet.
 10907      */
 10908     Tags?: TagList;
 10909   }
 10910   export type SubnetIdStringList = String[];
 10911   export type SubnetList = Subnet[];
 10912   export type SubnetState = "pending"|"available"|string;
 10913   export type SummaryStatus = "ok"|"impaired"|"insufficient-data"|"not-applicable"|"initializing"|string;
 10914   export interface Tag {
 10915     /**
 10916      * The key of the tag. Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with aws: 
 10917      */
 10918     Key?: String;
 10919     /**
 10920      * The value of the tag. Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.
 10921      */
 10922     Value?: String;
 10923   }
 10924   export interface TagDescription {
 10925     /**
 10926      * The ID of the resource. For example, ami-1a2b3c4d.
 10927      */
 10928     ResourceId?: String;
 10929     /**
 10930      * The resource type.
 10931      */
 10932     ResourceType?: ResourceType;
 10933     /**
 10934      * The tag key.
 10935      */
 10936     Key?: String;
 10937     /**
 10938      * The tag value.
 10939      */
 10940     Value?: String;
 10941   }
 10942   export type TagDescriptionList = TagDescription[];
 10943   export type TagList = Tag[];
 10944   export interface TargetConfiguration {
 10945     /**
 10946      * The ID of the Convertible Reserved Instance offering.
 10947      */
 10948     OfferingId?: String;
 10949     /**
 10950      * The number of instances the Convertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request
 10951      */
 10952     InstanceCount?: Integer;
 10953   }
 10954   export interface TargetConfigurationRequest {
 10955     /**
 10956      * The Convertible Reserved Instance offering ID. If this isn't included in the request, the response lists your current Convertible Reserved Instance/s and their value/s.
 10957      */
 10958     OfferingId: String;
 10959     /**
 10960      * The number of instances the Covertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request
 10961      */
 10962     InstanceCount?: Integer;
 10963   }
 10964   export type TargetConfigurationRequestSet = TargetConfigurationRequest[];
 10965   export interface TargetReservationValue {
 10966     /**
 10967      * The configuration of the Convertible Reserved Instances that make up the exchange.
 10968      */
 10969     TargetConfiguration?: TargetConfiguration;
 10970     /**
 10971      * The total value of the Convertible Reserved Instances that make up the exchange. This is the sum of the list value, remaining upfront price, and additional upfront cost of the exchange.
 10972      */
 10973     ReservationValue?: ReservationValue;
 10974   }
 10975   export type TargetReservationValueSet = TargetReservationValue[];
 10976   export type TelemetryStatus = "UP"|"DOWN"|string;
 10977   export type Tenancy = "default"|"dedicated"|"host"|string;
 10978   export interface TerminateInstancesRequest {
 10979     /**
 10980      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
 10981      */
 10982     DryRun?: Boolean;
 10983     /**
 10984      * One or more instance IDs. Constraints: Up to 1000 instance IDs. We recommend breaking up this request into smaller batches.
 10985      */
 10986     InstanceIds: InstanceIdStringList;
 10987   }
 10988   export interface TerminateInstancesResult {
 10989     /**
 10990      * Information about one or more terminated instances.
 10991      */
 10992     TerminatingInstances?: InstanceStateChangeList;
 10993   }
 10994   export type TrafficType = "ACCEPT"|"REJECT"|"ALL"|string;
 10995   export interface UnassignPrivateIpAddressesRequest {
 10996     /**
 10997      * The ID of the network interface.
 10998      */
 10999     NetworkInterfaceId: String;
 11000     /**
 11001      * The secondary private IP addresses to unassign from the network interface. You can specify this option multiple times to unassign more than one IP address.
 11002      */
 11003     PrivateIpAddresses: PrivateIpAddressStringList;
 11004   }
 11005   export interface UnmonitorInstancesRequest {
 11006     /**
 11007      * Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
 11008      */
 11009     DryRun?: Boolean;
 11010     /**
 11011      * One or more instance IDs.
 11012      */
 11013     InstanceIds: InstanceIdStringList;
 11014   }
 11015   export interface UnmonitorInstancesResult {
 11016     /**
 11017      * Monitoring information for one or more instances.
 11018      */
 11019     InstanceMonitorings?: InstanceMonitoringList;
 11020   }
 11021   export interface UnsuccessfulItem {
 11022     /**
 11023      * Information about the error.
 11024      */
 11025     Error: UnsuccessfulItemError;
 11026     /**
 11027      * The ID of the resource.
 11028      */
 11029     ResourceId?: String;
 11030   }
 11031   export interface UnsuccessfulItemError {
 11032     /**
 11033      * The error code.
 11034      */
 11035     Code: String;
 11036     /**
 11037      * The error message accompanying the error code.
 11038      */
 11039     Message: String;
 11040   }
 11041   export type UnsuccessfulItemList = UnsuccessfulItem[];
 11042   export type UnsuccessfulItemSet = UnsuccessfulItem[];
 11043   export interface UserBucket {
 11044     /**
 11045      * The name of the S3 bucket where the disk image is located.
 11046      */
 11047     S3Bucket?: String;
 11048     /**
 11049      * The file name of the disk image.
 11050      */
 11051     S3Key?: String;
 11052   }
 11053   export interface UserBucketDetails {
 11054     /**
 11055      * The S3 bucket from which the disk image was created.
 11056      */
 11057     S3Bucket?: String;
 11058     /**
 11059      * The file name of the disk image.
 11060      */
 11061     S3Key?: String;
 11062   }
 11063   export interface UserData {
 11064     /**
 11065      * The user data. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.
 11066      */
 11067     Data?: String;
 11068   }
 11069   export type UserGroupStringList = String[];
 11070   export interface UserIdGroupPair {
 11071     /**
 11072      * The ID of an AWS account. For a referenced security group in another VPC, the account ID of the referenced security group is returned. [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account.
 11073      */
 11074     UserId?: String;
 11075     /**
 11076      * The name of the security group. In a request, use this parameter for a security group in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use the security group ID.
 11077      */
 11078     GroupName?: String;
 11079     /**
 11080      * The ID of the security group.
 11081      */
 11082     GroupId?: String;
 11083     /**
 11084      * The ID of the VPC for the referenced security group, if applicable.
 11085      */
 11086     VpcId?: String;
 11087     /**
 11088      * The ID of the VPC peering connection, if applicable.
 11089      */
 11090     VpcPeeringConnectionId?: String;
 11091     /**
 11092      * The status of a VPC peering connection, if applicable.
 11093      */
 11094     PeeringStatus?: String;
 11095   }
 11096   export type UserIdGroupPairList = UserIdGroupPair[];
 11097   export type UserIdGroupPairSet = UserIdGroupPair[];
 11098   export type UserIdStringList = String[];
 11099   export type ValueStringList = String[];
 11100   export interface VgwTelemetry {
 11101     /**
 11102      * The Internet-routable IP address of the virtual private gateway's outside interface.
 11103      */
 11104     OutsideIpAddress?: String;
 11105     /**
 11106      * The status of the VPN tunnel.
 11107      */
 11108     Status?: TelemetryStatus;
 11109     /**
 11110      * The date and time of the last change in status.
 11111      */
 11112     LastStatusChange?: DateTime;
 11113     /**
 11114      * If an error occurs, a description of the error.
 11115      */
 11116     StatusMessage?: String;
 11117     /**
 11118      * The number of accepted routes.
 11119      */
 11120     AcceptedRouteCount?: Integer;
 11121   }
 11122   export type VgwTelemetryList = VgwTelemetry[];
 11123   export type VirtualizationType = "hvm"|"paravirtual"|string;
 11124   export interface Volume {
 11125     /**
 11126      * The ID of the volume.
 11127      */
 11128     VolumeId?: String;
 11129     /**
 11130      * The size of the volume, in GiBs.
 11131      */
 11132     Size?: Integer;
 11133     /**
 11134      * The snapshot from which the volume was created, if applicable.
 11135      */
 11136     SnapshotId?: String;
 11137     /**
 11138      * The Availability Zone for the volume.
 11139      */
 11140     AvailabilityZone?: String;
 11141     /**
 11142      * The volume state.
 11143      */
 11144     State?: VolumeState;
 11145     /**
 11146      * The time stamp when volume creation was initiated.
 11147      */
 11148     CreateTime?: DateTime;
 11149     /**
 11150      * Information about the volume attachments.
 11151      */
 11152     Attachments?: VolumeAttachmentList;
 11153     /**
 11154      * Any tags assigned to the volume.
 11155      */
 11156     Tags?: TagList;
 11157     /**
 11158      * The volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.
 11159      */
 11160     VolumeType?: VolumeType;
 11161     /**
 11162      * The number of I/O operations per second (IOPS) that the volume supports. For Provisioned IOPS SSD volumes, this represents the number of IOPS that are provisioned for the volume. For General Purpose SSD volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information on General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide. Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes. Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.
 11163      */
 11164     Iops?: Integer;
 11165     /**
 11166      * Indicates whether the volume will be encrypted.
 11167      */
 11168     Encrypted?: Boolean;
 11169     /**
 11170      * The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the volume.
 11171      */
 11172     KmsKeyId?: String;
 11173   }
 11174   export interface VolumeAttachment {
 11175     /**
 11176      * The ID of the volume.
 11177      */
 11178     VolumeId?: String;
 11179     /**
 11180      * The ID of the instance.
 11181      */
 11182     InstanceId?: String;
 11183     /**
 11184      * The device name.
 11185      */
 11186     Device?: String;
 11187     /**
 11188      * The attachment state of the volume.
 11189      */
 11190     State?: VolumeAttachmentState;
 11191     /**
 11192      * The time stamp when the attachment initiated.
 11193      */
 11194     AttachTime?: DateTime;
 11195     /**
 11196      * Indicates whether the EBS volume is deleted on instance termination.
 11197      */
 11198     DeleteOnTermination?: Boolean;
 11199   }
 11200   export type VolumeAttachmentList = VolumeAttachment[];
 11201   export type VolumeAttachmentState = "attaching"|"attached"|"detaching"|"detached"|string;
 11202   export type VolumeAttributeName = "autoEnableIO"|"productCodes"|string;
 11203   export interface VolumeDetail {
 11204     /**
 11205      * The size of the volume, in GiB.
 11206      */
 11207     Size: Long;
 11208   }
 11209   export type VolumeIdStringList = String[];
 11210   export type VolumeList = Volume[];
 11211   export type VolumeState = "creating"|"available"|"in-use"|"deleting"|"deleted"|"error"|string;
 11212   export interface VolumeStatusAction {
 11213     /**
 11214      * The code identifying the operation, for example, enable-volume-io.
 11215      */
 11216     Code?: String;
 11217     /**
 11218      * A description of the operation.
 11219      */
 11220     Description?: String;
 11221     /**
 11222      * The event type associated with this operation.
 11223      */
 11224     EventType?: String;
 11225     /**
 11226      * The ID of the event associated with this operation.
 11227      */
 11228     EventId?: String;
 11229   }
 11230   export type VolumeStatusActionsList = VolumeStatusAction[];
 11231   export interface VolumeStatusDetails {
 11232     /**
 11233      * The name of the volume status.
 11234      */
 11235     Name?: VolumeStatusName;
 11236     /**
 11237      * The intended status of the volume status.
 11238      */
 11239     Status?: String;
 11240   }
 11241   export type VolumeStatusDetailsList = VolumeStatusDetails[];
 11242   export interface VolumeStatusEvent {
 11243     /**
 11244      * The type of this event.
 11245      */
 11246     EventType?: String;
 11247     /**
 11248      * A description of the event.
 11249      */
 11250     Description?: String;
 11251     /**
 11252      * The earliest start time of the event.
 11253      */
 11254     NotBefore?: DateTime;
 11255     /**
 11256      * The latest end time of the event.
 11257      */
 11258     NotAfter?: DateTime;
 11259     /**
 11260      * The ID of this event.
 11261      */
 11262     EventId?: String;
 11263   }
 11264   export type VolumeStatusEventsList = VolumeStatusEvent[];
 11265   export interface VolumeStatusInfo {
 11266     /**
 11267      * The status of the volume.
 11268      */
 11269     Status?: VolumeStatusInfoStatus;
 11270     /**
 11271      * The details of the volume status.
 11272      */
 11273     Details?: VolumeStatusDetailsList;
 11274   }
 11275   export type VolumeStatusInfoStatus = "ok"|"impaired"|"insufficient-data"|string;
 11276   export interface VolumeStatusItem {
 11277     /**
 11278      * The volume ID.
 11279      */
 11280     VolumeId?: String;
 11281     /**
 11282      * The Availability Zone of the volume.
 11283      */
 11284     AvailabilityZone?: String;
 11285     /**
 11286      * The volume status.
 11287      */
 11288     VolumeStatus?: VolumeStatusInfo;
 11289     /**
 11290      * A list of events associated with the volume.
 11291      */
 11292     Events?: VolumeStatusEventsList;
 11293     /**
 11294      * The details of the operation.
 11295      */
 11296     Actions?: VolumeStatusActionsList;
 11297   }
 11298   export type VolumeStatusList = VolumeStatusItem[];
 11299   export type VolumeStatusName = "io-enabled"|"io-performance"|string;
 11300   export type VolumeType = "standard"|"io1"|"gp2"|"sc1"|"st1"|string;
 11301   export interface Vpc {
 11302     /**
 11303      * The ID of the VPC.
 11304      */
 11305     VpcId?: String;
 11306     /**
 11307      * The current state of the VPC.
 11308      */
 11309     State?: VpcState;
 11310     /**
 11311      * The CIDR block for the VPC.
 11312      */
 11313     CidrBlock?: String;
 11314     /**
 11315      * The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC).
 11316      */
 11317     DhcpOptionsId?: String;
 11318     /**
 11319      * Any tags assigned to the VPC.
 11320      */
 11321     Tags?: TagList;
 11322     /**
 11323      * The allowed tenancy of instances launched into the VPC.
 11324      */
 11325     InstanceTenancy?: Tenancy;
 11326     /**
 11327      * Indicates whether the VPC is the default VPC.
 11328      */
 11329     IsDefault?: Boolean;
 11330   }
 11331   export interface VpcAttachment {
 11332     /**
 11333      * The ID of the VPC.
 11334      */
 11335     VpcId?: String;
 11336     /**
 11337      * The current state of the attachment.
 11338      */
 11339     State?: AttachmentStatus;
 11340   }
 11341   export type VpcAttachmentList = VpcAttachment[];
 11342   export type VpcAttributeName = "enableDnsSupport"|"enableDnsHostnames"|string;
 11343   export interface VpcClassicLink {
 11344     /**
 11345      * The ID of the VPC.
 11346      */
 11347     VpcId?: String;
 11348     /**
 11349      * Indicates whether the VPC is enabled for ClassicLink.
 11350      */
 11351     ClassicLinkEnabled?: Boolean;
 11352     /**
 11353      * Any tags assigned to the VPC.
 11354      */
 11355     Tags?: TagList;
 11356   }
 11357   export type VpcClassicLinkIdList = String[];
 11358   export type VpcClassicLinkList = VpcClassicLink[];
 11359   export interface VpcEndpoint {
 11360     /**
 11361      * The ID of the VPC endpoint.
 11362      */
 11363     VpcEndpointId?: String;
 11364     /**
 11365      * The ID of the VPC to which the endpoint is associated.
 11366      */
 11367     VpcId?: String;
 11368     /**
 11369      * The name of the AWS service to which the endpoint is associated.
 11370      */
 11371     ServiceName?: String;
 11372     /**
 11373      * The state of the VPC endpoint.
 11374      */
 11375     State?: State;
 11376     /**
 11377      * The policy document associated with the endpoint.
 11378      */
 11379     PolicyDocument?: String;
 11380     /**
 11381      * One or more route tables associated with the endpoint.
 11382      */
 11383     RouteTableIds?: ValueStringList;
 11384     /**
 11385      * The date and time the VPC endpoint was created.
 11386      */
 11387     CreationTimestamp?: DateTime;
 11388   }
 11389   export type VpcEndpointSet = VpcEndpoint[];
 11390   export type VpcIdStringList = String[];
 11391   export type VpcList = Vpc[];
 11392   export interface VpcPeeringConnection {
 11393     /**
 11394      * Information about the accepter VPC. CIDR block information is not returned when creating a VPC peering connection, or when describing a VPC peering connection that's in the initiating-request or pending-acceptance state.
 11395      */
 11396     AccepterVpcInfo?: VpcPeeringConnectionVpcInfo;
 11397     /**
 11398      * The time that an unaccepted VPC peering connection will expire.
 11399      */
 11400     ExpirationTime?: DateTime;
 11401     /**
 11402      * Information about the requester VPC.
 11403      */
 11404     RequesterVpcInfo?: VpcPeeringConnectionVpcInfo;
 11405     /**
 11406      * The status of the VPC peering connection.
 11407      */
 11408     Status?: VpcPeeringConnectionStateReason;
 11409     /**
 11410      * Any tags assigned to the resource.
 11411      */
 11412     Tags?: TagList;
 11413     /**
 11414      * The ID of the VPC peering connection.
 11415      */
 11416     VpcPeeringConnectionId?: String;
 11417   }
 11418   export type VpcPeeringConnectionList = VpcPeeringConnection[];
 11419   export interface VpcPeeringConnectionOptionsDescription {
 11420     /**
 11421      * Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.
 11422      */
 11423     AllowEgressFromLocalClassicLinkToRemoteVpc?: Boolean;
 11424     /**
 11425      * Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.
 11426      */
 11427     AllowEgressFromLocalVpcToRemoteClassicLink?: Boolean;
 11428     /**
 11429      * Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.
 11430      */
 11431     AllowDnsResolutionFromRemoteVpc?: Boolean;
 11432   }
 11433   export interface VpcPeeringConnectionStateReason {
 11434     /**
 11435      * The status of the VPC peering connection.
 11436      */
 11437     Code?: VpcPeeringConnectionStateReasonCode;
 11438     /**
 11439      * A message that provides more information about the status, if applicable.
 11440      */
 11441     Message?: String;
 11442   }
 11443   export type VpcPeeringConnectionStateReasonCode = "initiating-request"|"pending-acceptance"|"active"|"deleted"|"rejected"|"failed"|"expired"|"provisioning"|"deleting"|string;
 11444   export interface VpcPeeringConnectionVpcInfo {
 11445     /**
 11446      * The CIDR block for the VPC.
 11447      */
 11448     CidrBlock?: String;
 11449     /**
 11450      * The AWS account ID of the VPC owner.
 11451      */
 11452     OwnerId?: String;
 11453     /**
 11454      * The ID of the VPC.
 11455      */
 11456     VpcId?: String;
 11457     /**
 11458      * Information about the VPC peering connection options for the accepter or requester VPC.
 11459      */
 11460     PeeringOptions?: VpcPeeringConnectionOptionsDescription;
 11461   }
 11462   export type VpcState = "pending"|"available"|string;
 11463   export interface VpnConnection {
 11464     /**
 11465      * The ID of the VPN connection.
 11466      */
 11467     VpnConnectionId?: String;
 11468     /**
 11469      * The current state of the VPN connection.
 11470      */
 11471     State?: VpnState;
 11472     /**
 11473      * The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state.
 11474      */
 11475     CustomerGatewayConfiguration?: String;
 11476     /**
 11477      * The type of VPN connection.
 11478      */
 11479     Type?: GatewayType;
 11480     /**
 11481      * The ID of the customer gateway at your end of the VPN connection.
 11482      */
 11483     CustomerGatewayId?: String;
 11484     /**
 11485      * The ID of the virtual private gateway at the AWS side of the VPN connection.
 11486      */
 11487     VpnGatewayId?: String;
 11488     /**
 11489      * Any tags assigned to the VPN connection.
 11490      */
 11491     Tags?: TagList;
 11492     /**
 11493      * Information about the VPN tunnel.
 11494      */
 11495     VgwTelemetry?: VgwTelemetryList;
 11496     /**
 11497      * The VPN connection options.
 11498      */
 11499     Options?: VpnConnectionOptions;
 11500     /**
 11501      * The static routes associated with the VPN connection.
 11502      */
 11503     Routes?: VpnStaticRouteList;
 11504   }
 11505   export type VpnConnectionIdStringList = String[];
 11506   export type VpnConnectionList = VpnConnection[];
 11507   export interface VpnConnectionOptions {
 11508     /**
 11509      * Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.
 11510      */
 11511     StaticRoutesOnly?: Boolean;
 11512   }
 11513   export interface VpnConnectionOptionsSpecification {
 11514     /**
 11515      * Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.
 11516      */
 11517     StaticRoutesOnly?: Boolean;
 11518   }
 11519   export interface VpnGateway {
 11520     /**
 11521      * The ID of the virtual private gateway.
 11522      */
 11523     VpnGatewayId?: String;
 11524     /**
 11525      * The current state of the virtual private gateway.
 11526      */
 11527     State?: VpnState;
 11528     /**
 11529      * The type of VPN connection the virtual private gateway supports.
 11530      */
 11531     Type?: GatewayType;
 11532     /**
 11533      * The Availability Zone where the virtual private gateway was created, if applicable. This field may be empty or not returned.
 11534      */
 11535     AvailabilityZone?: String;
 11536     /**
 11537      * Any VPCs attached to the virtual private gateway.
 11538      */
 11539     VpcAttachments?: VpcAttachmentList;
 11540     /**
 11541      * Any tags assigned to the virtual private gateway.
 11542      */
 11543     Tags?: TagList;
 11544   }
 11545   export type VpnGatewayIdStringList = String[];
 11546   export type VpnGatewayList = VpnGateway[];
 11547   export type VpnState = "pending"|"available"|"deleting"|"deleted"|string;
 11548   export interface VpnStaticRoute {
 11549     /**
 11550      * The CIDR block associated with the local subnet of the customer data center.
 11551      */
 11552     DestinationCidrBlock?: String;
 11553     /**
 11554      * Indicates how the routes were provided.
 11555      */
 11556     Source?: VpnStaticRouteSource;
 11557     /**
 11558      * The current state of the static route.
 11559      */
 11560     State?: VpnState;
 11561   }
 11562   export type VpnStaticRouteList = VpnStaticRoute[];
 11563   export type VpnStaticRouteSource = "Static"|string;
 11564   export type ZoneNameStringList = String[];
 11565   export type scope = "Availability Zone"|"Region"|string;
 11566   /**
 11567    * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
 11568    */
 11569   export type apiVersion = "2013-06-15"|"2013-10-15"|"2014-02-01"|"2014-05-01"|"2014-06-15"|"2014-09-01"|"2014-10-01"|"2015-03-01"|"2015-04-15"|"2015-10-01"|"2016-04-01"|"2016-09-15"|"latest"|string;
 11570   export interface ClientApiVersions {
 11571     /**
 11572      * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
 11573      */
 11574     apiVersion?: apiVersion;
 11575   }
 11576   export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
 11577 }
 11578 export = EC2;