import { ByoipCidr, IpPermission, NatGatewayAddress, TagSpecification, TransitGatewayAttachmentResourceType } from "./models_0";
import { LocalGatewayRoute } from "./models_1";
import { TransitGatewayRoute } from "./models_2";
import { ClientVpnConnectionStatus, Filter } from "./models_3";
import { InstanceState, NetworkInsightsAccessScopeAnalysis, NetworkInsightsAnalysis } from "./models_4";
import { InstanceMonitoring } from "./models_6";
/**
 * @public
 * <p>Contains the output of RunScheduledInstances.</p>
 */
export interface RunScheduledInstancesResult {
    /**
     * <p>The IDs of the newly launched instances.</p>
     */
    InstanceIdSet?: string[];
}
/**
 * @public
 */
export interface SearchLocalGatewayRoutesRequest {
    /**
     * <p>The ID of the local gateway route table.</p>
     */
    LocalGatewayRouteTableId: string | undefined;
    /**
     * <p>One or more filters.</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>prefix-list-id</code> - The ID of the prefix list.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.exact-match</code> - The exact match of the specified filter.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.longest-prefix-match</code> - The longest prefix that matches the route.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.subnet-of-match</code> - The routes with a subnet that match the specified CIDR filter.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.supernet-of-match</code> - The routes with a CIDR that encompass the CIDR filter.
     *                For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify <code>supernet-of-match</code>
     *                as 10.0.1.0/30, then the result returns 10.0.1.0/29.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>state</code> - The state of the route.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>type</code> - The route type.</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;
}
/**
 * @public
 */
export interface SearchLocalGatewayRoutesResult {
    /**
     * <p>Information about the routes.</p>
     */
    Routes?: LocalGatewayRoute[];
    /**
     * <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;
}
/**
 * @public
 */
export interface SearchTransitGatewayMulticastGroupsRequest {
    /**
     * <p>The ID of the transit gateway multicast domain.</p>
     */
    TransitGatewayMulticastDomainId: string | undefined;
    /**
     * <p>One or more filters. The possible values are:</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>group-ip-address</code> - The IP address of the  transit gateway multicast group.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>is-group-member</code> - The resource is a group member. Valid values are <code>true</code> | <code>false</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>is-group-source</code> - The resource is a group source. Valid values are <code>true</code> | <code>false</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>member-type</code> - The member type. Valid values are <code>igmp</code> | <code>static</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>resource-id</code> - The ID of the resource.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>resource-type</code> - The type of resource. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>tgw-peering</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>source-type</code> - The source type. Valid values are <code>igmp</code> | <code>static</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>subnet-id</code> - The ID of the subnet.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>transit-gateway-attachment-id</code> - The id of the transit gateway attachment.</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;
}
/**
 * @public
 * @enum
 */
export declare const MembershipType: {
    readonly igmp: "igmp";
    readonly static: "static";
};
/**
 * @public
 */
export type MembershipType = (typeof MembershipType)[keyof typeof MembershipType];
/**
 * @public
 * <p>Describes the  transit gateway multicast group resources.</p>
 */
export interface TransitGatewayMulticastGroup {
    /**
     * <p>The IP address assigned to the  transit gateway multicast group.</p>
     */
    GroupIpAddress?: string;
    /**
     * <p>The ID of the transit gateway attachment.</p>
     */
    TransitGatewayAttachmentId?: string;
    /**
     * <p>The ID of the subnet.</p>
     */
    SubnetId?: string;
    /**
     * <p>The ID of the resource.</p>
     */
    ResourceId?: string;
    /**
     * <p>The type of resource, for example a VPC attachment.</p>
     */
    ResourceType?: TransitGatewayAttachmentResourceType | string;
    /**
     * <p> The ID of the Amazon Web Services account that owns the transit gateway multicast domain group resource.</p>
     */
    ResourceOwnerId?: string;
    /**
     * <p>The ID of the transit gateway attachment.</p>
     */
    NetworkInterfaceId?: string;
    /**
     * <p>Indicates that the resource is a  transit gateway multicast group member.</p>
     */
    GroupMember?: boolean;
    /**
     * <p>Indicates that the resource is a  transit gateway multicast group member.</p>
     */
    GroupSource?: boolean;
    /**
     * <p>The member type (for example, <code>static</code>).</p>
     */
    MemberType?: MembershipType | string;
    /**
     * <p>The source type.</p>
     */
    SourceType?: MembershipType | string;
}
/**
 * @public
 */
export interface SearchTransitGatewayMulticastGroupsResult {
    /**
     * <p>Information about the  transit gateway multicast group.</p>
     */
    MulticastGroups?: TransitGatewayMulticastGroup[];
    /**
     * <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;
}
/**
 * @public
 */
export interface SearchTransitGatewayRoutesRequest {
    /**
     * <p>The ID of the transit gateway route table.</p>
     */
    TransitGatewayRouteTableId: string | undefined;
    /**
     * <p>One or more filters. The possible values are:</p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <code>attachment.transit-gateway-attachment-id</code>- The id of the transit gateway attachment.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>attachment.resource-id</code> - The resource id of the transit gateway attachment.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>attachment.resource-type</code> - The attachment resource type. Valid values
     *                     are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> |
     *                         <code>peering</code> | <code>connect</code>.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>prefix-list-id</code> - The ID of the prefix list.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.exact-match</code> - The exact match of the specified filter.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.longest-prefix-match</code> - The longest prefix that matches the route.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.subnet-of-match</code> - The routes with a subnet that match the specified CIDR filter.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>route-search.supernet-of-match</code> - The routes with a CIDR that encompass the CIDR filter. For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>state</code> - The state of the route (<code>active</code> | <code>blackhole</code>).</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <code>type</code> - The type of route (<code>propagated</code> |
     *                   <code>static</code>).</p>
     *             </li>
     *          </ul>
     */
    Filters: Filter[] | undefined;
    /**
     * <p>The maximum number of routes to return.</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;
}
/**
 * @public
 */
export interface SearchTransitGatewayRoutesResult {
    /**
     * <p>Information about the routes.</p>
     */
    Routes?: TransitGatewayRoute[];
    /**
     * <p>Indicates whether there are additional routes available.</p>
     */
    AdditionalRoutesAvailable?: boolean;
}
/**
 * @public
 */
export interface SendDiagnosticInterruptRequest {
    /**
     * <p>The ID of the instance.</p>
     */
    InstanceId: 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;
}
/**
 * @public
 */
export interface StartInstancesRequest {
    /**
     * <p>The IDs of the instances.</p>
     */
    InstanceIds: string[] | undefined;
    /**
     * <p>Reserved.</p>
     */
    AdditionalInfo?: 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;
}
/**
 * @public
 * <p>Describes an instance state change.</p>
 */
export interface InstanceStateChange {
    /**
     * <p>The current state of the instance.</p>
     */
    CurrentState?: InstanceState;
    /**
     * <p>The ID of the instance.</p>
     */
    InstanceId?: string;
    /**
     * <p>The previous state of the instance.</p>
     */
    PreviousState?: InstanceState;
}
/**
 * @public
 */
export interface StartInstancesResult {
    /**
     * <p>Information about the started instances.</p>
     */
    StartingInstances?: InstanceStateChange[];
}
/**
 * @public
 */
export interface StartNetworkInsightsAccessScopeAnalysisRequest {
    /**
     * <p>The ID of the Network Access Scope.</p>
     */
    NetworkInsightsAccessScopeId: 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 tags to apply.</p>
     */
    TagSpecifications?: TagSpecification[];
    /**
     * <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;
}
/**
 * @public
 */
export interface StartNetworkInsightsAccessScopeAnalysisResult {
    /**
     * <p>The Network Access Scope analysis.</p>
     */
    NetworkInsightsAccessScopeAnalysis?: NetworkInsightsAccessScopeAnalysis;
}
/**
 * @public
 */
export interface StartNetworkInsightsAnalysisRequest {
    /**
     * <p>The ID of the path.</p>
     */
    NetworkInsightsPathId: string | undefined;
    /**
     * <p>The member accounts that contain resources that the path can traverse.</p>
     */
    AdditionalAccounts?: string[];
    /**
     * <p>The Amazon Resource Names (ARN) of the resources that the path must traverse.</p>
     */
    FilterInArns?: 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.</p>
     */
    TagSpecifications?: TagSpecification[];
    /**
     * <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;
}
/**
 * @public
 */
export interface StartNetworkInsightsAnalysisResult {
    /**
     * <p>Information about the network insights analysis.</p>
     */
    NetworkInsightsAnalysis?: NetworkInsightsAnalysis;
}
/**
 * @public
 */
export interface StartVpcEndpointServicePrivateDnsVerificationRequest {
    /**
     * <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 | undefined;
}
/**
 * @public
 */
export interface StartVpcEndpointServicePrivateDnsVerificationResult {
    /**
     * <p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>
     */
    ReturnValue?: boolean;
}
/**
 * @public
 */
export interface StopInstancesRequest {
    /**
     * <p>The IDs of the instances.</p>
     */
    InstanceIds: string[] | undefined;
    /**
     * <p>Hibernates the instance if the instance was enabled for hibernation at launch. If the
     *             instance cannot hibernate successfully, a normal shutdown occurs. For more information,
     *             see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
     *                 your instance</a> in the <i>Amazon EC2 User Guide</i>.</p>
     *          <p> Default: <code>false</code>
     *          </p>
     */
    Hibernate?: 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;
    /**
     * <p>Forces the instances to stop. The instances do not have an opportunity to flush file
     *             system caches or file system metadata. If you use this option, you must perform file
     *             system check and repair procedures. This option is not recommended for Windows
     *             instances.</p>
     *          <p>Default: <code>false</code>
     *          </p>
     */
    Force?: boolean;
}
/**
 * @public
 */
export interface StopInstancesResult {
    /**
     * <p>Information about the stopped instances.</p>
     */
    StoppingInstances?: InstanceStateChange[];
}
/**
 * @public
 */
export interface TerminateClientVpnConnectionsRequest {
    /**
     * <p>The ID of the Client VPN endpoint to which the client is connected.</p>
     */
    ClientVpnEndpointId: string | undefined;
    /**
     * <p>The ID of the client connection to be terminated.</p>
     */
    ConnectionId?: string;
    /**
     * <p>The name of the user who initiated the connection. Use this option to terminate all active connections for
     * 			the specified user. This option can only be used if the user has established up to five connections.</p>
     */
    Username?: 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;
}
/**
 * @public
 * <p>Information about a terminated Client VPN endpoint client connection.</p>
 */
export interface TerminateConnectionStatus {
    /**
     * <p>The ID of the client connection.</p>
     */
    ConnectionId?: string;
    /**
     * <p>The state of the client connection.</p>
     */
    PreviousStatus?: ClientVpnConnectionStatus;
    /**
     * <p>A message about the status of the client connection, if applicable.</p>
     */
    CurrentStatus?: ClientVpnConnectionStatus;
}
/**
 * @public
 */
export interface TerminateClientVpnConnectionsResult {
    /**
     * <p>The ID of the Client VPN endpoint.</p>
     */
    ClientVpnEndpointId?: string;
    /**
     * <p>The user who established the terminated client connections.</p>
     */
    Username?: string;
    /**
     * <p>The current state of the client connections.</p>
     */
    ConnectionStatuses?: TerminateConnectionStatus[];
}
/**
 * @public
 */
export interface TerminateInstancesRequest {
    /**
     * <p>The IDs of the instances.</p>
     *          <p>Constraints: Up to 1000 instance IDs. We recommend breaking up this request into
     *             smaller batches.</p>
     */
    InstanceIds: 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;
}
/**
 * @public
 */
export interface TerminateInstancesResult {
    /**
     * <p>Information about the terminated instances.</p>
     */
    TerminatingInstances?: InstanceStateChange[];
}
/**
 * @public
 */
export interface UnassignIpv6AddressesRequest {
    /**
     * <p>The IPv6 addresses to unassign from the network interface.</p>
     */
    Ipv6Addresses?: string[];
    /**
     * <p>The IPv6 prefixes to unassign from the network interface.</p>
     */
    Ipv6Prefixes?: string[];
    /**
     * <p>The ID of the network interface.</p>
     */
    NetworkInterfaceId: string | undefined;
}
/**
 * @public
 */
export interface UnassignIpv6AddressesResult {
    /**
     * <p>The ID of the network interface.</p>
     */
    NetworkInterfaceId?: string;
    /**
     * <p>The IPv6 addresses that have been unassigned from the network interface.</p>
     */
    UnassignedIpv6Addresses?: string[];
    /**
     * <p>The IPv4 prefixes that have been unassigned from  the network interface.</p>
     */
    UnassignedIpv6Prefixes?: string[];
}
/**
 * @public
 * <p>Contains the parameters for UnassignPrivateIpAddresses.</p>
 */
export interface UnassignPrivateIpAddressesRequest {
    /**
     * <p>The ID of the network interface.</p>
     */
    NetworkInterfaceId: string | undefined;
    /**
     * <p>The secondary private IP addresses to unassign from the network interface. You can specify this
     *         	option multiple times to unassign more than one IP address.</p>
     */
    PrivateIpAddresses?: string[];
    /**
     * <p>The IPv4 prefixes to unassign from  the network interface.</p>
     */
    Ipv4Prefixes?: string[];
}
/**
 * @public
 */
export interface UnassignPrivateNatGatewayAddressRequest {
    /**
     * <p>The NAT gateway ID.</p>
     */
    NatGatewayId: string | undefined;
    /**
     * <p>The private IPv4 addresses you want to unassign.</p>
     */
    PrivateIpAddresses: string[] | undefined;
    /**
     * <p>The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.</p>
     */
    MaxDrainDurationSeconds?: 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;
}
/**
 * @public
 */
export interface UnassignPrivateNatGatewayAddressResult {
    /**
     * <p>The NAT gateway ID.</p>
     */
    NatGatewayId?: string;
    /**
     * <p>Information about the NAT gateway IP addresses.</p>
     */
    NatGatewayAddresses?: NatGatewayAddress[];
}
/**
 * @public
 */
export interface UnmonitorInstancesRequest {
    /**
     * <p>The IDs of the instances.</p>
     */
    InstanceIds: 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;
}
/**
 * @public
 */
export interface UnmonitorInstancesResult {
    /**
     * <p>The monitoring information.</p>
     */
    InstanceMonitorings?: InstanceMonitoring[];
}
/**
 * @public
 * <p>Describes the description of a security group rule.</p>
 *          <p>You can use this when you want to update the security group rule description for either an inbound or outbound rule.</p>
 */
export interface SecurityGroupRuleDescription {
    /**
     * <p>The ID of the security group rule.</p>
     */
    SecurityGroupRuleId?: string;
    /**
     * <p>The description of the security group rule.</p>
     */
    Description?: string;
}
/**
 * @public
 */
export interface UpdateSecurityGroupRuleDescriptionsEgressRequest {
    /**
     * <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 security group. You must specify either the security group ID or the
     * 			security group name in the request. For security groups in a nondefault VPC, you must
     * 			specify the security group ID.</p>
     */
    GroupId?: string;
    /**
     * <p>[Default VPC] The name of the security group. You must specify either the security group
     * 			ID or the security group name in the request.</p>
     */
    GroupName?: string;
    /**
     * <p>The IP permissions for the security group rule. You must specify either the IP permissions
     * 		    or the description.</p>
     */
    IpPermissions?: IpPermission[];
    /**
     * <p>The description for the egress security group rules. You must specify either the
     *             description or the IP permissions.</p>
     */
    SecurityGroupRuleDescriptions?: SecurityGroupRuleDescription[];
}
/**
 * @public
 */
export interface UpdateSecurityGroupRuleDescriptionsEgressResult {
    /**
     * <p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>
     */
    Return?: boolean;
}
/**
 * @public
 */
export interface UpdateSecurityGroupRuleDescriptionsIngressRequest {
    /**
     * <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 security group. You must specify either the security group ID or the
     * 			security group name in the request. For security groups in a nondefault VPC, you must
     * 			specify the security group ID.</p>
     */
    GroupId?: string;
    /**
     * <p>[EC2-Classic, default VPC] The name of the security group. You must specify either the
     *             security group ID or the security group name in the request. For security groups in a
     *             nondefault VPC, you must specify the security group ID.</p>
     */
    GroupName?: string;
    /**
     * <p>The IP permissions for the security group rule. You must specify either IP permissions
     * 		    or a description.</p>
     */
    IpPermissions?: IpPermission[];
    /**
     * <p>[VPC only] The description for the ingress security group rules. You must specify either
     *             a description or IP permissions.</p>
     */
    SecurityGroupRuleDescriptions?: SecurityGroupRuleDescription[];
}
/**
 * @public
 */
export interface UpdateSecurityGroupRuleDescriptionsIngressResult {
    /**
     * <p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>
     */
    Return?: boolean;
}
/**
 * @public
 */
export interface WithdrawByoipCidrRequest {
    /**
     * <p>The address range, in CIDR notation.</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;
}
/**
 * @public
 */
export interface WithdrawByoipCidrResult {
    /**
     * <p>Information about the address pool.</p>
     */
    ByoipCidr?: ByoipCidr;
}
