import { AccountAttribute , AccountAttributeName , Address , AddressAttribute , AddressAttributeName , ApplianceModeSupportValue , AssociationStatus , BundleTask , ByoipCidr , CapacityReservation , CapacityReservationFleetState , CarrierGateway , ClientVpnAuthenticationType , ClientVpnAuthorizationRuleStatus , ClientVpnEndpointStatus , ClientVpnRouteStatus , DnsSupportValue , FleetCapacityReservation , FleetCapacityReservationTenancy , FleetInstanceMatchCriteria , GatewayType , InstanceEventWindowState , Ipv6SupportValue , Tag , TagSpecification , Tenancy , TransitGatewayAttachmentResourceType , TransitGatewayPeeringAttachment , TransitGatewayVpcAttachment , TransportProtocol , UnsuccessfulItem , VolumeAttachment , Vpc , VpcAttachment , VpcPeeringConnection , } from "./models_0" ; import { BgpStatus , DiskImageFormat , GroupIdentifier , Ipam , IpamPool , IpamScope , LaunchTemplate , LocalGatewayRoute , LocalGatewayRouteTableVpcAssociation , ManagedPrefixList , PlatformValues , ProtocolValue , SubnetCidrReservation , TransitGateway , TransitGatewayConnect , VolumeType , } from "./models_1" ; /**
 * <p>The BGP configuration information.</p>
 */ export interface TransitGatewayAttachmentBgpConfiguration { /**
     * <p>The transit gateway Autonomous System Number (ASN).</p>
     */ TransitGatewayAsn ? : number ; /**
     * <p>The peer Autonomous System Number (ASN).</p>
     */ PeerAsn ? : number ; /**
     * <p>The interior BGP peer IP address for the transit gateway.</p>
     */ TransitGatewayAddress ? : string ; /**
     * <p>The interior BGP peer IP address for the appliance.</p>
     */ PeerAddress ? : string ; /**
     * <p>The BGP status.</p>
     */ BgpStatus ? : BgpStatus | string ; } export namespace TransitGatewayAttachmentBgpConfiguration { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the Connect peer details.</p>
 */ export interface TransitGatewayConnectPeerConfiguration { /**
     * <p>The Connect peer IP address on the transit gateway side of the tunnel.</p>
     */ TransitGatewayAddress ? : string ; /**
     * <p>The Connect peer IP address on the appliance side of the tunnel.</p>
     */ PeerAddress ? : string ; /**
     * <p>The range of interior BGP peer IP addresses.</p>
     */ InsideCidrBlocks ? : string [ ] ; /**
     * <p>The tunnel protocol.</p>
     */ Protocol ? : ProtocolValue | string ; /**
     * <p>The BGP configuration details.</p>
     */ BgpConfigurations ? : TransitGatewayAttachmentBgpConfiguration [ ] ; } export namespace TransitGatewayConnectPeerConfiguration { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TransitGatewayConnectPeerState = "available" | "deleted" | "deleting" | "pending" ; /**
 * <p>Describes a transit gateway Connect peer.</p>
 */ export interface TransitGatewayConnectPeer { /**
     * <p>The ID of the Connect attachment.</p>
     */ TransitGatewayAttachmentId ? : string ; /**
     * <p>The ID of the Connect peer.</p>
     */ TransitGatewayConnectPeerId ? : string ; /**
     * <p>The state of the Connect peer.</p>
     */ State ? : TransitGatewayConnectPeerState | string ; /**
     * <p>The creation time.</p>
     */ CreationTime ? : Date ; /**
     * <p>The Connect peer details.</p>
     */ ConnectPeerConfiguration ? : TransitGatewayConnectPeerConfiguration ; /**
     * <p>The tags for the Connect peer.</p>
     */ Tags ? : Tag [ ] ; } export namespace TransitGatewayConnectPeer { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayConnectPeerResult { /**
     * <p>Information about the Connect peer.</p>
     */ TransitGatewayConnectPeer ? : TransitGatewayConnectPeer ; } export namespace CreateTransitGatewayConnectPeerResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type AutoAcceptSharedAssociationsValue = "disable" | "enable" ; export type Igmpv2SupportValue = "disable" | "enable" ; export type StaticSourcesSupportValue = "disable" | "enable" ; /**
 * <p>The options for the transit gateway multicast domain.</p>
 */ export interface CreateTransitGatewayMulticastDomainRequestOptions { /**
     * <p>Specify whether to enable Internet Group Management Protocol (IGMP) version 2 for the transit gateway multicast domain.</p>
     */ Igmpv2Support ? : Igmpv2SupportValue | string ; /**
     * <p>Specify whether to enable support for statically configuring multicast group sources for a domain.</p>
     */ StaticSourcesSupport ? : StaticSourcesSupportValue | string ; /**
     * <p>Indicates whether to automatically accept cross-account subnet associations that are associated with the transit gateway multicast domain.</p>
     */ AutoAcceptSharedAssociations ? : AutoAcceptSharedAssociationsValue | string ; } export namespace CreateTransitGatewayMulticastDomainRequestOptions { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayMulticastDomainRequest { /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId : string | undefined ; /**
     * <p>The options for the transit gateway multicast domain.</p>
     */ Options ? : CreateTransitGatewayMulticastDomainRequestOptions ; /**
     * <p>The tags for the transit gateway multicast domain.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateTransitGatewayMulticastDomainRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the options for a transit gateway multicast domain.</p>
 */ export interface TransitGatewayMulticastDomainOptions { /**
     * <p>Indicates whether Internet Group Management Protocol (IGMP) version 2 is turned on for the transit gateway multicast domain.</p>
     */ Igmpv2Support ? : Igmpv2SupportValue | string ; /**
     * <p>Indicates whether support for statically configuring transit gateway multicast group sources is turned on.</p>
     */ StaticSourcesSupport ? : StaticSourcesSupportValue | string ; /**
     * <p>Indicates whether to automatically cross-account subnet associations that are associated with the transit gateway multicast domain.</p>
     */ AutoAcceptSharedAssociations ? : AutoAcceptSharedAssociationsValue | string ; } export namespace TransitGatewayMulticastDomainOptions { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TransitGatewayMulticastDomainState = "available" | "deleted" | "deleting" | "pending" ; /**
 * <p>Describes the transit gateway multicast domain.</p>
 */ export interface TransitGatewayMulticastDomain { /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainId ? : string ; /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId ? : string ; /**
     * <p>The Amazon Resource Name (ARN) of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainArn ? : string ; /**
     * <p> The ID of the Amazon Web Services account that owns the transit gateway multicast domain.</p>
     */ OwnerId ? : string ; /**
     * <p>The options for the transit gateway multicast domain.</p>
     */ Options ? : TransitGatewayMulticastDomainOptions ; /**
     * <p>The state of the transit gateway multicast domain.</p>
     */ State ? : TransitGatewayMulticastDomainState | string ; /**
     * <p>The time the transit gateway multicast domain was created.</p>
     */ CreationTime ? : Date ; /**
     * <p>The tags for the transit gateway multicast domain.</p>
     */ Tags ? : Tag [ ] ; } export namespace TransitGatewayMulticastDomain { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayMulticastDomainResult { /**
     * <p>Information about the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomain ? : TransitGatewayMulticastDomain ; } export namespace CreateTransitGatewayMulticastDomainResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayPeeringAttachmentRequest { /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId : string | undefined ; /**
     * <p>The ID of the peer transit gateway with which to create the peering attachment.</p>
     */ PeerTransitGatewayId : string | undefined ; /**
     * <p>The ID of the Amazon Web Services account that owns the peer transit gateway.</p>
     */ PeerAccountId : string | undefined ; /**
     * <p>The Region where the peer transit gateway is located.</p>
     */ PeerRegion : string | undefined ; /**
     * <p>The tags to apply to the transit gateway peering attachment.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateTransitGatewayPeeringAttachmentRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayPeeringAttachmentResult { /**
     * <p>The transit gateway peering attachment.</p>
     */ TransitGatewayPeeringAttachment ? : TransitGatewayPeeringAttachment ; } export namespace CreateTransitGatewayPeeringAttachmentResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayPrefixListReferenceRequest { /**
     * <p>The ID of the transit gateway route table.</p>
     */ TransitGatewayRouteTableId : string | undefined ; /**
     * <p>The ID of the prefix list that is used for destination matches.</p>
     */ PrefixListId : string | undefined ; /**
     * <p>The ID of the attachment to which traffic is routed.</p>
     */ TransitGatewayAttachmentId ? : string ; /**
     * <p>Indicates whether to drop traffic that matches this route.</p>
     */ Blackhole ? : boolean ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateTransitGatewayPrefixListReferenceRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TransitGatewayPrefixListReferenceState = "available" | "deleting" | "modifying" | "pending" ; /**
 * <p>Describes a transit gateway prefix list attachment.</p>
 */ export interface TransitGatewayPrefixListAttachment { /**
     * <p>The ID of the attachment.</p>
     */ TransitGatewayAttachmentId ? : string ; /**
     * <p>The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.</p>
     */ ResourceType ? : TransitGatewayAttachmentResourceType | string ; /**
     * <p>The ID of the resource.</p>
     */ ResourceId ? : string ; } export namespace TransitGatewayPrefixListAttachment { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a prefix list reference.</p>
 */ export interface TransitGatewayPrefixListReference { /**
     * <p>The ID of the transit gateway route table.</p>
     */ TransitGatewayRouteTableId ? : string ; /**
     * <p>The ID of the prefix list.</p>
     */ PrefixListId ? : string ; /**
     * <p>The ID of the prefix list owner.</p>
     */ PrefixListOwnerId ? : string ; /**
     * <p>The state of the prefix list reference.</p>
     */ State ? : TransitGatewayPrefixListReferenceState | string ; /**
     * <p>Indicates whether traffic that matches this route is dropped.</p>
     */ Blackhole ? : boolean ; /**
     * <p>Information about the transit gateway attachment.</p>
     */ TransitGatewayAttachment ? : TransitGatewayPrefixListAttachment ; } export namespace TransitGatewayPrefixListReference { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayPrefixListReferenceResult { /**
     * <p>Information about the prefix list reference.</p>
     */ TransitGatewayPrefixListReference ? : TransitGatewayPrefixListReference ; } export namespace CreateTransitGatewayPrefixListReferenceResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayRouteRequest { /**
     * <p>The CIDR range used for destination matches. Routing decisions are based on the
     *          most specific match.</p>
     */ DestinationCidrBlock : string | undefined ; /**
     * <p>The ID of the transit gateway route table.</p>
     */ TransitGatewayRouteTableId : string | undefined ; /**
     * <p>The ID of the attachment.</p>
     */ TransitGatewayAttachmentId ? : string ; /**
     * <p>Indicates whether to drop traffic that matches this route.</p>
     */ Blackhole ? : boolean ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateTransitGatewayRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TransitGatewayRouteState = "active" | "blackhole" | "deleted" | "deleting" | "pending" ; /**
 * <p>Describes a route attachment.</p>
 */ export interface TransitGatewayRouteAttachment { /**
     * <p>The ID of the resource.</p>
     */ ResourceId ? : string ; /**
     * <p>The ID of the attachment.</p>
     */ TransitGatewayAttachmentId ? : string ; /**
     * <p>The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated. </p>
     */ ResourceType ? : TransitGatewayAttachmentResourceType | string ; } export namespace TransitGatewayRouteAttachment { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TransitGatewayRouteType = "propagated" | "static" ; /**
 * <p>Describes a route for a transit gateway route table.</p>
 */ export interface TransitGatewayRoute { /**
     * <p>The CIDR block used for destination matches.</p>
     */ DestinationCidrBlock ? : string ; /**
     * <p>The ID of the prefix list used for destination matches.</p>
     */ PrefixListId ? : string ; /**
     * <p>The attachments.</p>
     */ TransitGatewayAttachments ? : TransitGatewayRouteAttachment [ ] ; /**
     * <p>The route type.</p>
     */ Type ? : TransitGatewayRouteType | string ; /**
     * <p>The state of the route.</p>
     */ State ? : TransitGatewayRouteState | string ; } export namespace TransitGatewayRoute { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayRouteResult { /**
     * <p>Information about the route.</p>
     */ Route ? : TransitGatewayRoute ; } export namespace CreateTransitGatewayRouteResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayRouteTableRequest { /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId : string | undefined ; /**
     * <p>The tags to apply to the transit gateway route table.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateTransitGatewayRouteTableRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TransitGatewayRouteTableState = "available" | "deleted" | "deleting" | "pending" ; /**
 * <p>Describes a transit gateway route table.</p>
 */ export interface TransitGatewayRouteTable { /**
     * <p>The ID of the transit gateway route table.</p>
     */ TransitGatewayRouteTableId ? : string ; /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId ? : string ; /**
     * <p>The state of the transit gateway route table.</p>
     */ State ? : TransitGatewayRouteTableState | string ; /**
     * <p>Indicates whether this is the default association route table for the transit gateway.</p>
     */ DefaultAssociationRouteTable ? : boolean ; /**
     * <p>Indicates whether this is the default propagation route table for the transit gateway.</p>
     */ DefaultPropagationRouteTable ? : boolean ; /**
     * <p>The creation time.</p>
     */ CreationTime ? : Date ; /**
     * <p>Any tags assigned to the route table.</p>
     */ Tags ? : Tag [ ] ; } export namespace TransitGatewayRouteTable { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayRouteTableResult { /**
     * <p>Information about the transit gateway route table.</p>
     */ TransitGatewayRouteTable ? : TransitGatewayRouteTable ; } export namespace CreateTransitGatewayRouteTableResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the options for a VPC attachment.</p>
 */ export interface CreateTransitGatewayVpcAttachmentRequestOptions { /**
     * <p>Enable or disable DNS support. The default is <code>enable</code>.</p>
     */ DnsSupport ? : DnsSupportValue | string ; /**
     * <p>Enable or disable IPv6 support.  The default is <code>disable</code>.</p>
     */ Ipv6Support ? : Ipv6SupportValue | string ; /**
     * <p>Enable or disable support for appliance mode. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. The default is <code>disable</code>.</p>
     */ ApplianceModeSupport ? : ApplianceModeSupportValue | string ; } export namespace CreateTransitGatewayVpcAttachmentRequestOptions { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayVpcAttachmentRequest { /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId : string | undefined ; /**
     * <p>The ID of the VPC.</p>
     */ VpcId : string | undefined ; /**
     * <p>The IDs of one or more subnets. You can specify only one subnet per Availability Zone.
     *          You must specify at least one subnet, but we recommend that you specify two subnets for better availability.
     *          The transit gateway uses one IP address from each specified subnet.</p>
     */ SubnetIds : string [ ] | undefined ; /**
     * <p>The VPC attachment options.</p>
     */ Options ? : CreateTransitGatewayVpcAttachmentRequestOptions ; /**
     * <p>The tags to apply to the VPC attachment.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateTransitGatewayVpcAttachmentRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateTransitGatewayVpcAttachmentResult { /**
     * <p>Information about the VPC attachment.</p>
     */ TransitGatewayVpcAttachment ? : TransitGatewayVpcAttachment ; } export namespace CreateTransitGatewayVpcAttachmentResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVolumeRequest { /**
     * <p>The Availability Zone in which to create the volume.</p>
     */ AvailabilityZone : string | undefined ; /**
     * <p>Indicates whether the volume should be encrypted.
     *       The effect of setting the encryption state to <code>true</code> depends on
     * the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled.
     *       For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default">Encryption by default</a>
     *       in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
     *          <p>Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption.
     *       For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported
     *         instance types</a>.</p>
     */ Encrypted ? : boolean ; /**
     * <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents
     *       the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline
     *       performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
     *          <p>The following are the supported values for each volume type:</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>gp3</code>: 3,000-16,000 IOPS</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>io1</code>: 100-64,000 IOPS</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>io2</code>: 100-64,000 IOPS</p>
     *             </li>
     *          </ul>
     *          <p>
     *             <code>io1</code> and <code>io2</code> volumes support up to 64,000 IOPS only on
     *       <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances">Instances built on the Nitro System</a>. Other instance families support performance
     *       up to 32,000 IOPS.</p>
     *          <p>This parameter is required for <code>io1</code> and <code>io2</code> volumes.
     *       The default for <code>gp3</code> volumes is 3,000 IOPS.
     *       This parameter is not supported for <code>gp2</code>, <code>st1</code>, <code>sc1</code>, or <code>standard</code> volumes.</p>
     */ Iops ? : number ; /**
     * <p>The identifier of the Key Management Service (KMS) KMS key to use for Amazon EBS encryption.
     *       If this parameter is not specified, your KMS key for Amazon EBS is used. If <code>KmsKeyId</code> is
     *       specified, the encrypted state must be <code>true</code>.</p>
     *          <p>You can specify the KMS key using any of the following:</p>
     *          <ul>
     *             <li>
     *                <p>Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.</p>
     *             </li>
     *             <li>
     *                <p>Key alias. For example, alias/ExampleAlias.</p>
     *             </li>
     *             <li>
     *                <p>Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.</p>
     *             </li>
     *             <li>
     *                <p>Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.</p>
     *             </li>
     *          </ul>
     *          <p>Amazon Web Services authenticates the KMS key asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid,
     *       the action can appear to complete, but eventually fails.</p>
     */ KmsKeyId ? : string ; /**
     * <p>The Amazon Resource Name (ARN) of the Outpost.</p>
     */ OutpostArn ? : string ; /**
     * <p>The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size.
     *       If you specify a snapshot, the default is the snapshot size. You can specify a volume
     *       size that is equal to or larger than the snapshot size.</p>
     *          <p>The following are the supported volumes sizes for each volume type:</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>gp2</code> and <code>gp3</code>: 1-16,384</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>io1</code> and <code>io2</code>: 4-16,384</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>st1</code> and <code>sc1</code>: 125-16,384</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>standard</code>: 1-1,024</p>
     *             </li>
     *          </ul>
     */ Size ? : number ; /**
     * <p>The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.</p>
     */ SnapshotId ? : string ; /**
     * <p>The volume type. This parameter can be one of the following values:</p>
     *          <ul>
     *             <li>
     *                <p>General Purpose SSD: <code>gp2</code> | <code>gp3</code>
     *                </p>
     *             </li>
     *             <li>
     *                <p>Provisioned IOPS SSD: <code>io1</code> | <code>io2</code>
     *                </p>
     *             </li>
     *             <li>
     *                <p>Throughput Optimized HDD: <code>st1</code>
     *                </p>
     *             </li>
     *             <li>
     *                <p>Cold HDD: <code>sc1</code>
     *                </p>
     *             </li>
     *             <li>
     *                <p>Magnetic: <code>standard</code>
     *                </p>
     *             </li>
     *          </ul>
     *          <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html">Amazon EBS volume types</a> in the
     *       <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
     *          <p>Default: <code>gp2</code>
     *          </p>
     */ VolumeType ? : VolumeType | string ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The tags to apply to the volume during creation.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; /**
     * <p>Indicates whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the
     *     	volume to up to 16 <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances">Instances built on the Nitro System</a> in the same Availability Zone. This parameter is
     *     	supported with <code>io1</code> and <code>io2</code> volumes only. For more information,
     *     	see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html">
     *     		Amazon EBS Multi-Attach</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
     */ MultiAttachEnabled ? : boolean ; /**
     * <p>The throughput to provision for a volume, with a maximum of 1,000 MiB/s.</p>
     *          <p>This parameter is valid only for <code>gp3</code> volumes.</p>
     *   	      <p>Valid Range: Minimum value of 125. Maximum value of 1000.</p>
     */ Throughput ? : number ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
     *       of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensure
     *         Idempotency</a>.</p>
     */ ClientToken ? : string ; } export namespace CreateVolumeRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type VolumeState = "available" | "creating" | "deleted" | "deleting" | "error" | "in-use" ; /**
 * <p>Describes a volume.</p>
 */ export interface Volume { /**
     * <p>Information about the volume attachments.</p>
     */ Attachments ? : VolumeAttachment [ ] ; /**
     * <p>The Availability Zone for the volume.</p>
     */ AvailabilityZone ? : string ; /**
     * <p>The time stamp when volume creation was initiated.</p>
     */ CreateTime ? : Date ; /**
     * <p>Indicates whether the volume is encrypted.</p>
     */ Encrypted ? : boolean ; /**
     * <p>The Amazon Resource Name (ARN) of the Key Management Service (KMS) KMS key that was used to protect the
     *       volume encryption key for the volume.</p>
     */ KmsKeyId ? : string ; /**
     * <p>The Amazon Resource Name (ARN) of the Outpost.</p>
     */ OutpostArn ? : string ; /**
     * <p>The size of the volume, in GiBs.</p>
     */ Size ? : number ; /**
     * <p>The snapshot from which the volume was created, if applicable.</p>
     */ SnapshotId ? : string ; /**
     * <p>The volume state.</p>
     */ State ? : VolumeState | string ; /**
     * <p>The ID of the volume.</p>
     */ VolumeId ? : string ; /**
     * <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents
     *       the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline
     *       performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
     */ Iops ? : number ; /**
     * <p>Any tags assigned to the volume.</p>
     */ Tags ? : Tag [ ] ; /**
     * <p>The volume type.</p>
     */ VolumeType ? : VolumeType | string ; /**
     * <p>Indicates whether the volume was created using fast snapshot restore.</p>
     */ FastRestored ? : boolean ; /**
     * <p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>
     */ MultiAttachEnabled ? : boolean ; /**
     * <p>The throughput that the volume supports, in MiB/s.</p>
     */ Throughput ? : number ; } export namespace Volume { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcRequest { /**
     * <p>The IPv4 network range for the VPC, in CIDR notation. For example,
     * 		        <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.</p>
     */ CidrBlock ? : string ; /**
     * <p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC.
     *             You cannot specify the range of IP addresses, or the size of the CIDR block.</p>
     */ AmazonProvidedIpv6CidrBlock ? : boolean ; /**
     * <p>The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.</p>
     */ Ipv6Pool ? : string ; /**
     * <p>The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request.</p>
     *         <p>To let Amazon choose the IPv6 CIDR block for you, omit this parameter.</p>
     */ Ipv6CidrBlock ? : string ; /**
     * <p>The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see <a href="/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.
     *
     *       </p>
     */ Ipv4IpamPoolId ? : string ; /**
     * <p>The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
     */ Ipv4NetmaskLength ? : number ; /**
     * <p>The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see <a href="/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
     */ Ipv6IpamPoolId ? : string ; /**
     * <p>The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
     */ Ipv6NetmaskLength ? : number ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The tenancy options for instances launched into the VPC. For <code>default</code>, instances
     *       are launched with shared tenancy by default. You can launch instances with any tenancy into a
     *       shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy
     *       instances by default. You can only launch instances with a tenancy of <code>dedicated</code>
     *       or <code>host</code> into a dedicated tenancy VPC. </p>
     *          <p>
     *             <b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only.</p>
     *          <p>Default: <code>default</code>
     *          </p>
     */ InstanceTenancy ? : Tenancy | string ; /**
     * <p>The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.</p>
     *          <p> You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.</p>
     */ Ipv6CidrBlockNetworkBorderGroup ? : string ; /**
     * <p>The tags to assign to the VPC.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; } export namespace CreateVpcRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcResult { /**
     * <p>Information about the VPC.</p>
     */ Vpc ? : Vpc ; } export namespace CreateVpcResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum VpcEndpointType { Gateway = "Gateway" , GatewayLoadBalancer = "GatewayLoadBalancer" , Interface = "Interface" } /**
 * <p>Contains the parameters for CreateVpcEndpoint.</p>
 */ export interface CreateVpcEndpointRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The type of endpoint.</p>
     *         <p>Default: Gateway</p>
     */ VpcEndpointType ? : VpcEndpointType | string ; /**
     * <p>The ID of the VPC in which the endpoint will be used.</p>
     */ VpcId : string | undefined ; /**
     * <p>The service name. To get a list of available services, use the <a>DescribeVpcEndpointServices</a> request, or get the name from the service
     *             provider.</p>
     */ ServiceName : string | undefined ; /**
     * <p>(Interface and gateway endpoints) 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.</p>
     */ PolicyDocument ? : string ; /**
     * <p>(Gateway endpoint) One or more route table IDs.</p>
     */ RouteTableIds ? : string [ ] ; /**
     * <p>(Interface and Gateway Load Balancer endpoints) The ID of one or more subnets in which to create an endpoint
     *             network interface. For a Gateway Load Balancer endpoint, you can specify one subnet only.</p>
     */ SubnetIds ? : string [ ] ; /**
     * <p>(Interface endpoint) The ID of one or more security groups to associate with the
     *             endpoint network interface.</p>
     */ SecurityGroupIds ? : string [ ] ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
     *             request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to ensure
     *                 idempotency</a>.</p>
     */ ClientToken ? : string ; /**
     * <p>(Interface endpoint) Indicates whether to associate a private hosted zone with the
     *             specified VPC. The private hosted zone contains a record set for the default public DNS
     *             name for the service for the Region (for example,
     *                 <code>kinesis.us-east-1.amazonaws.com</code>), which resolves to the private IP
     *             addresses of the endpoint network interfaces in the VPC. This enables you to make
     *             requests to the default public DNS name for the service instead of the public DNS names
     *             that are automatically generated by the VPC endpoint service.</p>
     *         <p>To use a private hosted zone, you must set the following VPC attributes to
     *             <code>true</code>: <code>enableDnsHostnames</code> and
     *             <code>enableDnsSupport</code>. Use <a>ModifyVpcAttribute</a> to set the VPC
     *             attributes.</p>
     *         <p>Default: <code>true</code>
     *          </p>
     */ PrivateDnsEnabled ? : boolean ; /**
     * <p>The tags to associate with the endpoint.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; } export namespace CreateVpcEndpointRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a DNS entry.</p>
 */ export interface DnsEntry { /**
     * <p>The DNS name.</p>
     */ DnsName ? : string ; /**
     * <p>The ID of the private hosted zone.</p>
     */ HostedZoneId ? : string ; } export namespace DnsEntry { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a security group.</p>
 */ export interface SecurityGroupIdentifier { /**
     * <p>The ID of the security group.</p>
     */ GroupId ? : string ; /**
     * <p>The name of the security group.</p>
     */ GroupName ? : string ; } export namespace SecurityGroupIdentifier { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The last error that occurred for a VPC endpoint.</p>
 */ export interface LastError { /**
     * <p>The error message for the VPC endpoint error.</p>
     */ Message ? : string ; /**
     * <p>The error code for the VPC endpoint error.</p>
     */ Code ? : string ; } export namespace LastError { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum State { Available = "Available" , Deleted = "Deleted" , Deleting = "Deleting" , Expired = "Expired" , Failed = "Failed" , Pending = "Pending" , PendingAcceptance = "PendingAcceptance" , Rejected = "Rejected" } /**
 * <p>Describes a VPC endpoint.</p>
 */ export interface VpcEndpoint { /**
     * <p>The ID of the VPC endpoint.</p>
     */ VpcEndpointId ? : string ; /**
     * <p>The type of endpoint.</p>
     */ VpcEndpointType ? : VpcEndpointType | string ; /**
     * <p>The ID of the VPC to which the endpoint is associated.</p>
     */ VpcId ? : string ; /**
     * <p>The name of the service to which the endpoint is associated.</p>
     */ ServiceName ? : string ; /**
     * <p>The state of the VPC endpoint.</p>
     */ State ? : State | string ; /**
     * <p>The policy document associated with the endpoint, if applicable.</p>
     */ PolicyDocument ? : string ; /**
     * <p>(Gateway endpoint) One or more route tables associated with the endpoint.</p>
     */ RouteTableIds ? : string [ ] ; /**
     * <p>(Interface endpoint) One or more subnets in which the endpoint is located.</p>
     */ SubnetIds ? : string [ ] ; /**
     * <p>(Interface endpoint) Information about the security groups that are associated with
     *             the network interface.</p>
     */ Groups ? : SecurityGroupIdentifier [ ] ; /**
     * <p>(Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.</p>
     */ PrivateDnsEnabled ? : boolean ; /**
     * <p>Indicates whether the VPC endpoint is being managed by its service.</p>
     */ RequesterManaged ? : boolean ; /**
     * <p>(Interface endpoint) One or more network interfaces for the endpoint.</p>
     */ NetworkInterfaceIds ? : string [ ] ; /**
     * <p>(Interface endpoint) The DNS entries for the endpoint.</p>
     */ DnsEntries ? : DnsEntry [ ] ; /**
     * <p>The date and time that the VPC endpoint was created.</p>
     */ CreationTimestamp ? : Date ; /**
     * <p>Any tags assigned to the VPC endpoint.</p>
     */ Tags ? : Tag [ ] ; /**
     * <p>The ID of the Amazon Web Services account that owns the VPC endpoint.</p>
     */ OwnerId ? : string ; /**
     * <p>The last error that occurred for VPC endpoint.</p>
     */ LastError ? : LastError ; } export namespace VpcEndpoint { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the output of CreateVpcEndpoint.</p>
 */ export interface CreateVpcEndpointResult { /**
     * <p>Information about the endpoint.</p>
     */ VpcEndpoint ? : VpcEndpoint ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
     *             request.</p>
     */ ClientToken ? : string ; } export namespace CreateVpcEndpointResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcEndpointConnectionNotificationRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the endpoint service.</p>
     */ ServiceId ? : string ; /**
     * <p>The ID of the endpoint.</p>
     */ VpcEndpointId ? : string ; /**
     * <p>The ARN of the SNS topic for the notifications.</p>
     */ ConnectionNotificationArn : string | undefined ; /**
     * <p>One or more endpoint events for which to receive notifications. Valid values are
     *                 <code>Accept</code>, <code>Connect</code>, <code>Delete</code>, and
     *                 <code>Reject</code>.</p>
     */ ConnectionEvents : string [ ] | undefined ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
     *             request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to ensure
     *                 idempotency</a>.</p>
     */ ClientToken ? : string ; } export namespace CreateVpcEndpointConnectionNotificationRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum ConnectionNotificationState { Disabled = "Disabled" , Enabled = "Enabled" } export enum ConnectionNotificationType { Topic = "Topic" } /**
 * <p>Describes a connection notification for a VPC endpoint or VPC endpoint
 *             service.</p>
 */ export interface ConnectionNotification { /**
     * <p>The ID of the notification.</p>
     */ ConnectionNotificationId ? : string ; /**
     * <p>The ID of the endpoint service.</p>
     */ ServiceId ? : string ; /**
     * <p>The ID of the VPC endpoint.</p>
     */ VpcEndpointId ? : string ; /**
     * <p>The type of notification.</p>
     */ ConnectionNotificationType ? : ConnectionNotificationType | string ; /**
     * <p>The ARN of the SNS topic for the notification.</p>
     */ ConnectionNotificationArn ? : string ; /**
     * <p>The events for the notification. Valid values are <code>Accept</code>,
     *                 <code>Connect</code>, <code>Delete</code>, and <code>Reject</code>.</p>
     */ ConnectionEvents ? : string [ ] ; /**
     * <p>The state of the notification.</p>
     */ ConnectionNotificationState ? : ConnectionNotificationState | string ; } export namespace ConnectionNotification { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcEndpointConnectionNotificationResult { /**
     * <p>Information about the notification.</p>
     */ ConnectionNotification ? : ConnectionNotification ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
     *             request.</p>
     */ ClientToken ? : string ; } export namespace CreateVpcEndpointConnectionNotificationResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcEndpointServiceConfigurationRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>Indicates whether requests from service consumers to create an endpoint to your service must
     *             be accepted. To accept a request, use <a>AcceptVpcEndpointConnections</a>.</p>
     */ AcceptanceRequired ? : boolean ; /**
     * <p>(Interface endpoint configuration) The private DNS name to assign to the VPC endpoint service.</p>
     */ PrivateDnsName ? : string ; /**
     * <p>The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your
     *             service.</p>
     */ NetworkLoadBalancerArns ? : string [ ] ; /**
     * <p>The Amazon Resource Names (ARNs) of one or more Gateway Load Balancers.</p>
     */ GatewayLoadBalancerArns ? : string [ ] ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
     *             For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to ensure
     *                 idempotency</a>.</p>
     */ ClientToken ? : string ; /**
     * <p>The tags to associate with the service.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; } export namespace CreateVpcEndpointServiceConfigurationRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum PayerResponsibility { ServiceOwner = "ServiceOwner" } export enum DnsNameState { Failed = "failed" , PendingVerification = "pendingVerification" , Verified = "verified" } /**
 * <p>Information about the private DNS name for the service endpoint. For more information
 *             about these parameters, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/ndpoint-services-dns-validation.html">VPC Endpoint Service
 *                 Private DNS Name Verification</a> in the
 *             <i>Amazon Virtual Private Cloud User Guide</i>.</p>
 */ export interface PrivateDnsNameConfiguration { /**
     * <p>The verification state of the VPC endpoint service.</p>
     *         <p>>Consumers
     *             of the endpoint service can use the private name only when the state is
     *                 <code>verified</code>.</p>
     */ State ? : DnsNameState | string ; /**
     * <p>The endpoint service verification type, for example TXT.</p>
     */ Type ? : string ; /**
     * <p>The value the service provider adds to the private DNS name domain record before verification.</p>
     */ Value ? : string ; /**
     * <p>The name of the record subdomain the service provider needs to create. The service provider adds the <code>value</code> text to the <code>name</code>.</p>
     */ Name ? : string ; } export namespace PrivateDnsNameConfiguration { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum ServiceState { Available = "Available" , Deleted = "Deleted" , Deleting = "Deleting" , Failed = "Failed" , Pending = "Pending" } export enum ServiceType { Gateway = "Gateway" , GatewayLoadBalancer = "GatewayLoadBalancer" , Interface = "Interface" } /**
 * <p>Describes the type of service for a VPC endpoint.</p>
 */ export interface ServiceTypeDetail { /**
     * <p>The type of service.</p>
     */ ServiceType ? : ServiceType | string ; } export namespace ServiceTypeDetail { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a service configuration for a VPC endpoint service.</p>
 */ export interface ServiceConfiguration { /**
     * <p>The type of service.</p>
     */ ServiceType ? : ServiceTypeDetail [ ] ; /**
     * <p>The ID of the service.</p>
     */ ServiceId ? : string ; /**
     * <p>The name of the service.</p>
     */ ServiceName ? : string ; /**
     * <p>The service state.</p>
     */ ServiceState ? : ServiceState | string ; /**
     * <p>The Availability Zones in which the service is available.</p>
     */ AvailabilityZones ? : string [ ] ; /**
     * <p>Indicates whether requests from other Amazon Web Services accounts to create an endpoint to the service must first be accepted.</p>
     */ AcceptanceRequired ? : boolean ; /**
     * <p>Indicates whether the service manages its VPC endpoints. Management of the service VPC
     *             endpoints using the VPC endpoint API is restricted.</p>
     */ ManagesVpcEndpoints ? : boolean ; /**
     * <p>The Amazon Resource Names (ARNs) of the Network Load Balancers for the service.</p>
     */ NetworkLoadBalancerArns ? : string [ ] ; /**
     * <p>The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service.</p>
     */ GatewayLoadBalancerArns ? : string [ ] ; /**
     * <p>The DNS names for the service.</p>
     */ BaseEndpointDnsNames ? : string [ ] ; /**
     * <p>The private DNS name for the service.</p>
     */ PrivateDnsName ? : string ; /**
     * <p>Information about the endpoint service private DNS name configuration.</p>
     */ PrivateDnsNameConfiguration ? : PrivateDnsNameConfiguration ; /**
     * <p>The payer responsibility.</p>
     */ PayerResponsibility ? : PayerResponsibility | string ; /**
     * <p>Any tags assigned to the service.</p>
     */ Tags ? : Tag [ ] ; } export namespace ServiceConfiguration { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcEndpointServiceConfigurationResult { /**
     * <p>Information about the service configuration.</p>
     */ ServiceConfiguration ? : ServiceConfiguration ; /**
     * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the
     *             request.</p>
     */ ClientToken ? : string ; } export namespace CreateVpcEndpointServiceConfigurationResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcPeeringConnectionRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The Amazon Web Services account ID of the owner of the accepter VPC.</p>
     *          <p>Default: Your Amazon Web Services account ID</p>
     */ PeerOwnerId ? : string ; /**
     * <p>The ID of the VPC with which you are creating the VPC peering connection. You must
     * 			specify this parameter in the request.</p>
     */ PeerVpcId ? : string ; /**
     * <p>The ID of the requester VPC. You must specify this parameter in the
     * 			request.</p>
     */ VpcId ? : string ; /**
     * <p>The Region code for the accepter VPC, if the accepter VPC is located in a Region
     *             other than the Region in which you make the request.</p>
     * 		       <p>Default: The Region in which you make the request.</p>
     */ PeerRegion ? : string ; /**
     * <p>The tags to assign to the peering connection.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; } export namespace CreateVpcPeeringConnectionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface CreateVpcPeeringConnectionResult { /**
     * <p>Information about the VPC peering connection.</p>
     */ VpcPeeringConnection ? : VpcPeeringConnection ; } export namespace CreateVpcPeeringConnectionResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TunnelInsideIpVersion = "ipv4" | "ipv6" ; /**
 * <p>The IKE version that is permitted for the VPN tunnel.</p>
 */ export interface IKEVersionsRequestListValue { /**
     * <p>The IKE version.</p>
     */ Value ? : string ; } export namespace IKEVersionsRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Specifies a Diffie-Hellman group number for the VPN tunnel for phase 1 IKE
 *             negotiations.</p>
 */ export interface Phase1DHGroupNumbersRequestListValue { /**
     * <p>The Diffie-Hellmann group number.</p>
     */ Value ? : number ; } export namespace Phase1DHGroupNumbersRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Specifies the encryption algorithm for the VPN tunnel for phase 1 IKE
 *             negotiations.</p>
 */ export interface Phase1EncryptionAlgorithmsRequestListValue { /**
     * <p>The value for the encryption algorithm.</p>
     */ Value ? : string ; } export namespace Phase1EncryptionAlgorithmsRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Specifies the integrity algorithm for the VPN tunnel for phase 1 IKE
 *             negotiations.</p>
 */ export interface Phase1IntegrityAlgorithmsRequestListValue { /**
     * <p>The value for the integrity algorithm.</p>
     */ Value ? : string ; } export namespace Phase1IntegrityAlgorithmsRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Specifies a Diffie-Hellman group number for the VPN tunnel for phase 2 IKE
 *             negotiations.</p>
 */ export interface Phase2DHGroupNumbersRequestListValue { /**
     * <p>The Diffie-Hellmann group number.</p>
     */ Value ? : number ; } export namespace Phase2DHGroupNumbersRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Specifies the encryption algorithm for the VPN tunnel for phase 2 IKE
 *             negotiations.</p>
 */ export interface Phase2EncryptionAlgorithmsRequestListValue { /**
     * <p>The encryption algorithm.</p>
     */ Value ? : string ; } export namespace Phase2EncryptionAlgorithmsRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Specifies the integrity algorithm for the VPN tunnel for phase 2 IKE
 *             negotiations.</p>
 */ export interface Phase2IntegrityAlgorithmsRequestListValue { /**
     * <p>The integrity algorithm.</p>
     */ Value ? : string ; } export namespace Phase2IntegrityAlgorithmsRequestListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The tunnel options for a single VPN tunnel.</p>
 */ export interface VpnTunnelOptionsSpecification { /**
     * <p>The range of inside IPv4 addresses for the tunnel. Any specified CIDR blocks must be
     *             unique across all VPN connections that use the same virtual private gateway. </p>
     *         <p>Constraints: A size /30 CIDR block from the <code>169.254.0.0/16</code> range. The
     *             following CIDR blocks are reserved and cannot be used:</p>
     *         <ul>
     *             <li>
     *                 <p>
     *                   <code>169.254.0.0/30</code>
     *                </p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>169.254.1.0/30</code>
     *                </p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>169.254.2.0/30</code>
     *                </p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>169.254.3.0/30</code>
     *                </p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>169.254.4.0/30</code>
     *                </p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>169.254.5.0/30</code>
     *                </p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>169.254.169.252/30</code>
     *                </p>
     *             </li>
     *          </ul>
     */ TunnelInsideCidr ? : string ; /**
     * <p>The range of inside IPv6 addresses for the tunnel. Any specified CIDR blocks must be
     *             unique across all VPN connections that use the same transit gateway.</p>
     *         <p>Constraints: A size /126 CIDR block from the local <code>fd00::/8</code> range.</p>
     */ TunnelInsideIpv6Cidr ? : string ; /**
     * <p>The pre-shared key (PSK) to establish initial authentication between the virtual
     *             private gateway and customer gateway.</p>
     *         <p>Constraints: Allowed characters are alphanumeric characters, periods (.), and
     *             underscores (_). Must be between 8 and 64 characters in length and cannot start with
     *             zero (0).</p>
     */ PreSharedKey ? : string ; /**
     * <p>The lifetime for phase 1 of the IKE negotiation, in seconds.</p>
     *         <p>Constraints: A value between 900 and 28,800.</p>
     *         <p>Default: <code>28800</code>
     *          </p>
     */ Phase1LifetimeSeconds ? : number ; /**
     * <p>The lifetime for phase 2 of the IKE negotiation, in seconds.</p>
     *         <p>Constraints: A value between 900 and 3,600. The value must be less than the value for
     *                 <code>Phase1LifetimeSeconds</code>.</p>
     *         <p>Default: <code>3600</code>
     *          </p>
     */ Phase2LifetimeSeconds ? : number ; /**
     * <p>The margin time, in seconds, before the phase 2 lifetime expires, during which the
     *                 Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time
     *             of the rekey is randomly selected based on the value for
     *                 <code>RekeyFuzzPercentage</code>.</p>
     *         <p>Constraints: A value between 60 and half of <code>Phase2LifetimeSeconds</code>.</p>
     *         <p>Default: <code>540</code>
     *          </p>
     */ RekeyMarginTimeSeconds ? : number ; /**
     * <p>The percentage of the rekey window (determined by <code>RekeyMarginTimeSeconds</code>)
     *             during which the rekey time is randomly selected.</p>
     *         <p>Constraints: A value between 0 and 100.</p>
     *         <p>Default: <code>100</code>
     *          </p>
     */ RekeyFuzzPercentage ? : number ; /**
     * <p>The number of packets in an IKE replay window.</p>
     *         <p>Constraints: A value between 64 and 2048.</p>
     *         <p>Default: <code>1024</code>
     *          </p>
     */ ReplayWindowSize ? : number ; /**
     * <p>The number of seconds after which a DPD timeout occurs.</p>
     *         <p>Constraints: A value greater than or equal to 30.</p>
     *         <p>Default: <code>30</code>
     *          </p>
     */ DPDTimeoutSeconds ? : number ; /**
     * <p>The action to take after DPD timeout occurs. Specify <code>restart</code> to restart
     *             the IKE initiation. Specify <code>clear</code> to end the IKE session.</p>
     *         <p>Valid Values: <code>clear</code> | <code>none</code> | <code>restart</code>
     *          </p>
     *         <p>Default: <code>clear</code>
     *          </p>
     */ DPDTimeoutAction ? : string ; /**
     * <p>One or more encryption algorithms that are permitted for the VPN tunnel for phase 1
     *             IKE negotiations.</p>
     *         <p>Valid values: <code>AES128</code> | <code>AES256</code> | <code>AES128-GCM-16</code> |
     *                 <code>AES256-GCM-16</code>
     *          </p>
     */ Phase1EncryptionAlgorithms ? : Phase1EncryptionAlgorithmsRequestListValue [ ] ; /**
     * <p>One or more encryption algorithms that are permitted for the VPN tunnel for phase 2
     *             IKE negotiations.</p>
     *         <p>Valid values: <code>AES128</code> | <code>AES256</code> | <code>AES128-GCM-16</code> |
     *                 <code>AES256-GCM-16</code>
     *          </p>
     */ Phase2EncryptionAlgorithms ? : Phase2EncryptionAlgorithmsRequestListValue [ ] ; /**
     * <p>One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE
     *             negotiations.</p>
     *         <p>Valid values: <code>SHA1</code> | <code>SHA2-256</code> | <code>SHA2-384</code> |
     *                 <code>SHA2-512</code>
     *          </p>
     */ Phase1IntegrityAlgorithms ? : Phase1IntegrityAlgorithmsRequestListValue [ ] ; /**
     * <p>One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE
     *             negotiations.</p>
     *         <p>Valid values: <code>SHA1</code> | <code>SHA2-256</code> | <code>SHA2-384</code> |
     *                 <code>SHA2-512</code>
     *          </p>
     */ Phase2IntegrityAlgorithms ? : Phase2IntegrityAlgorithmsRequestListValue [ ] ; /**
     * <p>One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for
     *             phase 1 IKE negotiations.</p>
     *         <p>Valid values: <code>2</code> | <code>14</code> | <code>15</code> | <code>16</code> |
     *                 <code>17</code> | <code>18</code> | <code>19</code> | <code>20</code> |
     *                 <code>21</code> | <code>22</code> | <code>23</code> | <code>24</code>
     *          </p>
     */ Phase1DHGroupNumbers ? : Phase1DHGroupNumbersRequestListValue [ ] ; /**
     * <p>One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for
     *             phase 2 IKE negotiations.</p>
     *         <p>Valid values: <code>2</code> | <code>5</code> | <code>14</code> | <code>15</code> |
     *                 <code>16</code> | <code>17</code> | <code>18</code> | <code>19</code> |
     *                 <code>20</code> | <code>21</code> | <code>22</code> | <code>23</code> |
     *                 <code>24</code>
     *          </p>
     */ Phase2DHGroupNumbers ? : Phase2DHGroupNumbersRequestListValue [ ] ; /**
     * <p>The IKE versions that are permitted for the VPN tunnel.</p>
     *         <p>Valid values: <code>ikev1</code> | <code>ikev2</code>
     *          </p>
     */ IKEVersions ? : IKEVersionsRequestListValue [ ] ; /**
     * <p>The action to take when the establishing the tunnel for the VPN connection. By
     *             default, your customer gateway device must initiate the IKE negotiation and bring up the
     *             tunnel. Specify <code>start</code> for Amazon Web Services to initiate the IKE
     *             negotiation.</p>
     *         <p>Valid Values: <code>add</code> | <code>start</code>
     *          </p>
     *         <p>Default: <code>add</code>
     *          </p>
     */ StartupAction ? : string ; } export namespace VpnTunnelOptionsSpecification { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes VPN connection options.</p>
 */ export interface VpnConnectionOptionsSpecification { /**
     * <p>Indicate whether to enable acceleration for the VPN connection.</p>
     *         <p>Default: <code>false</code>
     *          </p>
     */ EnableAcceleration ? : boolean ; /**
     * <p>Indicate whether the VPN connection uses static routes only. If you are creating a VPN
     *             connection for a device that does not support BGP, you must specify <code>true</code>.
     *             Use <a>CreateVpnConnectionRoute</a> to create a static route.</p>
     *         <p>Default: <code>false</code>
     *          </p>
     */ StaticRoutesOnly ? : boolean ; /**
     * <p>Indicate whether the VPN tunnels process IPv4 or IPv6 traffic.</p>
     *         <p>Default: <code>ipv4</code>
     *          </p>
     */ TunnelInsideIpVersion ? : TunnelInsideIpVersion | string ; /**
     * <p>The tunnel options for the VPN connection.</p>
     */ TunnelOptions ? : VpnTunnelOptionsSpecification [ ] ; /**
     * <p>The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.</p>
     *         <p>Default: <code>0.0.0.0/0</code>
     *          </p>
     */ LocalIpv4NetworkCidr ? : string ; /**
     * <p>The IPv4 CIDR on the Amazon Web Services side of the VPN connection.</p>
     *         <p>Default: <code>0.0.0.0/0</code>
     *          </p>
     */ RemoteIpv4NetworkCidr ? : string ; /**
     * <p>The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.</p>
     *         <p>Default: <code>::/0</code>
     *          </p>
     */ LocalIpv6NetworkCidr ? : string ; /**
     * <p>The IPv6 CIDR on the Amazon Web Services side of the VPN connection.</p>
     *         <p>Default: <code>::/0</code>
     *          </p>
     */ RemoteIpv6NetworkCidr ? : string ; } export namespace VpnConnectionOptionsSpecification { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for CreateVpnConnection.</p>
 */ export interface CreateVpnConnectionRequest { /**
     * <p>The ID of the customer gateway.</p>
     */ CustomerGatewayId : string | undefined ; /**
     * <p>The type of VPN connection (<code>ipsec.1</code>).</p>
     */ Type : string | undefined ; /**
     * <p>The ID of the virtual private gateway. If you specify a virtual private gateway, you
     *             cannot specify a transit gateway.</p>
     */ VpnGatewayId ? : string ; /**
     * <p>The ID of the transit gateway. If you specify a transit gateway, you cannot specify a virtual private
     *             gateway.</p>
     */ TransitGatewayId ? : string ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The options for the VPN connection.</p>
     */ Options ? : VpnConnectionOptionsSpecification ; /**
     * <p>The tags to apply to the VPN connection.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; } export namespace CreateVpnConnectionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum GatewayAssociationState { associated = "associated" , associating = "associating" , disassociating = "disassociating" , not_associated = "not-associated" } /**
 * <p>The internet key exchange (IKE) version permitted for the VPN tunnel.</p>
 */ export interface IKEVersionsListValue { /**
     * <p>The IKE version.</p>
     */ Value ? : string ; } export namespace IKEVersionsListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The Diffie-Hellmann group number for phase 1 IKE negotiations.</p>
 */ export interface Phase1DHGroupNumbersListValue { /**
     * <p>The Diffie-Hellmann group number.</p>
     */ Value ? : number ; } export namespace Phase1DHGroupNumbersListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The encryption algorithm for phase 1 IKE negotiations.</p>
 */ export interface Phase1EncryptionAlgorithmsListValue { /**
     * <p>The value for the encryption algorithm.</p>
     */ Value ? : string ; } export namespace Phase1EncryptionAlgorithmsListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The integrity algorithm for phase 1 IKE negotiations.</p>
 */ export interface Phase1IntegrityAlgorithmsListValue { /**
     * <p>The value for the integrity algorithm.</p>
     */ Value ? : string ; } export namespace Phase1IntegrityAlgorithmsListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The Diffie-Hellmann group number for phase 2 IKE negotiations.</p>
 */ export interface Phase2DHGroupNumbersListValue { /**
     * <p>The Diffie-Hellmann group number.</p>
     */ Value ? : number ; } export namespace Phase2DHGroupNumbersListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The encryption algorithm for phase 2 IKE negotiations.</p>
 */ export interface Phase2EncryptionAlgorithmsListValue { /**
     * <p>The encryption algorithm.</p>
     */ Value ? : string ; } export namespace Phase2EncryptionAlgorithmsListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The integrity algorithm for phase 2 IKE negotiations.</p>
 */ export interface Phase2IntegrityAlgorithmsListValue { /**
     * <p>The integrity algorithm.</p>
     */ Value ? : string ; } export namespace Phase2IntegrityAlgorithmsListValue { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The VPN tunnel options.</p>
 */ export interface TunnelOption { /**
     * <p>The external IP address of the VPN tunnel.</p>
     */ OutsideIpAddress ? : string ; /**
     * <p>The range of inside IPv4 addresses for the tunnel.</p>
     */ TunnelInsideCidr ? : string ; /**
     * <p>The range of inside IPv6 addresses for the tunnel.</p>
     */ TunnelInsideIpv6Cidr ? : string ; /**
     * <p>The pre-shared key (PSK) to establish initial authentication between the virtual
     *             private gateway and the customer gateway.</p>
     */ PreSharedKey ? : string ; /**
     * <p>The lifetime for phase 1 of the IKE negotiation, in seconds.</p>
     */ Phase1LifetimeSeconds ? : number ; /**
     * <p>The lifetime for phase 2 of the IKE negotiation, in seconds.</p>
     */ Phase2LifetimeSeconds ? : number ; /**
     * <p>The margin time, in seconds, before the phase 2 lifetime expires, during which the
     *                 Amazon Web Services side of the VPN connection performs an IKE rekey.</p>
     */ RekeyMarginTimeSeconds ? : number ; /**
     * <p>The percentage of the rekey window determined by <code>RekeyMarginTimeSeconds</code>
     *             during which the rekey time is randomly selected.</p>
     */ RekeyFuzzPercentage ? : number ; /**
     * <p>The number of packets in an IKE replay window.</p>
     */ ReplayWindowSize ? : number ; /**
     * <p>The number of seconds after which a DPD timeout occurs.</p>
     */ DpdTimeoutSeconds ? : number ; /**
     * <p>The action to take after a DPD timeout occurs.</p>
     */ DpdTimeoutAction ? : string ; /**
     * <p>The permitted encryption algorithms for the VPN tunnel for phase 1 IKE
     *             negotiations.</p>
     */ Phase1EncryptionAlgorithms ? : Phase1EncryptionAlgorithmsListValue [ ] ; /**
     * <p>The permitted encryption algorithms for the VPN tunnel for phase 2 IKE
     *             negotiations.</p>
     */ Phase2EncryptionAlgorithms ? : Phase2EncryptionAlgorithmsListValue [ ] ; /**
     * <p>The permitted integrity algorithms for the VPN tunnel for phase 1 IKE
     *             negotiations.</p>
     */ Phase1IntegrityAlgorithms ? : Phase1IntegrityAlgorithmsListValue [ ] ; /**
     * <p>The permitted integrity algorithms for the VPN tunnel for phase 2 IKE
     *             negotiations.</p>
     */ Phase2IntegrityAlgorithms ? : Phase2IntegrityAlgorithmsListValue [ ] ; /**
     * <p>The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE
     *             negotiations.</p>
     */ Phase1DHGroupNumbers ? : Phase1DHGroupNumbersListValue [ ] ; /**
     * <p>The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE
     *             negotiations.</p>
     */ Phase2DHGroupNumbers ? : Phase2DHGroupNumbersListValue [ ] ; /**
     * <p>The IKE versions that are permitted for the VPN tunnel.</p>
     */ IkeVersions ? : IKEVersionsListValue [ ] ; /**
     * <p>The action to take when the establishing the VPN tunnels for a VPN connection.</p>
     */ StartupAction ? : string ; } export namespace TunnelOption { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes VPN connection options.</p>
 */ export interface VpnConnectionOptions { /**
     * <p>Indicates whether acceleration is enabled for the VPN connection.</p>
     */ EnableAcceleration ? : boolean ; /**
     * <p>Indicates whether the VPN connection uses static routes only. Static routes must be
     *             used for devices that don't support BGP.</p>
     */ StaticRoutesOnly ? : boolean ; /**
     * <p>The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.</p>
     */ LocalIpv4NetworkCidr ? : string ; /**
     * <p>The IPv4 CIDR on the Amazon Web Services side of the VPN connection.</p>
     */ RemoteIpv4NetworkCidr ? : string ; /**
     * <p>The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.</p>
     */ LocalIpv6NetworkCidr ? : string ; /**
     * <p>The IPv6 CIDR on the Amazon Web Services side of the VPN connection.</p>
     */ RemoteIpv6NetworkCidr ? : string ; /**
     * <p>Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.</p>
     */ TunnelInsideIpVersion ? : TunnelInsideIpVersion | string ; /**
     * <p>Indicates the VPN tunnel options.</p>
     */ TunnelOptions ? : TunnelOption [ ] ; } export namespace VpnConnectionOptions { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type VpnStaticRouteSource = "Static" ; export type VpnState = "available" | "deleted" | "deleting" | "pending" ; /**
 * <p>Describes a static route for a VPN connection.</p>
 */ export interface VpnStaticRoute { /**
     * <p>The CIDR block associated with the local subnet of the customer data center.</p>
     */ DestinationCidrBlock ? : string ; /**
     * <p>Indicates how the routes were provided.</p>
     */ Source ? : VpnStaticRouteSource | string ; /**
     * <p>The current state of the static route.</p>
     */ State ? : VpnState | string ; } export namespace VpnStaticRoute { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type TelemetryStatus = "DOWN" | "UP" ; /**
 * <p>Describes telemetry for a VPN tunnel.</p>
 */ export interface VgwTelemetry { /**
     * <p>The number of accepted routes.</p>
     */ AcceptedRouteCount ? : number ; /**
     * <p>The date and time of the last change in status.</p>
     */ LastStatusChange ? : Date ; /**
     * <p>The Internet-routable IP address of the virtual private gateway's outside
     *             interface.</p>
     */ OutsideIpAddress ? : string ; /**
     * <p>The status of the VPN tunnel.</p>
     */ Status ? : TelemetryStatus | string ; /**
     * <p>If an error occurs, a description of the error.</p>
     */ StatusMessage ? : string ; /**
     * <p>The Amazon Resource Name (ARN) of the VPN tunnel endpoint certificate.</p>
     */ CertificateArn ? : string ; } export namespace VgwTelemetry { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a VPN connection.</p>
 */ export interface VpnConnection { /**
     * <p>The configuration information for the VPN connection's customer gateway (in the native
     *             XML format). This element is always present in the <a>CreateVpnConnection</a>
     *             response; however, it's present in the <a>DescribeVpnConnections</a> response
     *             only if the VPN connection is in the <code>pending</code> or <code>available</code>
     *             state.</p>
     */ CustomerGatewayConfiguration ? : string ; /**
     * <p>The ID of the customer gateway at your end of the VPN connection.</p>
     */ CustomerGatewayId ? : string ; /**
     * <p>The category of the VPN connection. A value of <code>VPN</code> indicates an Amazon Web Services VPN connection. A value of <code>VPN-Classic</code> indicates an Amazon Web Services Classic VPN connection.</p>
     */ Category ? : string ; /**
     * <p>The current state of the VPN connection.</p>
     */ State ? : VpnState | string ; /**
     * <p>The type of VPN connection.</p>
     */ Type ? : GatewayType | string ; /**
     * <p>The ID of the VPN connection.</p>
     */ VpnConnectionId ? : string ; /**
     * <p>The ID of the virtual private gateway at the Amazon Web Services side of the VPN
     *             connection.</p>
     */ VpnGatewayId ? : string ; /**
     * <p>The ID of the transit gateway associated with the VPN connection.</p>
     */ TransitGatewayId ? : string ; /**
     * <p>The ARN of the core network.</p>
     */ CoreNetworkArn ? : string ; /**
     * <p>The ARN of the core network attachment.</p>
     */ CoreNetworkAttachmentArn ? : string ; /**
     * <p>The current state of the gateway association.</p>
     */ GatewayAssociationState ? : GatewayAssociationState | string ; /**
     * <p>The VPN connection options.</p>
     */ Options ? : VpnConnectionOptions ; /**
     * <p>The static routes associated with the VPN connection.</p>
     */ Routes ? : VpnStaticRoute [ ] ; /**
     * <p>Any tags assigned to the VPN connection.</p>
     */ Tags ? : Tag [ ] ; /**
     * <p>Information about the VPN tunnel.</p>
     */ VgwTelemetry ? : VgwTelemetry [ ] ; } export namespace VpnConnection { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the output of CreateVpnConnection.</p>
 */ export interface CreateVpnConnectionResult { /**
     * <p>Information about the VPN connection.</p>
     */ VpnConnection ? : VpnConnection ; } export namespace CreateVpnConnectionResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for CreateVpnConnectionRoute.</p>
 */ export interface CreateVpnConnectionRouteRequest { /**
     * <p>The CIDR block associated with the local subnet of the customer network.</p>
     */ DestinationCidrBlock : string | undefined ; /**
     * <p>The ID of the VPN connection.</p>
     */ VpnConnectionId : string | undefined ; } export namespace CreateVpnConnectionRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for CreateVpnGateway.</p>
 */ export interface CreateVpnGatewayRequest { /**
     * <p>The Availability Zone for the virtual private gateway.</p>
     */ AvailabilityZone ? : string ; /**
     * <p>The type of VPN connection this virtual private gateway supports.</p>
     */ Type : GatewayType | string | undefined ; /**
     * <p>The tags to apply to the virtual private gateway.</p>
     */ TagSpecifications ? : TagSpecification [ ] ; /**
     * <p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If
     *             you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a
     *             32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>
     *         <p>Default: 64512</p>
     */ AmazonSideAsn ? : number ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace CreateVpnGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a virtual private gateway.</p>
 */ export interface VpnGateway { /**
     * <p>The Availability Zone where the virtual private gateway was created, if applicable.
     *             This field may be empty or not returned.</p>
     */ AvailabilityZone ? : string ; /**
     * <p>The current state of the virtual private gateway.</p>
     */ State ? : VpnState | string ; /**
     * <p>The type of VPN connection the virtual private gateway supports.</p>
     */ Type ? : GatewayType | string ; /**
     * <p>Any VPCs attached to the virtual private gateway.</p>
     */ VpcAttachments ? : VpcAttachment [ ] ; /**
     * <p>The ID of the virtual private gateway.</p>
     */ VpnGatewayId ? : string ; /**
     * <p>The private Autonomous System Number (ASN) for the Amazon side of a BGP
     *             session.</p>
     */ AmazonSideAsn ? : number ; /**
     * <p>Any tags assigned to the virtual private gateway.</p>
     */ Tags ? : Tag [ ] ; } export namespace VpnGateway { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the output of CreateVpnGateway.</p>
 */ export interface CreateVpnGatewayResult { /**
     * <p>Information about the virtual private gateway.</p>
     */ VpnGateway ? : VpnGateway ; } export namespace CreateVpnGatewayResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteCarrierGatewayRequest { /**
     * <p>The ID of the carrier gateway.</p>
     */ CarrierGatewayId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteCarrierGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteCarrierGatewayResult { /**
     * <p>Information about the carrier gateway.</p>
     */ CarrierGateway ? : CarrierGateway ; } export namespace DeleteCarrierGatewayResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteClientVpnEndpointRequest { /**
     * <p>The ID of the Client VPN to be deleted.</p>
     */ ClientVpnEndpointId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteClientVpnEndpointRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteClientVpnEndpointResult { /**
     * <p>The current state of the Client VPN endpoint.</p>
     */ Status ? : ClientVpnEndpointStatus ; } export namespace DeleteClientVpnEndpointResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteClientVpnRouteRequest { /**
     * <p>The ID of the Client VPN endpoint from which the route is to be deleted.</p>
     */ ClientVpnEndpointId : string | undefined ; /**
     * <p>The ID of the target subnet used by the route.</p>
     */ TargetVpcSubnetId ? : string ; /**
     * <p>The IPv4 address range, in CIDR notation, of the route to be deleted.</p>
     */ DestinationCidrBlock : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteClientVpnRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteClientVpnRouteResult { /**
     * <p>The current state of the route.</p>
     */ Status ? : ClientVpnRouteStatus ; } export namespace DeleteClientVpnRouteResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteCustomerGateway.</p>
 */ export interface DeleteCustomerGatewayRequest { /**
     * <p>The ID of the customer gateway.</p>
     */ CustomerGatewayId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteCustomerGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteDhcpOptionsRequest { /**
     * <p>The ID of the DHCP options set.</p>
     */ DhcpOptionsId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteDhcpOptionsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteEgressOnlyInternetGatewayRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the egress-only internet gateway.</p>
     */ EgressOnlyInternetGatewayId : string | undefined ; } export namespace DeleteEgressOnlyInternetGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteEgressOnlyInternetGatewayResult { /**
     * <p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>
     */ ReturnCode ? : boolean ; } export namespace DeleteEgressOnlyInternetGatewayResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteFleetsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The IDs of the EC2 Fleets.</p>
     */ FleetIds : string [ ] | undefined ; /**
     * <p>Indicates whether to terminate the instances when the EC2 Fleet is deleted. The default is to
     *          terminate the instances.</p>
     *          <p>To let the instances continue to run after the EC2 Fleet is deleted, specify
     *             <code>NoTerminateInstances</code>. Supported only for fleets of type
     *             <code>maintain</code> and <code>request</code>.</p>
     *          <p>For <code>instant</code> fleets, you cannot specify <code>NoTerminateInstances</code>. A
     *          deleted <code>instant</code> fleet with running instances is not supported.</p>
     */ TerminateInstances : boolean | undefined ; } export namespace DeleteFleetsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum FleetStateCode { ACTIVE = "active" , DELETED = "deleted" , DELETED_RUNNING = "deleted_running" , DELETED_TERMINATING_INSTANCES = "deleted_terminating" , FAILED = "failed" , MODIFYING = "modifying" , SUBMITTED = "submitted" } /**
 * <p>Describes an EC2 Fleet that was successfully deleted.</p>
 */ export interface DeleteFleetSuccessItem { /**
     * <p>The current state of the EC2 Fleet.</p>
     */ CurrentFleetState ? : FleetStateCode | string ; /**
     * <p>The previous state of the EC2 Fleet.</p>
     */ PreviousFleetState ? : FleetStateCode | string ; /**
     * <p>The ID of the EC2 Fleet.</p>
     */ FleetId ? : string ; } export namespace DeleteFleetSuccessItem { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum DeleteFleetErrorCode { FLEET_ID_DOES_NOT_EXIST = "fleetIdDoesNotExist" , FLEET_ID_MALFORMED = "fleetIdMalformed" , FLEET_NOT_IN_DELETABLE_STATE = "fleetNotInDeletableState" , UNEXPECTED_ERROR = "unexpectedError" } /**
 * <p>Describes an EC2 Fleet error.</p>
 */ export interface DeleteFleetError { /**
     * <p>The error code.</p>
     */ Code ? : DeleteFleetErrorCode | string ; /**
     * <p>The description for the error code.</p>
     */ Message ? : string ; } export namespace DeleteFleetError { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes an EC2 Fleet that was not successfully deleted.</p>
 */ export interface DeleteFleetErrorItem { /**
     * <p>The error.</p>
     */ Error ? : DeleteFleetError ; /**
     * <p>The ID of the EC2 Fleet.</p>
     */ FleetId ? : string ; } export namespace DeleteFleetErrorItem { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteFleetsResult { /**
     * <p>Information about the EC2 Fleets that are successfully deleted.</p>
     */ SuccessfulFleetDeletions ? : DeleteFleetSuccessItem [ ] ; /**
     * <p>Information about the EC2 Fleets that are not successfully deleted.</p>
     */ UnsuccessfulFleetDeletions ? : DeleteFleetErrorItem [ ] ; } export namespace DeleteFleetsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteFlowLogsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>One or more flow log IDs.</p>
     *         <p>Constraint: Maximum of 1000 flow log IDs.</p>
     */ FlowLogIds : string [ ] | undefined ; } export namespace DeleteFlowLogsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteFlowLogsResult { /**
     * <p>Information about the flow logs that could not be deleted successfully.</p>
     */ Unsuccessful ? : UnsuccessfulItem [ ] ; } export namespace DeleteFlowLogsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteFpgaImageRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the AFI.</p>
     */ FpgaImageId : string | undefined ; } export namespace DeleteFpgaImageRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteFpgaImageResult { /**
     * <p>Is <code>true</code> if the request succeeds, and an error otherwise.</p>
     */ Return ? : boolean ; } export namespace DeleteFpgaImageResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteInstanceEventWindowRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>Specify <code>true</code> to force delete the event window. Use the force delete parameter
     *          if the event window is currently associated with targets.</p>
     */ ForceDelete ? : boolean ; /**
     * <p>The ID of the event window.</p>
     */ InstanceEventWindowId : string | undefined ; } export namespace DeleteInstanceEventWindowRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The state of the event window.</p>
 */ export interface InstanceEventWindowStateChange { /**
     * <p>The ID of the event window.</p>
     */ InstanceEventWindowId ? : string ; /**
     * <p>The current state of the event window.</p>
     */ State ? : InstanceEventWindowState | string ; } export namespace InstanceEventWindowStateChange { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteInstanceEventWindowResult { /**
     * <p>The state of the event window.</p>
     */ InstanceEventWindowState ? : InstanceEventWindowStateChange ; } export namespace DeleteInstanceEventWindowResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteInternetGatewayRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the internet gateway.</p>
     */ InternetGatewayId : string | undefined ; } export namespace DeleteInternetGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteIpamRequest { /**
     * <p>A check for 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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the IPAM to delete.</p>
     */ IpamId : string | undefined ; } export namespace DeleteIpamRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteIpamResult { /**
     * <p>Information about the results of the deletion.</p>
     */ Ipam ? : Ipam ; } export namespace DeleteIpamResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteIpamPoolRequest { /**
     * <p>A check for 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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the pool to delete.</p>
     */ IpamPoolId : string | undefined ; } export namespace DeleteIpamPoolRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteIpamPoolResult { /**
     * <p>Information about the results of the deletion.</p>
     */ IpamPool ? : IpamPool ; } export namespace DeleteIpamPoolResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteIpamScopeRequest { /**
     * <p>A check for 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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the scope to delete.</p>
     */ IpamScopeId : string | undefined ; } export namespace DeleteIpamScopeRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteIpamScopeResult { /**
     * <p>Information about the results of the deletion.</p>
     */ IpamScope ? : IpamScope ; } export namespace DeleteIpamScopeResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteKeyPairRequest { /**
     * <p>The name of the key pair.</p>
     */ KeyName ? : string ; /**
     * <p>The ID of the key pair.</p>
     */ KeyPairId ? : string ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteKeyPairRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLaunchTemplateRequest { /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the launch template. You must specify either the launch template ID or
     *             launch template name in the request.</p>
     */ LaunchTemplateId ? : string ; /**
     * <p>The name of the launch template. You must specify either the launch template ID or
     *             launch template name in the request.</p>
     */ LaunchTemplateName ? : string ; } export namespace DeleteLaunchTemplateRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLaunchTemplateResult { /**
     * <p>Information about the launch template.</p>
     */ LaunchTemplate ? : LaunchTemplate ; } export namespace DeleteLaunchTemplateResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLaunchTemplateVersionsRequest { /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the launch template. You must specify either the launch template ID or
     *             launch template name in the request.</p>
     */ LaunchTemplateId ? : string ; /**
     * <p>The name of the launch template. You must specify either the launch template ID or
     *             launch template name in the request.</p>
     */ LaunchTemplateName ? : string ; /**
     * <p>The version numbers of one or more launch template versions to delete.</p>
     */ Versions : string [ ] | undefined ; } export namespace DeleteLaunchTemplateVersionsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a launch template version that was successfully deleted.</p>
 */ export interface DeleteLaunchTemplateVersionsResponseSuccessItem { /**
     * <p>The ID of the launch template.</p>
     */ LaunchTemplateId ? : string ; /**
     * <p>The name of the launch template.</p>
     */ LaunchTemplateName ? : string ; /**
     * <p>The version number of the launch template.</p>
     */ VersionNumber ? : number ; } export namespace DeleteLaunchTemplateVersionsResponseSuccessItem { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum LaunchTemplateErrorCode { LAUNCH_TEMPLATE_ID_DOES_NOT_EXIST = "launchTemplateIdDoesNotExist" , LAUNCH_TEMPLATE_ID_MALFORMED = "launchTemplateIdMalformed" , LAUNCH_TEMPLATE_NAME_DOES_NOT_EXIST = "launchTemplateNameDoesNotExist" , LAUNCH_TEMPLATE_NAME_MALFORMED = "launchTemplateNameMalformed" , LAUNCH_TEMPLATE_VERSION_DOES_NOT_EXIST = "launchTemplateVersionDoesNotExist" , UNEXPECTED_ERROR = "unexpectedError" } /**
 * <p>Describes the error that's returned when you cannot delete a launch template
 *             version.</p>
 */ export interface ResponseError { /**
     * <p>The error code.</p>
     */ Code ? : LaunchTemplateErrorCode | string ; /**
     * <p>The error message, if applicable.</p>
     */ Message ? : string ; } export namespace ResponseError { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a launch template version that could not be deleted.</p>
 */ export interface DeleteLaunchTemplateVersionsResponseErrorItem { /**
     * <p>The ID of the launch template.</p>
     */ LaunchTemplateId ? : string ; /**
     * <p>The name of the launch template.</p>
     */ LaunchTemplateName ? : string ; /**
     * <p>The version number of the launch template.</p>
     */ VersionNumber ? : number ; /**
     * <p>Information about the error.</p>
     */ ResponseError ? : ResponseError ; } export namespace DeleteLaunchTemplateVersionsResponseErrorItem { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLaunchTemplateVersionsResult { /**
     * <p>Information about the launch template versions that were successfully
     *             deleted.</p>
     */ SuccessfullyDeletedLaunchTemplateVersions ? : DeleteLaunchTemplateVersionsResponseSuccessItem [ ] ; /**
     * <p>Information about the launch template versions that could not be deleted.</p>
     */ UnsuccessfullyDeletedLaunchTemplateVersions ? : DeleteLaunchTemplateVersionsResponseErrorItem [ ] ; } export namespace DeleteLaunchTemplateVersionsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLocalGatewayRouteRequest { /**
     * <p>The CIDR range for the route. This must match the CIDR for the route exactly.</p>
     */ DestinationCidrBlock : string | undefined ; /**
     * <p>The ID of the local gateway route table.</p>
     */ LocalGatewayRouteTableId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteLocalGatewayRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLocalGatewayRouteResult { /**
     * <p>Information about the route.</p>
     */ Route ? : LocalGatewayRoute ; } export namespace DeleteLocalGatewayRouteResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLocalGatewayRouteTableVpcAssociationRequest { /**
     * <p>The ID of the association.</p>
     */ LocalGatewayRouteTableVpcAssociationId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteLocalGatewayRouteTableVpcAssociationRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteLocalGatewayRouteTableVpcAssociationResult { /**
     * <p>Information about the association.</p>
     */ LocalGatewayRouteTableVpcAssociation ? : LocalGatewayRouteTableVpcAssociation ; } export namespace DeleteLocalGatewayRouteTableVpcAssociationResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteManagedPrefixListRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the prefix list.</p>
     */ PrefixListId : string | undefined ; } export namespace DeleteManagedPrefixListRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteManagedPrefixListResult { /**
     * <p>Information about the prefix list.</p>
     */ PrefixList ? : ManagedPrefixList ; } export namespace DeleteManagedPrefixListResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNatGatewayRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the NAT gateway.</p>
     */ NatGatewayId : string | undefined ; } export namespace DeleteNatGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNatGatewayResult { /**
     * <p>The ID of the NAT gateway.</p>
     */ NatGatewayId ? : string ; } export namespace DeleteNatGatewayResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkAclRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the network ACL.</p>
     */ NetworkAclId : string | undefined ; } export namespace DeleteNetworkAclRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkAclEntryRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>Indicates whether the rule is an egress rule.</p>
     */ Egress : boolean | undefined ; /**
     * <p>The ID of the network ACL.</p>
     */ NetworkAclId : string | undefined ; /**
     * <p>The rule number of the entry to delete.</p>
     */ RuleNumber : number | undefined ; } export namespace DeleteNetworkAclEntryRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsAccessScopeRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the Network Access Scope.</p>
     */ NetworkInsightsAccessScopeId : string | undefined ; } export namespace DeleteNetworkInsightsAccessScopeRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsAccessScopeResult { /**
     * <p>The ID of the Network Access Scope.</p>
     */ NetworkInsightsAccessScopeId ? : string ; } export namespace DeleteNetworkInsightsAccessScopeResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsAccessScopeAnalysisRequest { /**
     * <p>The ID of the Network Access Scope analysis.</p>
     */ NetworkInsightsAccessScopeAnalysisId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteNetworkInsightsAccessScopeAnalysisRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsAccessScopeAnalysisResult { /**
     * <p>The ID of the Network Access Scope analysis.</p>
     */ NetworkInsightsAccessScopeAnalysisId ? : string ; } export namespace DeleteNetworkInsightsAccessScopeAnalysisResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsAnalysisRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the network insights analysis.</p>
     */ NetworkInsightsAnalysisId : string | undefined ; } export namespace DeleteNetworkInsightsAnalysisRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsAnalysisResult { /**
     * <p>The ID of the network insights analysis.</p>
     */ NetworkInsightsAnalysisId ? : string ; } export namespace DeleteNetworkInsightsAnalysisResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsPathRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the path.</p>
     */ NetworkInsightsPathId : string | undefined ; } export namespace DeleteNetworkInsightsPathRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteNetworkInsightsPathResult { /**
     * <p>The ID of the path.</p>
     */ NetworkInsightsPathId ? : string ; } export namespace DeleteNetworkInsightsPathResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteNetworkInterface.</p>
 */ export interface DeleteNetworkInterfaceRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *             Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the network interface.</p>
     */ NetworkInterfaceId : string | undefined ; } export namespace DeleteNetworkInterfaceRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteNetworkInterfacePermission.</p>
 */ export interface DeleteNetworkInterfacePermissionRequest { /**
     * <p>The ID of the network interface permission.</p>
     */ NetworkInterfacePermissionId : string | undefined ; /**
     * <p>Specify <code>true</code> to remove the permission even if the network interface is
     * 			attached to an instance.</p>
     */ Force ? : boolean ; /**
     * <p>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 <code>DryRunOperation</code>.
     * 			Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteNetworkInterfacePermissionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the output for DeleteNetworkInterfacePermission.</p>
 */ export interface DeleteNetworkInterfacePermissionResult { /**
     * <p>Returns <code>true</code> if the request succeeds, otherwise returns an error.</p>
     */ Return ? : boolean ; } export namespace DeleteNetworkInterfacePermissionResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeletePlacementGroupRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The name of the placement group.</p>
     */ GroupName : string | undefined ; } export namespace DeletePlacementGroupRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeletePublicIpv4PoolRequest { /**
     * <p>A check for 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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the public IPv4 pool you want to delete.</p>
     */ PoolId : string | undefined ; } export namespace DeletePublicIpv4PoolRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeletePublicIpv4PoolResult { /**
     * <p>Information about the result of deleting the public IPv4 pool.</p>
     */ ReturnValue ? : boolean ; } export namespace DeletePublicIpv4PoolResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteQueuedReservedInstancesRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *       Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The IDs of the Reserved Instances.</p>
     */ ReservedInstancesIds : string [ ] | undefined ; } export namespace DeleteQueuedReservedInstancesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum DeleteQueuedReservedInstancesErrorCode { RESERVED_INSTANCES_ID_INVALID = "reserved-instances-id-invalid" , RESERVED_INSTANCES_NOT_IN_QUEUED_STATE = "reserved-instances-not-in-queued-state" , UNEXPECTED_ERROR = "unexpected-error" } /**
 * <p>Describes the error for a Reserved Instance whose queued purchase could not be deleted.</p>
 */ export interface DeleteQueuedReservedInstancesError { /**
     * <p>The error code.</p>
     */ Code ? : DeleteQueuedReservedInstancesErrorCode | string ; /**
     * <p>The error message.</p>
     */ Message ? : string ; } export namespace DeleteQueuedReservedInstancesError { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a Reserved Instance whose queued purchase was not deleted.</p>
 */ export interface FailedQueuedPurchaseDeletion { /**
     * <p>The error.</p>
     */ Error ? : DeleteQueuedReservedInstancesError ; /**
     * <p>The ID of the Reserved Instance.</p>
     */ ReservedInstancesId ? : string ; } export namespace FailedQueuedPurchaseDeletion { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a Reserved Instance whose queued purchase was successfully deleted.</p>
 */ export interface SuccessfulQueuedPurchaseDeletion { /**
     * <p>The ID of the Reserved Instance.</p>
     */ ReservedInstancesId ? : string ; } export namespace SuccessfulQueuedPurchaseDeletion { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteQueuedReservedInstancesResult { /**
     * <p>Information about the queued purchases that were successfully deleted.</p>
     */ SuccessfulQueuedPurchaseDeletions ? : SuccessfulQueuedPurchaseDeletion [ ] ; /**
     * <p>Information about the queued purchases that could not be deleted.</p>
     */ FailedQueuedPurchaseDeletions ? : FailedQueuedPurchaseDeletion [ ] ; } export namespace DeleteQueuedReservedInstancesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteRouteRequest { /**
     * <p>The IPv4 CIDR range for the route. The value you specify must match the CIDR for the route exactly.</p>
     */ DestinationCidrBlock ? : string ; /**
     * <p>The IPv6 CIDR range for the route. The value you specify must match the CIDR for the route exactly.</p>
     */ DestinationIpv6CidrBlock ? : string ; /**
     * <p>The ID of the prefix list for the route.</p>
     */ DestinationPrefixListId ? : string ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the route table.</p>
     */ RouteTableId : string | undefined ; } export namespace DeleteRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteRouteTableRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the route table.</p>
     */ RouteTableId : string | undefined ; } export namespace DeleteRouteTableRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteSecurityGroupRequest { /**
     * <p>The ID of the security group. Required for a nondefault VPC.</p>
     */ GroupId ? : string ; /**
     * <p>[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.</p>
     */ GroupName ? : string ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteSecurityGroupRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteSnapshotRequest { /**
     * <p>The ID of the EBS snapshot.</p>
     */ SnapshotId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteSnapshotRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteSpotDatafeedSubscription.</p>
 */ export interface DeleteSpotDatafeedSubscriptionRequest { /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteSpotDatafeedSubscriptionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteSubnetRequest { /**
     * <p>The ID of the subnet.</p>
     */ SubnetId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteSubnetRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteSubnetCidrReservationRequest { /**
     * <p>The ID of the subnet CIDR reservation.</p>
     */ SubnetCidrReservationId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteSubnetCidrReservationRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteSubnetCidrReservationResult { /**
     * <p>Information about the deleted subnet CIDR reservation.</p>
     */ DeletedSubnetCidrReservation ? : SubnetCidrReservation ; } export namespace DeleteSubnetCidrReservationResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTagsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The IDs of the resources, separated by spaces.</p>
     *    	     <p>Constraints: Up to 1000 resource IDs. We recommend breaking up this request into smaller batches.</p>
     */ Resources : string [ ] | undefined ; /**
     * <p>The tags to delete. Specify a tag key and an optional tag value to delete
     *             specific tags. If you specify a tag key without a tag value, we delete any tag with this
     *             key regardless of its value. If you specify a tag key with an empty string as the tag
     *             value, we delete the tag only if its value is an empty string.</p>
     *         <p>If you omit this parameter, we delete all user-defined tags for the specified
     *             resources. We do not delete Amazon Web Services-generated tags (tags that have the <code>aws:</code>
     *             prefix).</p>
     *          <p>Constraints: Up to 1000 tags.</p>
     */ Tags ? : Tag [ ] ; } export namespace DeleteTagsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorFilterRequest { /**
     * <p>The ID of the Traffic Mirror filter.</p>
     */ TrafficMirrorFilterId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTrafficMirrorFilterRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorFilterResult { /**
     * <p>The ID of the Traffic Mirror filter.</p>
     */ TrafficMirrorFilterId ? : string ; } export namespace DeleteTrafficMirrorFilterResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorFilterRuleRequest { /**
     * <p>The ID of the Traffic Mirror rule.</p>
     */ TrafficMirrorFilterRuleId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTrafficMirrorFilterRuleRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorFilterRuleResult { /**
     * <p>The ID of the deleted Traffic Mirror rule.</p>
     */ TrafficMirrorFilterRuleId ? : string ; } export namespace DeleteTrafficMirrorFilterRuleResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorSessionRequest { /**
     * <p>The ID of the Traffic Mirror session.</p>
     */ TrafficMirrorSessionId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTrafficMirrorSessionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorSessionResult { /**
     * <p>The ID of the deleted Traffic Mirror session.</p>
     */ TrafficMirrorSessionId ? : string ; } export namespace DeleteTrafficMirrorSessionResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorTargetRequest { /**
     * <p>The ID of the Traffic Mirror target.</p>
     */ TrafficMirrorTargetId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTrafficMirrorTargetRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTrafficMirrorTargetResult { /**
     * <p>The ID of the deleted Traffic Mirror target.</p>
     */ TrafficMirrorTargetId ? : string ; } export namespace DeleteTrafficMirrorTargetResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayRequest { /**
     * <p>The ID of the transit gateway.</p>
     */ TransitGatewayId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayResult { /**
     * <p>Information about the deleted transit gateway.</p>
     */ TransitGateway ? : TransitGateway ; } export namespace DeleteTransitGatewayResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayConnectRequest { /**
     * <p>The ID of the Connect attachment.</p>
     */ TransitGatewayAttachmentId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayConnectRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayConnectResult { /**
     * <p>Information about the deleted Connect attachment.</p>
     */ TransitGatewayConnect ? : TransitGatewayConnect ; } export namespace DeleteTransitGatewayConnectResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayConnectPeerRequest { /**
     * <p>The ID of the Connect peer.</p>
     */ TransitGatewayConnectPeerId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayConnectPeerRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayConnectPeerResult { /**
     * <p>Information about the deleted Connect peer.</p>
     */ TransitGatewayConnectPeer ? : TransitGatewayConnectPeer ; } export namespace DeleteTransitGatewayConnectPeerResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayMulticastDomainRequest { /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayMulticastDomainRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayMulticastDomainResult { /**
     * <p>Information about the deleted transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomain ? : TransitGatewayMulticastDomain ; } export namespace DeleteTransitGatewayMulticastDomainResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayPeeringAttachmentRequest { /**
     * <p>The ID of the transit gateway peering attachment.</p>
     */ TransitGatewayAttachmentId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayPeeringAttachmentRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayPeeringAttachmentResult { /**
     * <p>The transit gateway peering attachment.</p>
     */ TransitGatewayPeeringAttachment ? : TransitGatewayPeeringAttachment ; } export namespace DeleteTransitGatewayPeeringAttachmentResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayPrefixListReferenceRequest { /**
     * <p>The ID of the route table.</p>
     */ TransitGatewayRouteTableId : string | undefined ; /**
     * <p>The ID of the prefix list.</p>
     */ PrefixListId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayPrefixListReferenceRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayPrefixListReferenceResult { /**
     * <p>Information about the deleted prefix list reference.</p>
     */ TransitGatewayPrefixListReference ? : TransitGatewayPrefixListReference ; } export namespace DeleteTransitGatewayPrefixListReferenceResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayRouteRequest { /**
     * <p>The ID of the transit gateway route table.</p>
     */ TransitGatewayRouteTableId : string | undefined ; /**
     * <p>The CIDR range for the route. This must match the CIDR for the route exactly.</p>
     */ DestinationCidrBlock : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayRouteResult { /**
     * <p>Information about the route.</p>
     */ Route ? : TransitGatewayRoute ; } export namespace DeleteTransitGatewayRouteResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayRouteTableRequest { /**
     * <p>The ID of the transit gateway route table.</p>
     */ TransitGatewayRouteTableId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayRouteTableRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayRouteTableResult { /**
     * <p>Information about the deleted transit gateway route table.</p>
     */ TransitGatewayRouteTable ? : TransitGatewayRouteTable ; } export namespace DeleteTransitGatewayRouteTableResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayVpcAttachmentRequest { /**
     * <p>The ID of the attachment.</p>
     */ TransitGatewayAttachmentId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteTransitGatewayVpcAttachmentRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteTransitGatewayVpcAttachmentResult { /**
     * <p>Information about the deleted VPC attachment.</p>
     */ TransitGatewayVpcAttachment ? : TransitGatewayVpcAttachment ; } export namespace DeleteTransitGatewayVpcAttachmentResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVolumeRequest { /**
     * <p>The ID of the volume.</p>
     */ VolumeId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteVolumeRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcRequest { /**
     * <p>The ID of the VPC.</p>
     */ VpcId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteVpcRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcEndpointConnectionNotificationsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>One or more notification IDs.</p>
     */ ConnectionNotificationIds : string [ ] | undefined ; } export namespace DeleteVpcEndpointConnectionNotificationsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcEndpointConnectionNotificationsResult { /**
     * <p>Information about the notifications that could not be deleted
     *             successfully.</p>
     */ Unsuccessful ? : UnsuccessfulItem [ ] ; } export namespace DeleteVpcEndpointConnectionNotificationsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteVpcEndpoints.</p>
 */ export interface DeleteVpcEndpointsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>One or more VPC endpoint IDs.</p>
     */ VpcEndpointIds : string [ ] | undefined ; } export namespace DeleteVpcEndpointsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the output of DeleteVpcEndpoints.</p>
 */ export interface DeleteVpcEndpointsResult { /**
     * <p>Information about the VPC endpoints that were not successfully deleted.</p>
     */ Unsuccessful ? : UnsuccessfulItem [ ] ; } export namespace DeleteVpcEndpointsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcEndpointServiceConfigurationsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The IDs of one or more services.</p>
     */ ServiceIds : string [ ] | undefined ; } export namespace DeleteVpcEndpointServiceConfigurationsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcEndpointServiceConfigurationsResult { /**
     * <p>Information about the service configurations that were not deleted, if
     *             applicable.</p>
     */ Unsuccessful ? : UnsuccessfulItem [ ] ; } export namespace DeleteVpcEndpointServiceConfigurationsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcPeeringConnectionRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the VPC peering connection.</p>
     */ VpcPeeringConnectionId : string | undefined ; } export namespace DeleteVpcPeeringConnectionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeleteVpcPeeringConnectionResult { /**
     * <p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>
     */ Return ? : boolean ; } export namespace DeleteVpcPeeringConnectionResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteVpnConnection.</p>
 */ export interface DeleteVpnConnectionRequest { /**
     * <p>The ID of the VPN connection.</p>
     */ VpnConnectionId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteVpnConnectionRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteVpnConnectionRoute.</p>
 */ export interface DeleteVpnConnectionRouteRequest { /**
     * <p>The CIDR block associated with the local subnet of the customer network.</p>
     */ DestinationCidrBlock : string | undefined ; /**
     * <p>The ID of the VPN connection.</p>
     */ VpnConnectionId : string | undefined ; } export namespace DeleteVpnConnectionRouteRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeleteVpnGateway.</p>
 */ export interface DeleteVpnGatewayRequest { /**
     * <p>The ID of the virtual private gateway.</p>
     */ VpnGatewayId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is
     *                 <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeleteVpnGatewayRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeprovisionByoipCidrRequest { /**
     * <p>The address range, in CIDR notation. The prefix must be the same prefix
     *          that you specified when you provisioned the address range.</p>
     */ Cidr : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeprovisionByoipCidrRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeprovisionByoipCidrResult { /**
     * <p>Information about the address range.</p>
     */ ByoipCidr ? : ByoipCidr ; } export namespace DeprovisionByoipCidrResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeprovisionIpamPoolCidrRequest { /**
     * <p>A check for 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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the pool that has the CIDR you want to deprovision.</p>
     */ IpamPoolId : string | undefined ; /**
     * <p>The CIDR which you want to deprovision from the pool.</p>
     */ Cidr ? : string ; } export namespace DeprovisionIpamPoolCidrRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum IpamPoolCidrFailureCode { cidr_not_available = "cidr-not-available" } /**
 * <p>Details related to why an IPAM pool CIDR failed to be provisioned.</p>
 */ export interface IpamPoolCidrFailureReason { /**
     * <p>An error code related to why an IPAM pool CIDR failed to be provisioned.</p>
     */ Code ? : IpamPoolCidrFailureCode | string ; /**
     * <p>A message related to why an IPAM pool CIDR failed to be provisioned.</p>
     */ Message ? : string ; } export namespace IpamPoolCidrFailureReason { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export enum IpamPoolCidrState { deprovisioned = "deprovisioned" , failed_deprovision = "failed-deprovision" , failed_import = "failed-import" , failed_provision = "failed-provision" , pending_deprovision = "pending-deprovision" , pending_import = "pending-import" , pending_provision = "pending-provision" , provisioned = "provisioned" } /**
 * <p>A CIDR provisioned to an IPAM pool.</p>
 */ export interface IpamPoolCidr { /**
     * <p>The CIDR provisioned to the IPAM pool. A CIDR is a representation of an IP address and its associated network mask (or netmask)
     *          and refers to a range of IP addresses. An IPv4 CIDR example is <code>10.24.34.0/23</code>. An IPv6 CIDR example is <code>2001:DB8::/32</code>.</p>
     */ Cidr ? : string ; /**
     * <p>The state of the CIDR.</p>
     */ State ? : IpamPoolCidrState | string ; /**
     * <p>Details related to why an IPAM pool CIDR failed to be provisioned.</p>
     */ FailureReason ? : IpamPoolCidrFailureReason ; } export namespace IpamPoolCidr { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeprovisionIpamPoolCidrResult { /**
     * <p>The deprovisioned pool CIDR.</p>
     */ IpamPoolCidr ? : IpamPoolCidr ; } export namespace DeprovisionIpamPoolCidrResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeprovisionPublicIpv4PoolCidrRequest { /**
     * <p>A check for 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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The ID of the pool that you want to deprovision the CIDR from.</p>
     */ PoolId : string | undefined ; /**
     * <p>The CIDR you want to deprovision from the pool.</p>
     */ Cidr : string | undefined ; } export namespace DeprovisionPublicIpv4PoolCidrRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeprovisionPublicIpv4PoolCidrResult { /**
     * <p>The ID of the pool that you deprovisioned the CIDR from.</p>
     */ PoolId ? : string ; /**
     * <p>The deprovisioned CIDRs.</p>
     */ DeprovisionedAddresses ? : string [ ] ; } export namespace DeprovisionPublicIpv4PoolCidrResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Contains the parameters for DeregisterImage.</p>
 */ export interface DeregisterImageRequest { /**
     * <p>The ID of the AMI.</p>
     */ ImageId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>.
     *        Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeregisterImageRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Information about the tag keys to deregister for the current Region. You can either specify
 *    		individual tag keys or deregister all tag keys in the current Region. You must specify either
 *    		<code>IncludeAllTagsOfInstance</code> or <code>InstanceTagKeys</code> in the request</p>
 */ export interface DeregisterInstanceTagAttributeRequest { /**
     * <p>Indicates whether to deregister all tag keys in the current Region. Specify <code>false</code>
     *    		to deregister all tag keys.</p>
     */ IncludeAllTagsOfInstance ? : boolean ; /**
     * <p>Information about the tag keys to deregister.</p>
     */ InstanceTagKeys ? : string [ ] ; } export namespace DeregisterInstanceTagAttributeRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeregisterInstanceEventNotificationAttributesRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>Information about the tag keys to deregister.</p>
     */ InstanceTagAttribute ? : DeregisterInstanceTagAttributeRequest ; } export namespace DeregisterInstanceEventNotificationAttributesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the registered tag keys for the current Region.</p>
 */ export interface InstanceTagNotificationAttribute { /**
     * <p>The registered tag keys.</p>
     */ InstanceTagKeys ? : string [ ] ; /**
     * <p>Indicates wheter all tag keys in the current Region are registered to appear in scheduled event notifications.
     *       	<code>true</code> indicates that all tag keys in the current Region are registered.</p>
     */ IncludeAllTagsOfInstance ? : boolean ; } export namespace InstanceTagNotificationAttribute { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeregisterInstanceEventNotificationAttributesResult { /**
     * <p>The resulting set of tag keys.</p>
     */ InstanceTagAttribute ? : InstanceTagNotificationAttribute ; } export namespace DeregisterInstanceEventNotificationAttributesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeregisterTransitGatewayMulticastGroupMembersRequest { /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainId ? : string ; /**
     * <p>The IP address assigned to the  transit gateway multicast group.</p>
     */ GroupIpAddress ? : string ; /**
     * <p>The IDs of the group members' network interfaces.</p>
     */ NetworkInterfaceIds ? : string [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeregisterTransitGatewayMulticastGroupMembersRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the deregistered  transit gateway multicast group members.</p>
 */ export interface TransitGatewayMulticastDeregisteredGroupMembers { /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainId ? : string ; /**
     * <p>The network interface IDs of the deregistered members.</p>
     */ DeregisteredNetworkInterfaceIds ? : string [ ] ; /**
     * <p>The IP address assigned to the  transit gateway multicast group.</p>
     */ GroupIpAddress ? : string ; } export namespace TransitGatewayMulticastDeregisteredGroupMembers { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeregisterTransitGatewayMulticastGroupMembersResult { /**
     * <p>Information about the deregistered members.</p>
     */ DeregisteredMulticastGroupMembers ? : TransitGatewayMulticastDeregisteredGroupMembers ; } export namespace DeregisterTransitGatewayMulticastGroupMembersResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeregisterTransitGatewayMulticastGroupSourcesRequest { /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainId ? : string ; /**
     * <p>The IP address assigned to the  transit gateway multicast group.</p>
     */ GroupIpAddress ? : string ; /**
     * <p>The IDs of the group sources' network interfaces.</p>
     */ NetworkInterfaceIds ? : string [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DeregisterTransitGatewayMulticastGroupSourcesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the deregistered  transit gateway multicast group sources.</p>
 */ export interface TransitGatewayMulticastDeregisteredGroupSources { /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */ TransitGatewayMulticastDomainId ? : string ; /**
     * <p>The network interface IDs of the non-registered members.</p>
     */ DeregisteredNetworkInterfaceIds ? : string [ ] ; /**
     * <p>The IP address assigned to the  transit gateway multicast group.</p>
     */ GroupIpAddress ? : string ; } export namespace TransitGatewayMulticastDeregisteredGroupSources { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DeregisterTransitGatewayMulticastGroupSourcesResult { /**
     * <p>Information about the deregistered group sources.</p>
     */ DeregisteredMulticastGroupSources ? : TransitGatewayMulticastDeregisteredGroupSources ; } export namespace DeregisterTransitGatewayMulticastGroupSourcesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAccountAttributesRequest { /**
     * <p>The account attribute names.</p>
     */ AttributeNames ? : ( AccountAttributeName | string ) [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *            Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeAccountAttributesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAccountAttributesResult { /**
     * <p>Information about the account attributes.</p>
     */ AccountAttributes ? : AccountAttribute [ ] ; } export namespace DescribeAccountAttributesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>A filter name and value pair that is used to return a more specific list of results from a describe operation.
 *          Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.</p>
 *          <p>If you specify multiple filters, the filters are joined with an <code>AND</code>, and the request returns only
 *            results that match all of the specified filters.</p>
 */ export interface Filter { /**
     * <p>The name of the filter. Filter names are case-sensitive.</p>
     */ Name ? : string ; /**
     * <p>The filter values. Filter values are case-sensitive. If you specify multiple values for a
     *          filter, the values are joined with an <code>OR</code>, and the request returns all results
     *          that match any of the specified values.</p>
     */ Values ? : string [ ] ; } export namespace Filter { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAddressesRequest { /**
     * <p>One or more filters. Filter names and values are case-sensitive.</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>allocation-id</code> - [EC2-VPC] The allocation ID for the address.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>association-id</code> - [EC2-VPC] The association ID for the address.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>domain</code> - Indicates whether the address is for use in EC2-Classic (<code>standard</code>)
     *               or in a VPC (<code>vpc</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>instance-id</code> - The ID of the instance the address is associated with, if any.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>network-border-group</code> -  A unique set of Availability Zones, Local Zones,
     *            or Wavelength Zones from where Amazon Web Services advertises IP addresses. </p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>network-interface-id</code> - [EC2-VPC] The ID of the network interface that the address is associated with, if any.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>network-interface-owner-id</code> - The Amazon Web Services account ID of the owner.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>private-ip-address</code> - [EC2-VPC] The private IP address associated with the Elastic IP address.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>public-ip</code> - The Elastic IP address, or the carrier IP address.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
     *     For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>One or more Elastic IP addresses.</p>
     *          <p>Default: Describes all your Elastic IP addresses.</p>
     */ PublicIps ? : string [ ] ; /**
     * <p>[EC2-VPC] Information about the allocation IDs.</p>
     */ AllocationIds ? : string [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeAddressesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAddressesResult { /**
     * <p>Information about the Elastic IP addresses.</p>
     */ Addresses ? : Address [ ] ; } export namespace DescribeAddressesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAddressesAttributeRequest { /**
     * <p>[EC2-VPC] The allocation IDs.</p>
     */ AllocationIds ? : string [ ] ; /**
     * <p>The attribute of the IP address.</p>
     */ Attribute ? : AddressAttributeName | string ; /**
     * <p>The token for the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>
     */ MaxResults ? : number ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeAddressesAttributeRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAddressesAttributeResult { /**
     * <p>Information about the IP addresses.</p>
     */ Addresses ? : AddressAttribute [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeAddressesAttributeResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAggregateIdFormatRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeAggregateIdFormatRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the ID format for a resource.</p>
 */ export interface IdFormat { /**
     * <p>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.</p>
     */ Deadline ? : Date ; /**
     * <p>The type of resource.</p>
     */ Resource ? : string ; /**
     * <p>Indicates whether longer IDs (17-character IDs) are enabled for the resource.</p>
     */ UseLongIds ? : boolean ; } export namespace IdFormat { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAggregateIdFormatResult { /**
     * <p>Indicates whether all resource types in the Region are configured to use longer IDs.
     *             This value is only <code>true</code> if all users are configured to use longer IDs for
     *             all resources types in the Region.</p>
     */ UseLongIdsAggregated ? : boolean ; /**
     * <p>Information about each resource's ID format.</p>
     */ Statuses ? : IdFormat [ ] ; } export namespace DescribeAggregateIdFormatResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAvailabilityZonesRequest { /**
     * <p>The filters.</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>group-name</code> - For Availability Zones, use the Region name. For Local
     *           Zones, use the name of the group associated with the Local Zone (for example,
     *             <code>us-west-2-lax-1</code>) For Wavelength Zones, use the name of the group associated
     *           with the Wavelength Zone (for example, <code>us-east-1-wl1-bos-wlz-1</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>message</code> - The Zone message.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>opt-in-status</code> - The opt-in status (<code>opted-in</code>, and
     *             <code>not-opted-in</code> | <code>opt-in-not-required</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>parent-zoneID</code> - The ID of the zone that handles some of the Local Zone
     *           and Wavelength Zone control plane operations, such as API calls.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>parent-zoneName</code> - The ID of the zone that handles some of the Local Zone
     *           and Wavelength Zone control plane operations, such as API calls.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>region-name</code> - The name of the Region for the Zone (for example,
     *             <code>us-east-1</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>state</code> - The state of the Availability Zone, the Local Zone, or the
     *           Wavelength Zone (<code>available</code> | <code>information</code> | <code>impaired</code>
     *           | <code>unavailable</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>zone-id</code> - The ID of the Availability Zone (for example,
     *             <code>use1-az1</code>), the Local Zone (for example, <code>usw2-lax1-az1</code>), or the
     *           Wavelength Zone (for example, <code>us-east-1-wl1-bos-wlz-1</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>zone-type</code> - The type of zone, for example, <code>local-zone</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>zone-name</code> - The name of the Availability Zone (for example,
     *             <code>us-east-1a</code>), the Local Zone (for example, <code>us-west-2-lax-1a</code>), or
     *           the Wavelength Zone (for example, <code>us-east-1-wl1-bos-wlz-1</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>zone-type</code> - The type of zone, for example, <code>local-zone</code>.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>The names of the Availability Zones, Local Zones, and Wavelength Zones.</p>
     */ ZoneNames ? : string [ ] ; /**
     * <p>The IDs of the Availability Zones, Local Zones, and Wavelength Zones.</p>
     */ ZoneIds ? : string [ ] ; /**
     * <p>Include all Availability Zones, Local Zones, and Wavelength Zones regardless of your
     *       opt-in status.</p>
     *          <p>If you do not use this parameter, the results include only the zones for the Regions where you have chosen the option to opt in.</p>
     */ AllAvailabilityZones ? : boolean ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeAvailabilityZonesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a message about an Availability Zone, Local Zone, or Wavelength Zone.</p>
 */ export interface AvailabilityZoneMessage { /**
     * <p>The message about the Availability Zone, Local Zone, or Wavelength Zone.</p>
     */ Message ? : string ; } export namespace AvailabilityZoneMessage { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type AvailabilityZoneOptInStatus = "not-opted-in" | "opt-in-not-required" | "opted-in" ; export type AvailabilityZoneState = "available" | "impaired" | "information" | "unavailable" ; /**
 * <p>Describes Availability Zones, Local Zones, and Wavelength Zones.</p>
 */ export interface AvailabilityZone { /**
     * <p>The state of the Availability Zone, Local Zone, or Wavelength Zone.</p>
     */ State ? : AvailabilityZoneState | string ; /**
     * <p>For Availability Zones, this parameter always has the value of
     *         <code>opt-in-not-required</code>.</p>
     *          <p>For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible
     *       values are <code>opted-in</code>, and <code>not-opted-in</code>.</p>
     */ OptInStatus ? : AvailabilityZoneOptInStatus | string ; /**
     * <p>Any messages about the Availability Zone, Local Zone, or Wavelength Zone.</p>
     */ Messages ? : AvailabilityZoneMessage [ ] ; /**
     * <p>The name of the Region.</p>
     */ RegionName ? : string ; /**
     * <p>The name of the Availability Zone, Local Zone, or Wavelength Zone.</p>
     */ ZoneName ? : string ; /**
     * <p>The ID of the Availability Zone, Local Zone, or Wavelength Zone.</p>
     */ ZoneId ? : string ; /**
     * <p> For Availability Zones, this parameter has the same value as the Region name.</p>
     *          <p>For Local Zones, the name of the associated group, for example
     *         <code>us-west-2-lax-1</code>.</p>
     *          <p>For Wavelength Zones, the name of the associated group, for example
     *         <code>us-east-1-wl1-bos-wlz-1</code>.</p>
     */ GroupName ? : string ; /**
     * <p>The name of the network border group.</p>
     */ NetworkBorderGroup ? : string ; /**
     * <p>The type of zone. The valid values are <code>availability-zone</code>,
     *         <code>local-zone</code>, and <code>wavelength-zone</code>.</p>
     */ ZoneType ? : string ; /**
     * <p>The name of the zone that handles some of the Local Zone or Wavelength Zone control plane
     *       operations, such as API calls.</p>
     */ ParentZoneName ? : string ; /**
     * <p>The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane
     *       operations, such as API calls.</p>
     */ ParentZoneId ? : string ; } export namespace AvailabilityZone { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeAvailabilityZonesResult { /**
     * <p>Information about the Availability Zones, Local Zones, and Wavelength Zones.</p>
     */ AvailabilityZones ? : AvailabilityZone [ ] ; } export namespace DescribeAvailabilityZonesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeBundleTasksRequest { /**
     * <p>The bundle task IDs.</p>
     *          <p>Default: Describes all your bundle tasks.</p>
     */ BundleIds ? : string [ ] ; /**
     * <p>The filters.</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>bundle-id</code> - The ID of the bundle task.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>error-code</code> - If the task failed, the error code returned.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>error-message</code> - If the task failed, the error message returned.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>instance-id</code> - The ID of the instance.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>progress</code> - The level of task completion, as a percentage (for example, 20%).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>s3-bucket</code> - The Amazon S3 bucket to store the AMI.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>s3-prefix</code> - The beginning of the AMI name.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>start-time</code> - The time the task started (for example, 2013-09-15T17:15:20.000Z).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>state</code> - The state of the task (<code>pending</code> | <code>waiting-for-shutdown</code> | <code>bundling</code> |
     *            <code>storing</code> | <code>cancelling</code> | <code>complete</code> | <code>failed</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>update-time</code> - The time of the most recent update for the task.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *        Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeBundleTasksRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeBundleTasksResult { /**
     * <p>Information about the bundle tasks.</p>
     */ BundleTasks ? : BundleTask [ ] ; } export namespace DescribeBundleTasksResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeByoipCidrsRequest { /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The maximum number of results to return with a single call.
     * 	To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>
     */ MaxResults : number | undefined ; /**
     * <p>The token for the next page of results.</p>
     */ NextToken ? : string ; } export namespace DescribeByoipCidrsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeByoipCidrsResult { /**
     * <p>Information about your address ranges.</p>
     */ ByoipCidrs ? : ByoipCidr [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeByoipCidrsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCapacityReservationFleetsRequest { /**
     * <p>The IDs of the Capacity Reservation Fleets to describe.</p>
     */ CapacityReservationFleetIds ? : string [ ] ; /**
     * <p>The token to use to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>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 <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>
     */ MaxResults ? : number ; /**
     * <p>One or more filters.</p>
     * 		       <ul>
     *             <li>
     * 				           <p>
     *                   <code>state</code> - The state of the Fleet (<code>submitted</code> | <code>modifying</code> | <code>active</code> |
     * 					<code>partially_fulfilled</code> | <code>expiring</code> | <code>expired</code> | <code>cancelling</code> |
     * 					<code>cancelled</code> | <code>failed</code>).</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>instance-match-criteria</code> - The instance matching criteria for the Fleet. Only <code>open</code> is supported.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>tenancy</code> - The tenancy of the Fleet (<code>default</code> | <code>dedicated</code>).</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>allocation-strategy</code> - The allocation strategy used by the Fleet. Only <code>prioritized</code> is supported.</p>
     * 			         </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeCapacityReservationFleetsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Information about a Capacity Reservation Fleet.</p>
 */ export interface CapacityReservationFleet { /**
     * <p>The ID of the Capacity Reservation Fleet.</p>
     */ CapacityReservationFleetId ? : string ; /**
     * <p>The ARN of the Capacity Reservation Fleet.</p>
     */ CapacityReservationFleetArn ? : string ; /**
     * <p>The state of the Capacity Reservation Fleet. Possible states include:</p>
     * 		       <ul>
     *             <li>
     * 				           <p>
     *                   <code>submitted</code> - The Capacity Reservation Fleet request has been submitted
     * 					and Amazon Elastic Compute Cloud is preparing to create the Capacity Reservations.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>modifying</code> - The Capacity Reservation Fleet is being modified. The Fleet
     * 					remains in this state until the modification is complete.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>active</code> - The Capacity Reservation Fleet has fulfilled its total target
     * 					capacity and it is attempting to maintain this capacity. The Fleet remains in this
     * 					state until it is modified or deleted.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>partially_fulfilled</code> - The Capacity Reservation Fleet has partially
     * 					fulfilled its total target capacity. There is insufficient Amazon EC2 to
     * 					fulfill the total target capacity. The Fleet is attempting to asynchronously fulfill
     * 					its total target capacity.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>expiring</code> - The Capacity Reservation Fleet has reach its end date and it
     * 					is in the process of expiring. One or more of its Capacity reservations might still
     * 					be active.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>expired</code> - The Capacity Reservation Fleet has reach its end date. The Fleet
     * 					and its Capacity Reservations are expired. The Fleet can't create new Capacity
     * 					Reservations.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>cancelling</code> - The Capacity Reservation Fleet is in the process of being
     * 					cancelled. One or more of its Capacity reservations might still be active.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>cancelled</code> - The Capacity Reservation Fleet has been manually cancelled.
     * 					The Fleet and its Capacity Reservations are cancelled and the Fleet can't create new
     * 					Capacity Reservations.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>failed</code> - The Capacity Reservation Fleet failed to reserve capacity for
     * 					the specified instance types.</p>
     * 			         </li>
     *          </ul>
     */ State ? : CapacityReservationFleetState | string ; /**
     * <p>The total number of capacity units for which the Capacity Reservation Fleet reserves capacity.
     * 			For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity">Total target capacity</a>
     * 			in the Amazon EC2 User Guide.</p>
     */ TotalTargetCapacity ? : number ; /**
     * <p>The capacity units that have been fulfilled.</p>
     */ TotalFulfilledCapacity ? : number ; /**
     * <p>The tenancy of the Capacity Reservation Fleet. Tenancies include:</p>
     * 		       <ul>
     *             <li>
     * 				           <p>
     *                   <code>default</code> - The Capacity Reservation Fleet is created on hardware that is
     * 					shared with other Amazon Web Services accounts.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>dedicated</code> - The Capacity Reservation Fleet is created on single-tenant
     * 					hardware that is dedicated to a single Amazon Web Services account.</p>
     * 			         </li>
     *          </ul>
     */ Tenancy ? : FleetCapacityReservationTenancy | string ; /**
     * <p>The date and time at which the Capacity Reservation Fleet expires.</p>
     */ EndDate ? : Date ; /**
     * <p>The date and time at which the Capacity Reservation Fleet was created.</p>
     */ CreateTime ? : Date ; /**
     * <p>Indicates the type of instance launches that the Capacity Reservation Fleet accepts. All
     * 			Capacity Reservations in the Fleet inherit this instance matching criteria.</p>
     * 		       <p>Currently, Capacity Reservation Fleets support <code>open</code> instance matching criteria
     * 			only. This means that instances that have matching attributes (instance type, platform, and
     * 			Availability Zone) run in the Capacity Reservations automatically. Instances do not need to
     * 			explicitly target a Capacity Reservation Fleet to use its reserved capacity.</p>
     */ InstanceMatchCriteria ? : FleetInstanceMatchCriteria | string ; /**
     * <p>The strategy used by the Capacity Reservation Fleet to determine which of the specified
     * 			instance types to use. For more information, see For more information, see
     * 			<a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy">
     * 				Allocation strategy</a> in the Amazon EC2 User Guide.</p>
     */ AllocationStrategy ? : string ; /**
     * <p>Information about the instance types for which to reserve the capacity.</p>
     */ InstanceTypeSpecifications ? : FleetCapacityReservation [ ] ; /**
     * <p>The tags assigned to the Capacity Reservation Fleet.</p>
     */ Tags ? : Tag [ ] ; } export namespace CapacityReservationFleet { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCapacityReservationFleetsResult { /**
     * <p>Information about the Capacity Reservation Fleets.</p>
     */ CapacityReservationFleets ? : CapacityReservationFleet [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeCapacityReservationFleetsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCapacityReservationsRequest { /**
     * <p>The ID of the Capacity Reservation.</p>
     */ CapacityReservationIds ? : string [ ] ; /**
     * <p>The token to use to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>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 <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>
     */ MaxResults ? : number ; /**
     * <p>One or more filters.</p>
     * 	  	     <ul>
     *             <li>
     *                <p>
     *                   <code>instance-type</code> - The type of instance for which the Capacity Reservation reserves capacity.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>owner-id</code> - The ID of the Amazon Web Services account that owns the Capacity Reservation.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>instance-platform</code> - The type of operating system for which the Capacity Reservation reserves capacity.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>availability-zone</code> - The Availability Zone of the Capacity Reservation.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>tenancy</code> - Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the
     * 	  			following tenancy settings:</p>
     * 	  			         <ul>
     *                   <li>
     *                      <p>
     *                         <code>default</code> - The Capacity Reservation is created on hardware that is shared with other Amazon Web Services accounts.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>dedicated</code> - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single Amazon Web Services account.</p>
     *                   </li>
     *                </ul>
     * 	  			      </li>
     *             <li>
     *                <p>
     *                   <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost on which the Capacity Reservation was created.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>state</code> - The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:</p>
     * 	  		          <ul>
     *                   <li>
     *                      <p>
     *                         <code>active</code>- The Capacity Reservation is active and the capacity is available for your use.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>expired</code> - The Capacity Reservation expired automatically at the date and time specified in your request.
     * 	  				The reserved capacity is no longer available for your use.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>cancelled</code> - The Capacity Reservation was cancelled. The reserved capacity is no longer available for your use.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>pending</code> - The Capacity Reservation request was successful but the capacity provisioning is still pending.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>failed</code> - The Capacity Reservation request has failed. A request might fail due to invalid request parameters,
     * 	  				capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes.</p>
     * 	  		             </li>
     *                </ul>
     * 	  		       </li>
     *             <li>
     *                <p>
     *                   <code>start-date</code> - The date and time at which the Capacity Reservation was started.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>end-date</code> - The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is
     * 	  			released and you can no longer launch instances into it. The Capacity Reservation's state changes to expired when it reaches its end date and time.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>end-date-type</code> - Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types:</p>
     * 	  		          <ul>
     *                   <li>
     *                      <p>
     *                         <code>unlimited</code> - The Capacity Reservation remains active until you explicitly cancel it.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>limited</code> - The Capacity Reservation expires automatically at a specified date and time.</p>
     *                   </li>
     *                </ul>
     * 	  		       </li>
     *             <li>
     *                <p>
     *                   <code>instance-match-criteria</code> - Indicates the type of instance launches that the Capacity Reservation accepts. The options include:</p>
     * 	  			         <ul>
     *                   <li>
     *                      <p>
     *                         <code>open</code> - The Capacity Reservation accepts all instances that have matching
     * 							attributes (instance type, platform, and Availability Zone). Instances
     * 							that have matching attributes launch into the Capacity Reservation
     * 							automatically without specifying any additional parameters.</p>
     *                   </li>
     *                   <li>
     *                      <p>
     *                         <code>targeted</code> - The Capacity Reservation only accepts instances that have matching
     * 							attributes (instance type, platform, and Availability Zone), and
     * 							explicitly target the Capacity Reservation. This ensures that only
     * 							permitted instances can use the reserved capacity.</p>
     *                   </li>
     *                </ul>
     * 	  		       </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeCapacityReservationsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCapacityReservationsResult { /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; /**
     * <p>Information about the Capacity Reservations.</p>
     */ CapacityReservations ? : CapacityReservation [ ] ; } export namespace DescribeCapacityReservationsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCarrierGatewaysRequest { /**
     * <p>One or more carrier gateway IDs.</p>
     */ CarrierGatewayIds ? : string [ ] ; /**
     * <p>One or more filters.</p>
     *         <ul>
     *             <li>
     *                 <p>
     *                   <code>carrier-gateway-id</code> - The ID of the carrier gateway.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>state</code> - The state of the carrier gateway (<code>pending</code> |
     *                     <code>failed</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>).</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>owner-id</code> - The Amazon Web Services account ID of the owner of the carrier gateway.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
     *     For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <code>vpc-id</code> - The ID of the VPC associated with the carrier gateway.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>The maximum number of results to return with a single call.
     * 	To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>
     */ MaxResults ? : number ; /**
     * <p>The token for the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeCarrierGatewaysRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCarrierGatewaysResult { /**
     * <p>Information about the carrier gateway.</p>
     */ CarrierGateways ? : CarrierGateway [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeCarrierGatewaysResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClassicLinkInstancesRequest { /**
     * <p>One or more filters.</p>
     * 		       <ul>
     *             <li>
     *                       <p>
     *                   <code>group-id</code> - The ID of a VPC security group that's associated with the instance.</p>
     *                   </li>
     *             <li>
     * 				           <p>
     *                   <code>instance-id</code> - The ID of the instance.</p>
     * 			         </li>
     *             <li>
     * 			            <p>
     *                   <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
     *     For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>
     * 			         </li>
     *             <li>
     * 				           <p>
     *                   <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>
     * 			         </li>
     *             <li>
     *
     * 				           <p>
     * 					             <code>vpc-id</code> - The ID of the VPC to which the instance is
     * 					linked.</p>
     *
     * 				           <p>
     *                   <code>vpc-id</code> - The ID of the VPC that the instance is linked to.</p>
     *
     * 			         </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>One or more instance IDs. Must be instances linked to a VPC through ClassicLink.</p>
     */ InstanceIds ? : string [ ] ; /**
     * <p>The maximum number of results to return with a single call.
     * 	To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>
     * 		       <p>Constraint: If the value is greater than 1000, we return only 1000 items.</p>
     */ MaxResults ? : number ; /**
     * <p>The token for the next page of results.</p>
     */ NextToken ? : string ; } export namespace DescribeClassicLinkInstancesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a linked EC2-Classic instance.</p>
 */ export interface ClassicLinkInstance { /**
     * <p>A list of security groups.</p>
     */ Groups ? : GroupIdentifier [ ] ; /**
     * <p>The ID of the instance.</p>
     */ InstanceId ? : string ; /**
     * <p>Any tags assigned to the instance.</p>
     */ Tags ? : Tag [ ] ; /**
     * <p>The ID of the VPC.</p>
     */ VpcId ? : string ; } export namespace ClassicLinkInstance { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClassicLinkInstancesResult { /**
     * <p>Information about one or more linked EC2-Classic instances.</p>
     */ Instances ? : ClassicLinkInstance [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeClassicLinkInstancesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnAuthorizationRulesRequest { /**
     * <p>The ID of the Client VPN endpoint.</p>
     */ ClientVpnEndpointId : string | undefined ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; /**
     * <p>The token to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>One or more filters. Filter names and values are case-sensitive.</p>
     * 	        <ul>
     *             <li>
     *                <p>
     *                   <code>description</code> - The description of the authorization rule.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>destination-cidr</code> - The CIDR of the network to which the authorization rule
     *                     applies.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>group-id</code> - The ID of the Active Directory group to which the authorization rule grants access.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 nextToken value.</p>
     */ MaxResults ? : number ; } export namespace DescribeClientVpnAuthorizationRulesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Information about an authorization rule.</p>
 */ export interface AuthorizationRule { /**
     * <p>The ID of the Client VPN endpoint with which the authorization rule is associated.</p>
     */ ClientVpnEndpointId ? : string ; /**
     * <p>A brief description of the authorization rule.</p>
     */ Description ? : string ; /**
     * <p>The ID of the Active Directory group to which the authorization rule grants access.</p>
     */ GroupId ? : string ; /**
     * <p>Indicates whether the authorization rule grants access to all clients.</p>
     */ AccessAll ? : boolean ; /**
     * <p>The IPv4 address range, in CIDR notation, of the network to which the authorization rule applies.</p>
     */ DestinationCidr ? : string ; /**
     * <p>The current state of the authorization rule.</p>
     */ Status ? : ClientVpnAuthorizationRuleStatus ; } export namespace AuthorizationRule { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnAuthorizationRulesResult { /**
     * <p>Information about the authorization rules.</p>
     */ AuthorizationRules ? : AuthorizationRule [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeClientVpnAuthorizationRulesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnConnectionsRequest { /**
     * <p>The ID of the Client VPN endpoint.</p>
     */ ClientVpnEndpointId : string | undefined ; /**
     * <p>One or more filters. Filter names and values are case-sensitive.</p>
     * 	        <ul>
     *             <li>
     *                <p>
     *                   <code>connection-id</code> - The ID of the connection.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>username</code> - For Active Directory client authentication, the user name of the
     *                     client who established the client connection.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>The token to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>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 nextToken value.</p>
     */ MaxResults ? : number ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeClientVpnConnectionsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type ClientVpnConnectionStatusCode = "active" | "failed-to-terminate" | "terminated" | "terminating" ; /**
 * <p>Describes the status of a client connection.</p>
 */ export interface ClientVpnConnectionStatus { /**
     * <p>The state of the client connection.</p>
     */ Code ? : ClientVpnConnectionStatusCode | string ; /**
     * <p>A message about the status of the client connection, if applicable.</p>
     */ Message ? : string ; } export namespace ClientVpnConnectionStatus { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a client connection.</p>
 */ export interface ClientVpnConnection { /**
     * <p>The ID of the Client VPN endpoint to which the client is connected.</p>
     */ ClientVpnEndpointId ? : string ; /**
     * <p>The current date and time.</p>
     */ Timestamp ? : string ; /**
     * <p>The ID of the client connection.</p>
     */ ConnectionId ? : string ; /**
     * <p>The username of the client who established the client connection. This information is only provided
     * 			if Active Directory client authentication is used.</p>
     */ Username ? : string ; /**
     * <p>The date and time the client connection was established.</p>
     */ ConnectionEstablishedTime ? : string ; /**
     * <p>The number of bytes sent by the client.</p>
     */ IngressBytes ? : string ; /**
     * <p>The number of bytes received by the client.</p>
     */ EgressBytes ? : string ; /**
     * <p>The number of packets sent by the client.</p>
     */ IngressPackets ? : string ; /**
     * <p>The number of packets received by the client.</p>
     */ EgressPackets ? : string ; /**
     * <p>The IP address of the client.</p>
     */ ClientIp ? : string ; /**
     * <p>The common name associated with the client. This is either the name of the client certificate,
     * 			or the Active Directory user name.</p>
     */ CommonName ? : string ; /**
     * <p>The current state of the client connection.</p>
     */ Status ? : ClientVpnConnectionStatus ; /**
     * <p>The date and time the client connection was terminated.</p>
     */ ConnectionEndTime ? : string ; /**
     * <p>The statuses returned by the client connect handler for posture compliance, if applicable.</p>
     */ PostureComplianceStatuses ? : string [ ] ; } export namespace ClientVpnConnection { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnConnectionsResult { /**
     * <p>Information about the active and terminated client connections.</p>
     */ Connections ? : ClientVpnConnection [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeClientVpnConnectionsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnEndpointsRequest { /**
     * <p>The ID of the Client VPN endpoint.</p>
     */ ClientVpnEndpointIds ? : string [ ] ; /**
     * <p>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 nextToken value.</p>
     */ MaxResults ? : number ; /**
     * <p>The token to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>One or more filters. Filter names and values are case-sensitive.</p>
     * 	        <ul>
     *             <li>
     *                <p>
     *                   <code>endpoint-id</code> - The ID of the Client VPN endpoint.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>transport-protocol</code> - The transport protocol (<code>tcp</code> |
     *                     <code>udp</code>).</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeClientVpnEndpointsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type AssociatedNetworkType = "vpc" ; /**
 * <p>Describes a target network that is associated with a Client VPN endpoint. A target network is a subnet in a VPC.</p>
 */ export interface AssociatedTargetNetwork { /**
     * <p>The ID of the subnet.</p>
     */ NetworkId ? : string ; /**
     * <p>The target network type.</p>
     */ NetworkType ? : AssociatedNetworkType | string ; } export namespace AssociatedTargetNetwork { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes an Active Directory.</p>
 */ export interface DirectoryServiceAuthentication { /**
     * <p>The ID of the Active Directory used for authentication.</p>
     */ DirectoryId ? : string ; } export namespace DirectoryServiceAuthentication { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the IAM SAML identity providers used for federated authentication.</p>
 */ export interface FederatedAuthentication { /**
     * <p>The Amazon Resource Name (ARN) of the IAM SAML identity provider.</p>
     */ SamlProviderArn ? : string ; /**
     * <p>The Amazon Resource Name (ARN) of the IAM SAML identity provider for the self-service portal.</p>
     */ SelfServiceSamlProviderArn ? : string ; } export namespace FederatedAuthentication { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Information about the client certificate used for authentication.</p>
 */ export interface CertificateAuthentication { /**
     * <p>The ARN of the client certificate. </p>
     */ ClientRootCertificateChain ? : string ; } export namespace CertificateAuthentication { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes the authentication methods used by a Client VPN endpoint. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html">Authentication</a>
 * 			in the <i>Client VPN Administrator Guide</i>.</p>
 */ export interface ClientVpnAuthentication { /**
     * <p>The authentication type used.</p>
     */ Type ? : ClientVpnAuthenticationType | string ; /**
     * <p>Information about the Active Directory, if applicable.</p>
     */ ActiveDirectory ? : DirectoryServiceAuthentication ; /**
     * <p>Information about the authentication certificates, if applicable.</p>
     */ MutualAuthentication ? : CertificateAuthentication ; /**
     * <p>Information about the IAM SAML identity provider, if applicable.</p>
     */ FederatedAuthentication ? : FederatedAuthentication ; } export namespace ClientVpnAuthentication { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type ClientVpnEndpointAttributeStatusCode = "applied" | "applying" ; /**
 * <p>Describes the status of the Client VPN endpoint attribute.</p>
 */ export interface ClientVpnEndpointAttributeStatus { /**
     * <p>The status code.</p>
     */ Code ? : ClientVpnEndpointAttributeStatusCode | string ; /**
     * <p>The status message.</p>
     */ Message ? : string ; } export namespace ClientVpnEndpointAttributeStatus { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>The options for managing connection authorization for new client connections.</p>
 */ export interface ClientConnectResponseOptions { /**
     * <p>Indicates whether client connect options are enabled.</p>
     */ Enabled ? : boolean ; /**
     * <p>The Amazon Resource Name (ARN) of the Lambda function used for connection authorization.</p>
     */ LambdaFunctionArn ? : string ; /**
     * <p>The status of any updates to the client connect options.</p>
     */ Status ? : ClientVpnEndpointAttributeStatus ; } export namespace ClientConnectResponseOptions { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Information about the client connection logging options for a Client VPN endpoint.</p>
 */ export interface ConnectionLogResponseOptions { /**
     * <p>Indicates whether client connection logging is enabled for the Client VPN endpoint.</p>
     */ Enabled ? : boolean ; /**
     * <p>The name of the Amazon CloudWatch Logs log group to which connection logging data is published.</p>
     */ CloudwatchLogGroup ? : string ; /**
     * <p>The name of the Amazon CloudWatch Logs log stream to which connection logging data is published.</p>
     */ CloudwatchLogStream ? : string ; } export namespace ConnectionLogResponseOptions { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export type VpnProtocol = "openvpn" ; /**
 * <p>Describes a Client VPN endpoint.</p>
 */ export interface ClientVpnEndpoint { /**
     * <p>The ID of the Client VPN endpoint.</p>
     */ ClientVpnEndpointId ? : string ; /**
     * <p>A brief description of the endpoint.</p>
     */ Description ? : string ; /**
     * <p>The current state of the Client VPN endpoint.</p>
     */ Status ? : ClientVpnEndpointStatus ; /**
     * <p>The date and time the Client VPN endpoint was created.</p>
     */ CreationTime ? : string ; /**
     * <p>The date and time the Client VPN endpoint was deleted, if applicable.</p>
     */ DeletionTime ? : string ; /**
     * <p>The DNS name to be used by clients when connecting to the Client VPN endpoint.</p>
     */ DnsName ? : string ; /**
     * <p>The IPv4 address range, in CIDR notation, from which client IP addresses are assigned.</p>
     */ ClientCidrBlock ? : string ; /**
     * <p>Information about the DNS servers to be used for DNS resolution. </p>
     */ DnsServers ? : string [ ] ; /**
     * <p>Indicates whether split-tunnel is enabled in the Client VPN endpoint.</p>
     * 		       <p>For information about split-tunnel VPN endpoints, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html">Split-Tunnel Client VPN endpoint</a>
     * 			in the <i>Client VPN Administrator Guide</i>.</p>
     */ SplitTunnel ? : boolean ; /**
     * <p>The protocol used by the VPN session.</p>
     */ VpnProtocol ? : VpnProtocol | string ; /**
     * <p>The transport protocol used by the Client VPN endpoint.</p>
     */ TransportProtocol ? : TransportProtocol | string ; /**
     * <p>The port number for the  Client VPN endpoint.</p>
     */ VpnPort ? : number ; deprecated AssociatedTargetNetworks ? : AssociatedTargetNetwork [ ] ; /**
     * <p>The ARN of the server certificate.</p>
     */ ServerCertificateArn ? : string ; /**
     * <p>Information about the authentication method used by the Client VPN endpoint.</p>
     */ AuthenticationOptions ? : ClientVpnAuthentication [ ] ; /**
     * <p>Information about the client connection logging options for the Client VPN endpoint.</p>
     */ ConnectionLogOptions ? : ConnectionLogResponseOptions ; /**
     * <p>Any tags assigned to the Client VPN endpoint.</p>
     */ Tags ? : Tag [ ] ; /**
     * <p>The IDs of the security groups for the target network.</p>
     */ SecurityGroupIds ? : string [ ] ; /**
     * <p>The ID of the VPC.</p>
     */ VpcId ? : string ; /**
     * <p>The URL of the self-service portal.</p>
     */ SelfServicePortalUrl ? : string ; /**
     * <p>The options for managing connection authorization for new client connections.</p>
     */ ClientConnectOptions ? : ClientConnectResponseOptions ; } export namespace ClientVpnEndpoint { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnEndpointsResult { /**
     * <p>Information about the Client VPN endpoints.</p>
     */ ClientVpnEndpoints ? : ClientVpnEndpoint [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeClientVpnEndpointsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnRoutesRequest { /**
     * <p>The ID of the Client VPN endpoint.</p>
     */ ClientVpnEndpointId : string | undefined ; /**
     * <p>One or more filters. Filter names and values are case-sensitive.</p>
     * 	        <ul>
     *             <li>
     *                <p>
     *                   <code>destination-cidr</code> - The CIDR of the route destination.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>origin</code> - How the route was associated with the Client VPN endpoint (<code>associate</code> | <code>add-route</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>target-subnet</code> - The ID of the subnet through which traffic is routed.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 nextToken value.</p>
     */ MaxResults ? : number ; /**
     * <p>The token to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeClientVpnRoutesRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Information about a Client VPN endpoint route.</p>
 */ export interface ClientVpnRoute { /**
     * <p>The ID of the Client VPN endpoint with which the route is associated.</p>
     */ ClientVpnEndpointId ? : string ; /**
     * <p>The IPv4 address range, in CIDR notation, of the route destination.</p>
     */ DestinationCidr ? : string ; /**
     * <p>The ID of the subnet through which traffic is routed.</p>
     */ TargetSubnet ? : string ; /**
     * <p>The route type.</p>
     */ Type ? : string ; /**
     * <p>Indicates how the route was associated with the Client VPN endpoint.
     * 			<code>associate</code> indicates that the route was automatically added when the target network
     * 			was associated with the Client VPN endpoint. <code>add-route</code> indicates that the route
     * 			was manually added using the <b>CreateClientVpnRoute</b> action.</p>
     */ Origin ? : string ; /**
     * <p>The current state of the route.</p>
     */ Status ? : ClientVpnRouteStatus ; /**
     * <p>A brief description of the route.</p>
     */ Description ? : string ; } export namespace ClientVpnRoute { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnRoutesResult { /**
     * <p>Information about the Client VPN endpoint routes.</p>
     */ Routes ? : ClientVpnRoute [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeClientVpnRoutesResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnTargetNetworksRequest { /**
     * <p>The ID of the Client VPN endpoint.</p>
     */ ClientVpnEndpointId : string | undefined ; /**
     * <p>The IDs of the target network associations.</p>
     */ AssociationIds ? : string [ ] ; /**
     * <p>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 nextToken value.</p>
     */ MaxResults ? : number ; /**
     * <p>The token to retrieve the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>One or more filters. Filter names and values are case-sensitive.</p>
     * 	        <ul>
     *             <li>
     *                <p>
     *                   <code>association-id</code> - The ID of the association.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>target-network-id</code> - The ID of the subnet specified as the target network.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>vpc-id</code> - The ID of the VPC in which the target network is located.</p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeClientVpnTargetNetworksRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a target network associated with a Client VPN endpoint.</p>
 */ export interface TargetNetwork { /**
     * <p>The ID of the association.</p>
     */ AssociationId ? : string ; /**
     * <p>The ID of the VPC in which the target network (subnet) is located.</p>
     */ VpcId ? : string ; /**
     * <p>The ID of the subnet specified as the target network.</p>
     */ TargetNetworkId ? : string ; /**
     * <p>The ID of the Client VPN endpoint with which the target network is associated.</p>
     */ ClientVpnEndpointId ? : string ; /**
     * <p>The current state of the target network association.</p>
     */ Status ? : AssociationStatus ; /**
     * <p>The IDs of the security groups applied to the target network association.</p>
     */ SecurityGroups ? : string [ ] ; } export namespace TargetNetwork { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeClientVpnTargetNetworksResult { /**
     * <p>Information about the associated target networks.</p>
     */ ClientVpnTargetNetworks ? : TargetNetwork [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeClientVpnTargetNetworksResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCoipPoolsRequest { /**
     * <p>The IDs of the address pools.</p>
     */ PoolIds ? : string [ ] ; /**
     * <p>The filters. The following are the possible values:</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>coip-pool.pool-id</code>
     *                </p>
     *             </li>
     *          </ul>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>coip-pool.local-gateway-route-table-id</code>
     *                </p>
     *             </li>
     *          </ul>
     */ Filters ? : Filter [ ] ; /**
     * <p>The maximum number of results to return with a single call.
     * 	To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>
     */ MaxResults ? : number ; /**
     * <p>The token for the next page of results.</p>
     */ NextToken ? : string ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeCoipPoolsRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a customer-owned address pool.</p>
 */ export interface CoipPool { /**
     * <p>The ID of the address pool.</p>
     */ PoolId ? : string ; /**
     * <p>The address ranges of the address pool.</p>
     */ PoolCidrs ? : string [ ] ; /**
     * <p>The ID of the local gateway route table.</p>
     */ LocalGatewayRouteTableId ? : string ; /**
     * <p>The tags.</p>
     */ Tags ? : Tag [ ] ; /**
     * <p>The ARN of the address pool.</p>
     */ PoolArn ? : string ; } export namespace CoipPool { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeCoipPoolsResult { /**
     * <p>Information about the address pools.</p>
     */ CoipPools ? : CoipPool [ ] ; /**
     * <p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
     */ NextToken ? : string ; } export namespace DescribeCoipPoolsResult { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } export interface DescribeConversionTasksRequest { /**
     * <p>The conversion task IDs.</p>
     */ ConversionTaskIds ? : string [ ] ; /**
     * <p>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 <code>DryRunOperation</code>.
     *    Otherwise, it is <code>UnauthorizedOperation</code>.</p>
     */ DryRun ? : boolean ; } export namespace DescribeConversionTasksRequest { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a disk image.</p>
 */ export interface DiskImageDescription { /**
     * <p>The checksum computed for the disk image.</p>
     */ Checksum ? : string ; /**
     * <p>The disk image format.</p>
     */ Format ? : DiskImageFormat | string ; /**
     * <p>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 <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">Authenticating REST Requests</a> topic in
     *    the <i>Amazon Simple Storage Service Developer Guide</i>.</p>
     *          <p>For information about the import manifest referenced by this API action, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.</p>
     */ ImportManifestUrl ? : string ; /**
     * <p>The size of the disk image, in GiB.</p>
     */ Size ? : number ; } export namespace DiskImageDescription { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes a disk image volume.</p>
 */ export interface DiskImageVolumeDescription { /**
     * <p>The volume identifier.</p>
     */ Id ? : string ; /**
     * <p>The size of the volume, in GiB.</p>
     */ Size ? : number ; } export namespace DiskImageVolumeDescription { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes an import volume task.</p>
 */ export interface ImportInstanceVolumeDetailItem { /**
     * <p>The Availability Zone where the resulting instance will reside.</p>
     */ AvailabilityZone ? : string ; /**
     * <p>The number of bytes converted so far.</p>
     */ BytesConverted ? : number ; /**
     * <p>A description of the task.</p>
     */ Description ? : string ; /**
     * <p>The image.</p>
     */ Image ? : DiskImageDescription ; /**
     * <p>The status of the import of this particular disk image.</p>
     */ Status ? : string ; /**
     * <p>The status information or errors related to the disk image.</p>
     */ StatusMessage ? : string ; /**
     * <p>The volume.</p>
     */ Volume ? : DiskImageVolumeDescription ; } export namespace ImportInstanceVolumeDetailItem { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; } /**
 * <p>Describes an import instance task.</p>
 */ export interface ImportInstanceTaskDetails { /**
     * <p>A description of the task.</p>
     */ Description ? : string ; /**
     * <p>The ID of the instance.</p>
     */ InstanceId ? : string ; /**
     * <p>The instance operating system.</p>
     */ Platform ? : PlatformValues | string ; /**
     * <p>The volumes.</p>
     */ Volumes ? : ImportInstanceVolumeDetailItem [ ] ; } export namespace ImportInstanceTaskDetails { internal export const filterSensitiveLog = ( obj ) : any => ( { ... obj , } ) ; }