import * as $dara from '@darabonba/typescript';
export declare class ModifyVpnConnectionAttributeResponseBodyIkeConfig 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 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 on the VPC side. The default value is the IP address of the VPN gateway. The value can be an FQDN or an IP address.
     *
     * @example
     * 116.64.XX.XX
     */
    localId?: string;
    /**
     * @remarks
     * The pre-shared key.
     *
     * @example
     * pgw6dy7d1i8i****
     */
    psk?: string;
    /**
     * @remarks
     * The identifier on the data center side. The default value is the IP address of the customer gateway. The value can be a FQDN or an IP address.
     *
     * @example
     * 139.18.XX.XX
     */
    remoteId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyVpnConnectionAttributeResponseBodyIpsecConfig 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 ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelBgpConfig extends $dara.Model {
    localAsn?: number;
    localBgpIp?: string;
    peerAsn?: number;
    peerBgpIp?: string;
    tunnelCidr?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIkeConfig extends $dara.Model {
    ikeAuthAlg?: string;
    ikeEncAlg?: string;
    ikeLifetime?: number;
    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 ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIpsecConfig extends $dara.Model {
    ipsecAuthAlg?: string;
    ipsecEncAlg?: string;
    ipsecLifetime?: number;
    ipsecPfs?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptions extends $dara.Model {
    customerGatewayId?: string;
    enableDpd?: boolean;
    enableNatTraversal?: boolean;
    internetIp?: string;
    remoteCaCertificate?: string;
    role?: string;
    state?: string;
    tunnelBgpConfig?: ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelBgpConfig;
    tunnelId?: string;
    tunnelIkeConfig?: ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIkeConfig;
    tunnelIpsecConfig?: ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptionsTunnelIpsecConfig;
    zoneNo?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecification extends $dara.Model {
    tunnelOptions?: ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOptions[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyVpnConnectionAttributeResponseBodyVcoHealthCheck extends $dara.Model {
    /**
     * @remarks
     * The destination IP address.
     *
     * @example
     * 192.168.1.1
     */
    dip?: string;
    /**
     * @remarks
     * Indicates whether the health check feature is enabled for the IPsec-VPN connection.
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * true
     */
    enable?: string;
    /**
     * @remarks
     * The interval between two consecutive health checks. Unit: seconds.
     *
     * @example
     * 3
     */
    interval?: number;
    /**
     * @remarks
     * The maximum number of health check retries.
     *
     * @example
     * 3
     */
    retry?: number;
    /**
     * @remarks
     * The source IP address that is used for health checks.
     *
     * @example
     * 10.1.1.1
     */
    sip?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyVpnConnectionAttributeResponseBodyVpnBgpConfig extends $dara.Model {
    /**
     * @remarks
     * Indicates whether BGP is enabled. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * @example
     * true
     */
    enableBgp?: string;
    /**
     * @remarks
     * The ASN on the Alibaba Cloud side.
     *
     * @example
     * 65530
     */
    localAsn?: number;
    /**
     * @remarks
     * The BGP IP address on the Alibaba Cloud side.
     *
     * @example
     * 169.254.11.1
     */
    localBgpIp?: string;
    /**
     * @remarks
     * The ASN on the data center side.
     *
     * @example
     * 65531
     */
    peerAsn?: number;
    /**
     * @remarks
     * The BGP IP address of the data center.
     *
     * @example
     * 169.254.11.2
     */
    peerBgpIp?: string;
    /**
     * @remarks
     * The negotiation state of BGP. Valid values:
     *
     * *   **success**: normal
     * *   **false**: abnormal
     *
     * @example
     * success
     */
    status?: string;
    /**
     * @remarks
     * The BGP CIDR block of the IPsec-VPN connection.
     *
     * @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 ModifyVpnConnectionAttributeResponseBody extends $dara.Model {
    /**
     * @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
     * The ID of the customer gateway associated with the IPsec-VPN connection.
     *
     * This parameter is returned only for single-tunnel IPsec-VPN connections.
     *
     * @example
     * cgw-p0w2jemrcj5u61un8****
     */
    customerGatewayId?: string;
    /**
     * @remarks
     * The description of the IPsec-VPN connection.
     *
     * @example
     * description
     */
    description?: string;
    /**
     * @remarks
     * Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:
     *
     * *   **true**: IPsec negotiations immediately start after the configuration takes effect.
     * *   **false**: IPsec negotiations start when inbound traffic is detected.
     *
     * @example
     * false
     */
    effectImmediately?: boolean;
    /**
     * @remarks
     * Indicates whether the DPD feature is enabled for the IPsec-VPN connection. Valid values:
     *
     * *   **false**
     * *   **true**
     *
     * This parameter is returned only for single-tunnel IPsec-VPN connections.
     *
     * @example
     * true
     */
    enableDpd?: boolean;
    /**
     * @remarks
     * Indicates whether NAT traversal is enabled for the IPsec-VPN connection. Valid values: Valid values:
     *
     * *   **false**
     * *   **true**
     *
     * This parameter is returned only for single-tunnel IPsec-VPN connections.
     *
     * @example
     * true
     */
    enableNatTraversal?: boolean;
    /**
     * @remarks
     * Indicates whether BGP is enabled for the tunnel. Valid values:
     *
     * *   **true**
     * *   **false**
     *
     * This parameter is returned only by dual-tunnel IPsec-VPN connections.
     *
     * @example
     * true
     */
    enableTunnelsBgp?: boolean;
    /**
     * @remarks
     * The configuration of Phase 1 negotiations.
     *
     * **IkeConfig** parameters are returned only for single-tunnel IPsec-VPN connections.
     */
    ikeConfig?: ModifyVpnConnectionAttributeResponseBodyIkeConfig;
    /**
     * @remarks
     * The configuration of Phase 2 negotiations.
     *
     * **IpsecConfig** parameters are returned only for single-tunnel IPsec-VPN connections.
     */
    ipsecConfig?: ModifyVpnConnectionAttributeResponseBodyIpsecConfig;
    /**
     * @remarks
     * The CIDR block on the VPC side.
     *
     * @example
     * 10.1.1.0/24,10.1.2.0/24
     */
    localSubnet?: string;
    /**
     * @remarks
     * The name of the IPsec-VPN connection.
     *
     * @example
     * nametest
     */
    name?: string;
    /**
     * @remarks
     * The CIDR block on the data center side.
     *
     * @example
     * 10.2.1.0/24,10.2.2.0/24
     */
    remoteSubnet?: string;
    /**
     * @remarks
     * The request ID.
     *
     * @example
     * 7DB79D0C-5F27-4AB5-995B-79BE55102F90
     */
    requestId?: string;
    /**
     * @remarks
     * The ID of the resource group to which the IPsec-VPN connection belongs.
     *
     * The IPsec-VPN connection and the VPN gateway associated with the IPsec-VPN connection belong to the same resource group. You can call the [ListResourceGroups](https://help.aliyun.com/document_detail/158855.html) operation to query resource groups.
     *
     * @example
     * rg-acfmzs372yg****
     */
    resourceGroupId?: string;
    tunnelOptionsSpecification?: ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecification;
    /**
     * @remarks
     * The health check configuration.
     *
     * **VcoHealthCheck** parameters are returned only for single-tunnel IPsec-VPN connections.
     */
    vcoHealthCheck?: ModifyVpnConnectionAttributeResponseBodyVcoHealthCheck;
    /**
     * @remarks
     * The BGP configuration.
     *
     * **VpnBgpConfig** parameters are returned only for single-tunnel IPsec-VPN connections.
     */
    vpnBgpConfig?: ModifyVpnConnectionAttributeResponseBodyVpnBgpConfig;
    /**
     * @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;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
