import * as $dara from '@darabonba/typescript';
export declare class DescribeVpnConnectionResponseBodyIkeConfig extends $dara.Model {
    /**
     * @remarks
     * The authentication algorithm in the IKE phase.
     *
     * @example
     * sha1
     */
    ikeAuthAlg?: string;
    /**
     * @remarks
     * The encryption algorithm in the IKE phase.
     *
     * @example
     * aes
     */
    ikeEncAlg?: string;
    /**
     * @remarks
     * The lifetime in the IKE phase. Unit: seconds.
     *
     * @example
     * 86400
     */
    ikeLifetime?: number;
    /**
     * @remarks
     * The IKE negotiation mode.
     *
     * *   **main**: This mode offers higher security during negotiations.
     * *   **aggressive**: This mode is faster and has a higher success rate.
     *
     * @example
     * main
     */
    ikeMode?: string;
    /**
     * @remarks
     * The Diffie-Hellman (DH) group in the IKE phase.
     *
     * @example
     * group2
     */
    ikePfs?: string;
    /**
     * @remarks
     * The version of the IKE protocol.
     *
     * *   **ikev1**
     * *   **ikev2**
     *
     * Compared with IKEv1, IKEv2 simplifies the SA negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.
     *
     * @example
     * ikev1
     */
    ikeVersion?: string;
    /**
     * @remarks
     * The identifier of the IPsec-VPN connection on the Alibaba Cloud side.
     *
     * @example
     * 116.28.XX.XX
     */
    localId?: string;
    /**
     * @remarks
     * The pre-shared key.
     *
     * @example
     * pgw6dy****
     */
    psk?: string;
    /**
     * @remarks
     * The identifier of the IPsec-VPN connection on the data center side.
     *
     * @example
     * 139.34.XX.XX
     */
    remoteId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyIpsecConfig extends $dara.Model {
    /**
     * @remarks
     * The authentication algorithm in the IPsec phase.
     *
     * @example
     * sha1
     */
    ipsecAuthAlg?: string;
    /**
     * @remarks
     * The encryption algorithm in the IPsec phase.
     *
     * @example
     * aes
     */
    ipsecEncAlg?: string;
    /**
     * @remarks
     * The lifetime in the IPsec phase. Unit: seconds.
     *
     * @example
     * 86400
     */
    ipsecLifetime?: number;
    /**
     * @remarks
     * The DH group in the IPsec phase.
     *
     * @example
     * group2
     */
    ipsecPfs?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTagsTag extends $dara.Model {
    key?: string;
    value?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTags extends $dara.Model {
    tag?: DescribeVpnConnectionResponseBodyTagsTag[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelBgpConfig extends $dara.Model {
    bgpStatus?: string;
    localAsn?: string;
    localBgpIp?: string;
    peerAsn?: string;
    peerBgpIp?: string;
    tunnelCidr?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIkeConfig extends $dara.Model {
    ikeAuthAlg?: string;
    ikeEncAlg?: string;
    ikeLifetime?: string;
    ikeMode?: string;
    ikePfs?: string;
    ikeVersion?: string;
    localId?: string;
    psk?: string;
    remoteId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIpsecConfig extends $dara.Model {
    ipsecAuthAlg?: string;
    ipsecEncAlg?: string;
    ipsecLifetime?: string;
    ipsecPfs?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptions extends $dara.Model {
    customerGatewayId?: string;
    enableDpd?: string;
    enableNatTraversal?: string;
    internetIp?: string;
    remoteCaCertificate?: string;
    role?: string;
    state?: string;
    status?: string;
    tunnelBgpConfig?: DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelBgpConfig;
    tunnelId?: string;
    tunnelIkeConfig?: DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIkeConfig;
    tunnelIndex?: number;
    tunnelIpsecConfig?: DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIpsecConfig;
    zoneNo?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyTunnelOptionsSpecification extends $dara.Model {
    tunnelOptions?: DescribeVpnConnectionResponseBodyTunnelOptionsSpecificationTunnelOptions[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyVcoHealthCheck extends $dara.Model {
    /**
     * @remarks
     * The destination IP address.
     *
     * @example
     * 10.0.0.1
     */
    dip?: string;
    /**
     * @remarks
     * Indicates whether the health check feature is enabled for the IPsec-VPN connection. Valid values:
     *
     * *   **false**
     * *   **true**
     *
     * @example
     * true
     */
    enable?: string;
    /**
     * @remarks
     * The interval between two consecutive health checks. Unit: seconds.
     *
     * @example
     * 3
     */
    interval?: number;
    /**
     * @remarks
     * Indicates whether advertised routes are withdrawn when the health check fails. Valid values:
     *
     * *   **revoke_route**: Advertised routes are withdrawn.
     * *   **reserve_route**: Advertised routes are not withdrawn.
     *
     * @example
     * revoke_route
     */
    policy?: string;
    /**
     * @remarks
     * The maximum number of health check retries.
     *
     * @example
     * 3
     */
    retry?: number;
    /**
     * @remarks
     * The source IP address.
     *
     * @example
     * 192.168.1.1
     */
    sip?: string;
    /**
     * @remarks
     * The state of the health check. Valid values:
     *
     * *   **failed**
     * *   **success**: normal
     *
     * @example
     * failed
     */
    status?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBodyVpnBgpConfig extends $dara.Model {
    /**
     * @remarks
     * The authentication key of the BGP routing protocol.
     *
     * @example
     * AuthKey****
     */
    authKey?: string;
    /**
     * @remarks
     * Indicates whether BGP is enabled. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * true
     */
    enableBgp?: string;
    /**
     * @remarks
     * The ASN on the Alibaba Cloud side.
     *
     * @example
     * 65531
     */
    localAsn?: number;
    /**
     * @remarks
     * The BGP IP address on the Alibaba Cloud side.
     *
     * @example
     * 169.254.11.2
     */
    localBgpIp?: string;
    /**
     * @remarks
     * The autonomous system number (ASN) of the peer.
     *
     * @example
     * 65530
     */
    peerAsn?: number;
    /**
     * @remarks
     * The BGP IP address of the peer.
     *
     * @example
     * 169.254.11.1
     */
    peerBgpIp?: string;
    /**
     * @remarks
     * The negotiation state of the BGP routing protocol. Valid values:
     *
     * *   **success**: normal
     * *   **failed**
     *
     * @example
     * success
     */
    status?: string;
    /**
     * @remarks
     * The BGP CIDR block of the IPsec-VPN connection. The CIDR block falls within 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
     *
     * @example
     * 169.254.11.0/30
     */
    tunnelCidr?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeVpnConnectionResponseBody extends $dara.Model {
    /**
     * @remarks
     * The ID of the CEN instance to which the transit router belongs.
     *
     * @example
     * cen-lxxpbpalc776qz****
     */
    attachInstanceId?: string;
    /**
     * @remarks
     * The type of the resource that is associated with the IPsec-VPN connection. Valid values:
     *
     * *   **CEN**: indicates that the IPsec-VPN connection is associated with a transit router of a Cloud Enterprise Network (CEN) instance.
     * *   **NO_ASSOCIATED**: indicates that the IPsec-VPN connection is not associated with any resource.
     * *   **VPNGW**: indicates that the IPsec-VPN connection is associated with a VPN gateway.
     *
     * @example
     * CEN
     */
    attachType?: string;
    /**
     * @remarks
     * The timestamp generated when the IPsec-VPN connection was established. 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
     * 1492753817000
     */
    createTime?: number;
    /**
     * @remarks
     * Indicates whether the IPsec-VPN connection is associated with a transit router that belongs to another Alibaba Cloud account. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * false
     */
    crossAccountAuthorized?: boolean;
    /**
     * @remarks
     * The ID of the customer gateway associated with the IPsec-VPN connection.
     *
     * @example
     * cgw-bp1mvj4g9kogwwcxk****
     */
    customerGatewayId?: string;
    /**
     * @remarks
     * Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:
     *
     * *   **true**: Negotiations are reinitiated after the configuration is changed.
     * *   **false**: Negotiations are reinitiated after traffic is detected.
     *
     * @example
     * true
     */
    effectImmediately?: boolean;
    /**
     * @remarks
     * Indicates whether the dead peer detection (DPD) feature is enabled for the IPsec-VPN connection. Valid values:
     *
     * *   **false**
     * *   **true**
     *
     * After you enable the DPD feature, the initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no response is received from the peer within a specified period of time, the connection fails. Then, the ISAKMP security association (SA), IPsec SA, and IPsec tunnel are deleted.
     *
     * @example
     * true
     */
    enableDpd?: boolean;
    /**
     * @remarks
     * Indicates whether NAT traversal is enabled for the IPsec-VPN connection. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec tunnel.
     *
     * @example
     * true
     */
    enableNatTraversal?: boolean;
    /**
     * @remarks
     * Indicates whether BGP is enabled for the tunnel. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * true
     */
    enableTunnelsBgp?: boolean;
    /**
     * @remarks
     * The configuration of Phase 1 negotiations.
     */
    ikeConfig?: DescribeVpnConnectionResponseBodyIkeConfig;
    /**
     * @remarks
     * The gateway IP address of the IPsec-VPN connection.
     *
     * @example
     * 47.XX.XX.162
     */
    internetIp?: string;
    /**
     * @remarks
     * The configuration of Phase 2 negotiations.
     */
    ipsecConfig?: DescribeVpnConnectionResponseBodyIpsecConfig;
    /**
     * @remarks
     * The CIDR block on the Alibaba Cloud side.
     *
     * Multiple CIDR blocks are separated by commas (,).
     *
     * @example
     * 10.0.0.0/8
     */
    localSubnet?: string;
    /**
     * @remarks
     * The name of the IPsec-VPN connection.
     *
     * @example
     * ipsec1
     */
    name?: string;
    /**
     * @remarks
     * The network type of the IPsec-VPN connection. Valid values:
     *
     * *   **public**: an encrypted connection over the Internet
     * *   **private**: an encrypted connection over private networks
     *
     * @example
     * public
     */
    networkType?: string;
    /**
     * @remarks
     * The certificate authority (CA) certificate of the peer.
     *
     * @example
     * -----BEGIN CERTIFICATE----- MIIB7zCCAZW****
     */
    remoteCaCertificate?: string;
    /**
     * @remarks
     * The CIDR block on the data center side.
     *
     * Multiple CIDR blocks are separated by commas (,).
     *
     * @example
     * 192.168.0.0/16
     */
    remoteSubnet?: string;
    /**
     * @remarks
     * The request ID.
     *
     * @example
     * F2310D45-BCF6-4E2E-9082-B4503844BA4C
     */
    requestId?: string;
    /**
     * @remarks
     * The ID of the resource group to which the IPsec-VPN connection belongs.
     *
     * You can call the [ListResourceGroups](https://help.aliyun.com/document_detail/158855.html) operation to query the resource group information.
     *
     * @example
     * rg-acfmzs372yg****
     */
    resourceGroupId?: string;
    /**
     * @remarks
     * The bandwidth specification of the IPsec-VPN connection. Unit: **Mbit/s**.
     *
     * @example
     * 1000M
     */
    spec?: string;
    /**
     * @remarks
     * The association state of the IPsec-VPN connection. Valid values:
     *
     * *   **active**: The IPsec-VPN connection is associated with a VPN gateway.
     * *   **init**: The IPsec-VPN connection is not associated with any resource and is being initialized.
     * *   **attaching**: The IPsec-VPN connection is being associated with a transit router.
     * *   **attached**: The IPsec-VPN connection is associated with a transit router.
     * *   **detaching**: The IPsec-VPN connection is being disassociated from a transit router.
     * *   **financialLocked**: The IPsec-VPN connection is locked due to overdue payments.
     * *   **provisioning**: The IPsec-VPN connection is being prepared.
     * *   **updating**: The IPsec-VPN connection is being updated.
     * *   **Upgrading**: The IPsec-VPN connection is being upgraded.
     * *   **deleted**: The IPsec-VPN connection is deleted.
     *
     * @example
     * attached
     */
    state?: string;
    /**
     * @remarks
     * The state of the IPsec-VPN connection. Valid values:
     *
     * *   **ike_sa_not_established**: Phase 1 negotiations failed.
     * *   **ike_sa_established**: Phase 1 negotiations succeeded.
     * *   **ipsec_sa_not_established**: Phase 2 negotiations failed.
     * *   **ipsec_sa_established**: Phase 2 negotiations succeeded.
     *
     * @example
     * ike_sa_not_established
     */
    status?: string;
    tags?: DescribeVpnConnectionResponseBodyTags;
    /**
     * @remarks
     * The ID of the transit router with which the IPsec-VPN connection is associated.
     *
     * @example
     * tr-p0we2edef9qr44a85****
     */
    transitRouterId?: string;
    /**
     * @remarks
     * The name of the transit router.
     *
     * @example
     * nametest
     */
    transitRouterName?: string;
    tunnelBandwidth?: string;
    tunnelOptionsSpecification?: DescribeVpnConnectionResponseBodyTunnelOptionsSpecification;
    /**
     * @remarks
     * The health check information about the IPsec-VPN connection.
     */
    vcoHealthCheck?: DescribeVpnConnectionResponseBodyVcoHealthCheck;
    /**
     * @remarks
     * The Border Gateway Protocol (BGP) configuration of the IPsec-VPN connection.
     */
    vpnBgpConfig?: DescribeVpnConnectionResponseBodyVpnBgpConfig;
    /**
     * @remarks
     * The ID of the IPsec-VPN connection.
     *
     * @example
     * vco-bp1bbi27hojx80nck****
     */
    vpnConnectionId?: string;
    /**
     * @remarks
     * The ID of the VPN gateway.
     *
     * @example
     * vpn-bp1q8bgx4xnkm2ogj****
     */
    vpnGatewayId?: string;
    /**
     * @remarks
     * The ID of the zone where the IPsec-VPN connection is deployed.
     *
     * You can call [DescribeZones](https://help.aliyun.com/document_detail/36064.html) to query zone IDs and mapping between zone IDs and zone names.
     *
     * @example
     * cn-hangzhou-h
     */
    zoneNo?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
