import * as $dara from '@darabonba/typescript';
export declare class DescribeVpnGatewayResponseBodyEniInstanceIds extends $dara.Model {
    eniInstanceId?: string[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnGatewayResponseBodyReservationData extends $dara.Model {
    /**
     * @remarks
     * If the order type is **TEMP_UPGRADE** (temporary upgrade), this parameter specifies the time when the temporary upgrade expires.
     *
     * If the order type is **RENEWCHANGE** (renewal with a specification change) or **RENEW** (renewal), this parameter indicates the time when the renewal or renewal with a specification change takes effect.
     *
     * @example
     * 2020-07-20T16:00:00Z
     */
    reservationEndTime?: string;
    /**
     * @remarks
     * The IPsec-VPN status of the pending order. Valid values:
     *
     * *   **enable**
     * *   **disable**
     *
     * @example
     * enable
     */
    reservationIpsec?: string;
    /**
     * @remarks
     * The maximum number of concurrent SSL-VPN connections of the pending order.
     *
     * @example
     * 5
     */
    reservationMaxConnections?: number;
    /**
     * @remarks
     * The type of the pending order. Valid values:
     *
     * *   **RENEWCHANGE**: renewal with upgrade or downgrade
     * *   **TEMP_UPGRADE**: temporary upgrade
     * *   **RENEW**: renewal
     *
     * @example
     * TEMP_UPGRADE
     */
    reservationOrderType?: string;
    /**
     * @remarks
     * The bandwidth of the pending order. Unit: Mbit/s.
     *
     * @example
     * 5
     */
    reservationSpec?: string;
    /**
     * @remarks
     * The SSL-VPN status of the pending order. Valid values:
     *
     * *   **enable**
     * *   **disable**
     *
     * @example
     * enable
     */
    reservationSsl?: string;
    /**
     * @remarks
     * The status of the pending order. Valid values:
     *
     * *   **1**: indicates that the order of the renewal or specification change has not taken effect.
     * *   **2**: indicates that the order is an order for temporary upgrade and the order has taken effect. After the temporary upgrade expires, the system restores the VPN gateway to its previous specifications. In this case, **ReservationIpsec**, **ReservationMaxConnections**, **ReservationSpec**, and **ReservationSsl** indicate the previous specification.
     *
     * @example
     * 1
     */
    status?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnGatewayResponseBodyTagsTag extends $dara.Model {
    /**
     * @remarks
     * 标签键。
     *
     * @example
     * aaa
     */
    key?: string;
    /**
     * @remarks
     * 标签值。
     *
     * @example
     * bbb
     */
    value?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnGatewayResponseBodyTags extends $dara.Model {
    tag?: DescribeVpnGatewayResponseBodyTagsTag[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnGatewayResponseBody extends $dara.Model {
    /**
     * @remarks
     * Indicates whether BGP routes are automatically advertised to the VPC. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * true
     */
    autoPropagate?: boolean;
    /**
     * @remarks
     * The payment status of the VPN gateway. Valid values:
     *
     * *   **Normal**
     * *   **FinancialLocked**
     *
     * @example
     * Normal
     */
    businessStatus?: string;
    /**
     * @remarks
     * The billing method. Valid value:
     *
     * **POSTPAY**: pay-as-you-go
     *
     * @example
     * 中国站示例值：Prepay，国际站示例值：POSTPAY
     */
    chargeType?: string;
    /**
     * @remarks
     * The timestamp when the VPN gateway was created. Unit: milliseconds.
     *
     * This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
     *
     * @example
     * 1495382400000
     */
    createTime?: number;
    /**
     * @remarks
     * The description of the VPN gateway.
     *
     * @example
     * vpngatewaydescription
     */
    description?: string;
    /**
     * @remarks
     * The second IP address assigned by the system to create an IPsec-VPN connection.
     *
     * This parameter is returned only when the VPN gateway supports the dual-tunnel mode.
     *
     * @example
     * 47.91.XX.XX
     */
    disasterRecoveryInternetIp?: string;
    /**
     * @remarks
     * The ID of the second vSwitch associated with the VPN gateway.
     *
     * This parameter is returned only when the VPN gateway supports the dual-tunnel mode.
     *
     * @example
     * vsw-p0w95ql6tmr2ludkt****
     */
    disasterRecoveryVSwitchId?: string;
    /**
     * @remarks
     * Indicates whether BGP is enabled for the VPN gateway. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * true
     */
    enableBgp?: boolean;
    /**
     * @remarks
     * The timestamp when the VPN gateway expires. Unit: milliseconds.
     *
     * This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.
     *
     * @example
     * 1544666102000
     */
    endTime?: number;
    eniInstanceIds?: DescribeVpnGatewayResponseBodyEniInstanceIds;
    /**
     * @remarks
     * Type of VPN gateway:
     * - **Traditional**: Traditional-type VPN gateway, supports both IPSec and SSL.
     * - **Enhanced.SiteToSite**: Enhanced Site-to-Site VPN gateway, only supports IPSec.
     *
     * @example
     * Enhanced.SiteToSite
     */
    gatewayType?: string;
    /**
     * @remarks
     * *   If the VPN gateway supports IPsec-VPN connections in single-tunnel mode, the address is the IP address of the VPN gateway and can be used to create an IPsec-VPN connection or an SSL-VPN connection.
     *
     * *   If the VPN gateway supports IPsec-VPN connections in dual-tunnel mode, the address is the first IP address used to create an IPsec-VPN connection. The address cannot be used to create an SSL-VPN connection.
     *
     *     If the VPN gateway supports IPsec-VPN connections in dual-tunnel mode, the system assigns two IP addresses to the VPN gateway to create two encrypted tunnels.
     *
     * @example
     * 47.22.XX.XX
     */
    internetIp?: string;
    /**
     * @remarks
     * Indicates whether the IPsec-VPN feature is enabled. Valid values:
     *
     * *   **enable**
     * *   **disable**
     *
     * @example
     * enable
     */
    ipsecVpn?: string;
    /**
     * @remarks
     * The name of the VPN gateway.
     *
     * @example
     * vpngatewayname
     */
    name?: string;
    /**
     * @remarks
     * The network type of the VPN gateway.
     *
     * *   **public**
     * *   **private**
     *
     * @example
     * public
     */
    networkType?: string;
    /**
     * @remarks
     * The request ID.
     *
     * @example
     * 27E4E088-8DE0-4672-BF5C-0A412389DB9E
     */
    requestId?: string;
    /**
     * @remarks
     * The information about pending orders.
     *
     * > This set of parameters is returned only when **IncludeReservationData** is set to **true**.
     */
    reservationData?: DescribeVpnGatewayResponseBodyReservationData;
    /**
     * @remarks
     * The ID of the resource group to which the VPN gateway belongs.
     *
     * You can call the [ListResourceGroups](https://help.aliyun.com/document_detail/158855.html) operation to query resource groups.
     *
     * @example
     * rg-acfmzs372yg****
     */
    resourceGroupId?: string;
    /**
     * @remarks
     * The maximum bandwidth of the VPN gateway. Unit: Mbit/s.
     *
     * @example
     * 5
     */
    spec?: string;
    /**
     * @remarks
     * The maximum number of concurrent SSL-VPN connections.
     *
     * @example
     * 5
     */
    sslMaxConnections?: number;
    /**
     * @remarks
     * The status of the SSL-VPN feature. Valid values:
     *
     * *   **enable**
     * *   **disable**
     *
     * @example
     * enable
     */
    sslVpn?: string;
    /**
     * @remarks
     * The IP address of the SSL-VPN connection.
     *
     * This parameter is returned only when the VPN gateway is a public VPN gateway and supports only the single-tunnel mode. In addition, the VPN gateway must have the SSL-VPN feature enabled.
     *
     * @example
     * 47.74.XX.XX
     */
    sslVpnInternetIp?: string;
    /**
     * @remarks
     * The status of the VPN gateway. Valid values:
     *
     * *   **init**
     * *   **provisioning**
     * *   **active**
     * *   **updating**
     * *   **deleting**
     *
     * @example
     * init
     */
    status?: string;
    /**
     * @remarks
     * The tag that is automatically generated for the VPN gateway. The tag consists of the following parameters:
     *
     * *   **VpnEnableBgp**: indicates whether the VPN gateway supports BGP. Valid values:
     *
     *     *   **true**
     *     *   **false**
     *
     * *   **VisuallySsl**: indicates whether the VPN gateway allows you to view the connection information of SSL clients. Valid values:
     *
     *     *   **true**
     *     *   **false**
     *
     * *   **PbrPriority**: indicates whether the VPN gateway allows you to configure priorities for policy-based routes. Valid values:
     *
     *     *   **true**
     *     *   **false**
     *
     * *   **VpnNewImage**: indicates whether the VPN gateway is upgraded. Valid values:
     *
     *     *   **true**
     *     *   **false**
     *
     * *   **description**: the description of the VPN gateway. This parameter is only for internal use.
     *
     * *   **VpnVersion**: the version of the VPN gateway.
     *
     * *   **IDaaSNewVersion**: indicates whether the VPN gateway can be associated with an EIAM 2.0 instance.
     *
     *     *   **true**
     *     *   **false**
     *
     * @example
     * {\\"VpnEnableBgp\\":\\"true\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"VpnNewImage\\":\\"true\\",\\"description\\":\\"转发1.3.24\\",\\"VpnVersion\\":\\"v1.2.4\\",\\"IDaaSNewVersion\\":\\"true\\"}
     */
    tag?: string;
    tags?: DescribeVpnGatewayResponseBodyTags;
    /**
     * @remarks
     * The ID of the vSwitch to which the VPN gateway belongs.
     *
     * @example
     * vsw-bp1dmzugdikc6hdgx****
     */
    vSwitchId?: string;
    /**
     * @remarks
     * The ID of the VPC to which the VPN gateway belongs.
     *
     * @example
     * vpc-bp19m2yx1m5q0avyq****
     */
    vpcId?: string;
    /**
     * @remarks
     * The ID of the VPN gateway.
     *
     * @example
     * vpn-bp1r3v1xqkl0w519g****
     */
    vpnGatewayId?: string;
    /**
     * @remarks
     * The type of VPN gateway. Only **Normal** may be returned, which indicates a standard VPN gateway.
     *
     * @example
     * Normal
     */
    vpnType?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
