/**
 * VpnConnections service.
 * @version 4.0.1
 * @class VpnConnectionsApi
 */
export class VpnConnectionsApi {
    /**
    * Make the default {@link ApiClient} class available for developers to be able to extend it and bring
    * their own fetch methods into the SDK
    */
    static get ApiClient(): typeof ApiClient;
    /**
     * Constructs a new VpnConnectionsApi.
     * @alias module:api/VpnConnectionsApi
     * @class
     * @param {module:ApiClient} [apiClient] Optional API client implementation to use,
     * default to {@link module:ApiClient#instance} if unspecified.
     */
    constructor(apiClient?: any);
    apiClient: any;
    /**
     * Create a VPN connection
     * Create VPN connection.
     * @param { Required<Pick<VpnConnection, 'name' | 'localGatewayReference' | 'remoteGatewayReference' | 'ipsecConfig' | 'localGatewayRole'>> & Partial<VpnConnection> } body specification
     * @param {Object} args Additional Arguments
     * @return {Promise<ConfigTaskReferenceApiResponse>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link ConfigTaskReferenceApiResponse } and HTTP response
     */
    createVpnConnection(body: Required<Pick<VpnConnection, 'name' | 'localGatewayReference' | 'remoteGatewayReference' | 'ipsecConfig' | 'localGatewayRole'>> & Partial<VpnConnection>, ...args: any): Promise<ConfigTaskReferenceApiResponse>;
    /**
     * Delete VPN connection
     * Delete VPN connection request body
     * @param { String } extId VPN connection UUID
     * @param {Object} args Additional Arguments
     * @return {Promise<ConfigTaskReferenceApiResponse>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link ConfigTaskReferenceApiResponse } and HTTP response
     */
    deleteVpnConnectionById(extId: string, ...args: any): Promise<ConfigTaskReferenceApiResponse>;
    /**
     * Get third-party VPN appliance configuration.
     * Get third-party VPN appliance configuration.
     * @param { String } vpnConnectionExtId VPN connection UUID.
     * @param { String } extId Third-party VPN appliance UUID
     * @param {Object} args Additional Arguments
     * @return {Promise<String>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link String } and HTTP response
     */
    getVpnApplianceForVpnConnectionById(vpnConnectionExtId: string, extId: string, ...args: any): Promise<string>;
    /**
     * Get VPN connection
     * Get VPN connection for a specified ExtId.
     * @param { String } extId VPN connection UUID
     * @param {Object} args Additional Arguments
     * @return {Promise<GetVpnConnectionApiResponse>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link GetVpnConnectionApiResponse } and HTTP response
     */
    getVpnConnectionById(extId: string, ...args: any): Promise<GetVpnConnectionApiResponse>;
    /**
     * List of third-party VPN appliances for which configurations are available to download.
     * List third-party VPN appliances for which configurations are available to download.
     * @param { String } vpnConnectionExtId VPN connection UUID.
     * @param {Object} opts Optional parameters defined for the operation
     * @param { Number } opts.$page A URL query parameter that specifies the page number of the result set. It must be a positive integer between 0 and the maximum number of pages that are available for that resource. Any number out of this range might lead to no results.

     * @param { Number } opts.$limit A URL query parameter that specifies the total number of records returned in the result set.  Must be a positive integer between 1 and 100. Any number out of this range will lead to a validation error. If the limit is not provided, a default value of 50 records will be returned in the result set.

     * @param { String } opts.$filter A URL query parameter that allows clients to filter a collection of resources. The expression specified with $filter is evaluated for each resource in the collection, and only items where the expression evaluates to true are included in the response. Expression specified with the $filter must conform to the [OData V4.01](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html) URL conventions.<br>
     * For example, filter '$filter=name eq 'karbon-ntnx-1.0' would filter the result on cluster name 'karbon-ntnx1.0', filter '$filter=startswith(name, 'C')' would filter on cluster name starting with 'C'.<br>
     * The filter can be applied to the following fields:<br>
     * - name
     * @param { String } opts.$orderby A URL query parameter that allows clients to specify the sort criteria for the returned list of objects. Resources can be sorted in ascending order using asc or descending order using desc. If asc or desc are not specified, the resources will be sorted in ascending order by default. For example, '$orderby=templateName desc' would get all templates sorted by templateName in descending order.<br>
     * The orderby can be applied to the following fields:<br>
     * - name
     * @param {Object} args Additional Arguments
     * @return {Promise<ListVpnVendorConfigsApiResponse>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link ListVpnVendorConfigsApiResponse } and HTTP response
     */
    listVpnAppliancesByVpnConnectionId(vpnConnectionExtId: string, opts: {
        $page: number;
        $limit: number;
        $filter: string;
        $orderby: string;
    }, ...args: any): Promise<ListVpnVendorConfigsApiResponse>;
    /**
     * List the VPN connections
     * List the VPN connections.
     * @param {Object} opts Optional parameters defined for the operation
     * @param { Number } opts.$page A URL query parameter that specifies the page number of the result set. It must be a positive integer between 0 and the maximum number of pages that are available for that resource. Any number out of this range might lead to no results.

     * @param { Number } opts.$limit A URL query parameter that specifies the total number of records returned in the result set.  Must be a positive integer between 1 and 100. Any number out of this range will lead to a validation error. If the limit is not provided, a default value of 50 records will be returned in the result set.

     * @param { String } opts.$filter A URL query parameter that allows clients to filter a collection of resources. The expression specified with $filter is evaluated for each resource in the collection, and only items where the expression evaluates to true are included in the response. Expression specified with the $filter must conform to the [OData V4.01](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html) URL conventions.<br>
     * For example, filter '$filter=name eq 'karbon-ntnx-1.0' would filter the result on cluster name 'karbon-ntnx1.0', filter '$filter=startswith(name, 'C')' would filter on cluster name starting with 'C'.<br>
     * The filter can be applied to the following fields:<br>
     * - dynamicRoutePriority<br>
     * - localGatewayReference<br>
     * - name<br>
     * - remoteGatewayReference
     * @param { String } opts.$orderby A URL query parameter that allows clients to specify the sort criteria for the returned list of objects. Resources can be sorted in ascending order using asc or descending order using desc. If asc or desc are not specified, the resources will be sorted in ascending order by default. For example, '$orderby=templateName desc' would get all templates sorted by templateName in descending order.<br>
     * The orderby can be applied to the following fields:<br>
     * - dynamicRoutePriority<br>
     * - name
     * @param {Object} args Additional Arguments
     * @return {Promise<ListVpnConnectionsApiResponse>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link ListVpnConnectionsApiResponse } and HTTP response
     */
    listVpnConnections(opts: {
        $page: number;
        $limit: number;
        $filter: string;
        $orderby: string;
    }, ...args: any): Promise<ListVpnConnectionsApiResponse>;
    /**
     * Update VPN connection
     * Update VPN connection.
     * @param { Required<Pick<VpnConnection, 'name' | 'localGatewayReference' | 'remoteGatewayReference' | 'ipsecConfig' | 'localGatewayRole'>> & Partial<VpnConnection> } body specification
     * @param { String } extId VPN connection UUID
     * @param {Object} args Additional Arguments
     * @return {Promise<ConfigTaskReferenceApiResponse>} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link ConfigTaskReferenceApiResponse } and HTTP response
     */
    updateVpnConnectionById(extId: string, body: Required<Pick<VpnConnection, 'name' | 'localGatewayReference' | 'remoteGatewayReference' | 'ipsecConfig' | 'localGatewayRole'>> & Partial<VpnConnection>, ...args: any): Promise<ConfigTaskReferenceApiResponse>;
    #private;
}
import VpnConnection from "../models/networking/v4/config/VpnConnection";
import ConfigTaskReferenceApiResponse from "../models/networking/v4/config/TaskReferenceApiResponse";
import GetVpnConnectionApiResponse from "../models/networking/v4/config/GetVpnConnectionApiResponse";
import ListVpnVendorConfigsApiResponse from "../models/networking/v4/config/ListVpnVendorConfigsApiResponse";
import ListVpnConnectionsApiResponse from "../models/networking/v4/config/ListVpnConnectionsApiResponse";
import { ApiClient } from "../ApiClient";
