import * as $dara from '@darabonba/typescript';
export declare class ModifyTunnelAttributeRequestTunnelOptionsSpecificationTunnelBgpConfig extends $dara.Model {
    /**
     * @remarks
     * The local autonomous system number (ASN). Valid values: **1** to **4294967295**.
     *
     * @example
     * 65530
     */
    localAsn?: number;
    /**
     * @remarks
     * The BGP IP address of the tunnel. The address needs to be an IP address within the **TunnelCidr**.
     *
     * @example
     * 169.254.11.1
     */
    localBgpIp?: string;
    /**
     * @remarks
     * The CIDR block of the tunnel.
     *
     * The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.
     *
     * >  The CIDR block of the IPsec tunnel for each IPsec-VPN connection on a VPN gateway must be unique.
     *
     * @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 ModifyTunnelAttributeRequestTunnelOptionsSpecificationTunnelIkeConfig extends $dara.Model {
    /**
     * @remarks
     * The authentication algorithm that is used in IKE Phase 1 negotiations.
     *
     *
     * <props="china">
     *
     * *   If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.
     * *   If the IPsec-VPN gateway is associated with an SSL-VPN gateway, the valid value is **sm3**.
     *
     *
     * <props="intl">
     *
     * Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.
     *
     * @example
     * sha1
     */
    ikeAuthAlg?: string;
    /**
     * @remarks
     * The encryption algorithm that is used in IKE Phase 1 negotiations.
     *
     * <props="china">
     *
     * *   If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **aes**, **aes192**, **aes256**, **des**, and **3des**.
     * *   If the IPsec-VPN gateway is associated with an SSL-VPN gateway, set the value to **sm4**.
     *
     *
     * <props="intl">
     *
     * Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.
     *
     * @example
     * aes
     */
    ikeEncAlg?: string;
    /**
     * @remarks
     * The SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0 to 86400**.
     *
     * @example
     * 86400
     */
    ikeLifetime?: number;
    /**
     * @remarks
     * The negotiation mode of IKE. Valid values:
     *
     * *   **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 key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.
     *
     * @example
     * group2
     */
    ikePfs?: string;
    /**
     * @remarks
     * The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.
     *
     * @example
     * ikev2
     */
    ikeVersion?: string;
    /**
     * @remarks
     * The tunnel identifier. The identifier can be up to 100 characters in length and cannot contain spaces. It supports fully qualified domain names (FQDNs) and IP addresses. The default value is the IP address of the tunnel.
     *
     * @example
     * 47.XX.XX.87
     */
    localId?: string;
    /**
     * @remarks
     * The pre-shared key that is used to verify identities between the tunnel and peer.
     *
     * *   The key must be 1 to 100 characters in length, and can contain digits, and letters. It cannot contain spaces. ``~!`@#$%^&*()_-+={}[]|;:\\",.<>/?``
     * *   If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the key. You can call the [DescribeVpnConnection](https://help.aliyun.com/document_detail/120374.html) operation to query the pre-shared key that is automatically generated by the system.
     *
     * >  The pre-shared key that is configured for the tunnel and the tunnel peer must be the same. Otherwise, the system cannot establish the tunnel.
     *
     * @example
     * 123456****
     */
    psk?: string;
    /**
     * @remarks
     * The peer identifier. The identifier can be up to 100 characters in length, and cannot contain spaces. It supports FQDNs and IP addresses. The default identifier is the IP address of the customer gateway associated with the tunnel.
     *
     * @example
     * 47.XX.XX.207
     */
    remoteId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyTunnelAttributeRequestTunnelOptionsSpecificationTunnelIpsecConfig extends $dara.Model {
    /**
     * @remarks
     * The authentication algorithm that is used in IPsec Phase 2 negotiations.
     *
     * <props="china">
     *
     * *   If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.
     * *   If the IPsec-VPN gateway is associated with an SSL-VPN gateway, set the value to **sm3**.
     *
     *
     *
     * <props="intl">
     *
     * Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.
     *
     * @example
     * sha1
     */
    ipsecAuthAlg?: string;
    /**
     * @remarks
     * The encryption algorithm that is used in IPsec Phase 2 negotiations.
     *
     * <props="china">
     *
     * *   If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **aes**, **aes192**, **aes256**, **des**, and **3des**.
     * *   If the IPsec connection is attached to a VPN gateway that uses an SM certificate, set the value to **sm4**.
     *
     *
     *
     * <props="intl">
     *
     * Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.
     *
     * @example
     * aes
     */
    ipsecEncAlg?: string;
    /**
     * @remarks
     * The SA lifetime as a result of Phase 2 negotiations. Unit: seconds Valid values: **0 to 86400**.
     *
     * @example
     * 86400
     */
    ipsecLifetime?: number;
    /**
     * @remarks
     * The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.
     *
     * @example
     * group2
     */
    ipsecPfs?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyTunnelAttributeRequestTunnelOptionsSpecification extends $dara.Model {
    /**
     * @remarks
     * The ID of the customer gateway associated with the tunnel.
     *
     * @example
     * cgw-1nmwbpgrp7ssqm1yn****
     */
    customerGatewayId?: string;
    /**
     * @remarks
     * Specifies whether to enable dead peer detection (DPD). Valid values:
     *
     * *   **true** The IPsec initiator sends DPD packets to check the IPsec peer is alive. If no response is received from the peer within a specified period of time, the IPsec peer is considered disconnected. Then, the ISAKMP SA, IPsec SA, and IPsec tunnel are deleted.
     * *   **false**: DPD is disabled. The IPsec initiator does not send DPD packets.
     *
     * @example
     * true
     */
    enableDpd?: boolean;
    /**
     * @remarks
     * Specifies whether to enable NAT traversal. Valid values:
     *
     * *   **true**: enables NAT traversal. 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-VPN tunnel.
     * *   **false**: disables NAT traversal.
     *
     * @example
     * true
     */
    enableNatTraversal?: boolean;
    /**
     * @remarks
     * The peer certificate authority (CA) certificate when you want to attach the IPsec connection to a virtual private network (VPN) gateway that uses a ShangMi (SM) certificate.
     *
     * @example
     * -----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----
     */
    remoteCaCertificate?: string;
    /**
     * @remarks
     * The Border Gateway Protocol (BGP) configurations of the tunnel.
     *
     * If the BGP feature is not enabled for the tunnel, you must call the [ModifyVpnConnectionAttribute](https://help.aliyun.com/document_detail/120381.html) operation to enable the feature and configure BGP.
     */
    tunnelBgpConfig?: ModifyTunnelAttributeRequestTunnelOptionsSpecificationTunnelBgpConfig;
    /**
     * @remarks
     * The configurations of IKE Phase 1.
     */
    tunnelIkeConfig?: ModifyTunnelAttributeRequestTunnelOptionsSpecificationTunnelIkeConfig;
    /**
     * @remarks
     * The configurations of IPsec Phase 2.
     */
    tunnelIpsecConfig?: ModifyTunnelAttributeRequestTunnelOptionsSpecificationTunnelIpsecConfig;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ModifyTunnelAttributeRequest extends $dara.Model {
    /**
     * @remarks
     * The client token that is used to ensure the idempotence of the request.
     *
     * You can use the client to generate a token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
     *
     * >  If you do not specify this parameter, the system automatically uses the value of **RequestId** as the **client token**. The value of **RequestId** is different for each API request.
     *
     * @example
     * 02fb3da4-130e-11e9-8e44-0016e04115b
     */
    clientToken?: string;
    ownerAccount?: string;
    ownerId?: number;
    /**
     * @remarks
     * The ID of the region in which the IPsec connection is established.
     *
     * You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region ID.
     *
     * @example
     * cn-hangzhou
     */
    regionId?: string;
    resourceOwnerAccount?: string;
    resourceOwnerId?: number;
    /**
     * @remarks
     * The tunnel ID.
     *
     * This parameter is required.
     *
     * @example
     * tun-gbyz2e070xzo93****
     */
    tunnelId?: string;
    /**
     * @remarks
     * The tunnel configurations.
     */
    tunnelOptionsSpecification?: ModifyTunnelAttributeRequestTunnelOptionsSpecification;
    /**
     * @remarks
     * The ID of the IPsec connection.
     *
     * This parameter is required.
     *
     * @example
     * vco-gw69vm1i71y354****
     */
    vpnConnectionId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
