UNPKG

@mytmpvpn/mytmpvpn-client

Version:

MyTmpVpn Client Library

91 lines (90 loc) 3.79 kB
import { type Axios } from 'axios'; import type * as auth from 'amazon-cognito-identity-js'; import { type Vpn, VpnState, type VpnConfig, type VpnMetrics, VpnConfigLimits } from '@mytmpvpn/mytmpvpn-common/models/vpn'; import { type PeanutsPack } from '@mytmpvpn/mytmpvpn-common/models/peanuts'; export type GetVpnConfigLimitsResponse = VpnConfigLimits; export type ListVpnsResponse = Vpn[]; export interface DeleteVpnResponse { vpn: { href: string; id: string; }; } export interface CreateVpnResponse { vpn: { href: string; id: string; }; } export interface GetVpnResponse { vpn: Vpn; metrics: VpnMetrics; } export interface RegionInfo { name: string; city: string; country: string; cctld: string; } export type GetVpnConfigResponse = string; export type ListRegionsResponse = string[]; export type ListRegionsDetailedResponse = RegionInfo[]; export type ListVpnsPagingParams = { pageSize: Number; nextPageToken: string | undefined; }; export type ListVpnsPaginatedResponse = { totalVpns: number; totalPages: number; vpns: Vpn[]; nextPageToken: string | undefined; }; export type GetPeanutsPackResponse = PeanutsPack[]; export type GetPeanutsBalanceResponse = number; export declare abstract class MyTmpVpnClient { private session?; private user?; getUser(): auth.CognitoUser | undefined; getSession(): auth.CognitoUserSession | undefined; setUserSession(user: auth.CognitoUser, session: auth.CognitoUserSession): void; abstract listRegions(): Promise<ListRegionsResponse>; abstract listRegionsDetailed(): Promise<ListRegionsDetailedResponse>; abstract listPeanutsPacks(): Promise<GetPeanutsPackResponse>; abstract getPeanutsBalance(): Promise<GetPeanutsBalanceResponse>; abstract getVpnConfigLimits(): Promise<VpnConfigLimits>; abstract createVpn(region: string, vpnConfig: VpnConfig): Promise<Vpn>; abstract deleteVpn(vpnId: string): Promise<GetVpnResponse>; abstract getVpn(vpnId: string): Promise<GetVpnResponse>; abstract getVpnConfig(vpnId: string): Promise<GetVpnConfigResponse>; abstract getVpnQrConfig(vpnId: string): Promise<GetVpnConfigResponse>; abstract listVpnsPaginated(pagingParams: ListVpnsPagingParams): Promise<ListVpnsPaginatedResponse>; listVpns(pageSize?: number): Promise<Vpn[]>; createVpnSync(region: string, config: VpnConfig, timeout_s?: number): Promise<Vpn>; waitUntilVpnStateIs(vpnId: string, state: VpnState, timeoutInSeconds?: number): Promise<Vpn>; waitAndDeleteVpn(vpnId: string): Promise<GetVpnResponse | undefined>; waitAndDeleteVpnSync(vpnId: string, timeout_s?: number): Promise<Vpn>; waitAndDeleteAll(vpnIds: string[], timeout_s?: number): Promise<(GetVpnResponse | undefined)[]>; waitAndDeleteAllSync(vpnIds: string[], timeout_s?: number): Promise<Vpn[]>; } export declare class MyTmpVpnClientImpl extends MyTmpVpnClient { ax: Axios; constructor(apiUrl: string); getDefaultAuthorizationHeaders(): { Accept: string; Authorization: string; }; getDefaultNonAuthorizationHeaders(): { Accept: string; }; getVpnConfigLimits(): Promise<VpnConfigLimits>; listVpnsPaginated(pagingParams: ListVpnsPagingParams): Promise<ListVpnsPaginatedResponse>; deleteVpn(vpnId: string): Promise<GetVpnResponse>; createVpn(region: string, config: VpnConfig): Promise<Vpn>; getVpn(vpnId: string): Promise<GetVpnResponse>; getVpnConfig(vpnId: string): Promise<string>; getVpnQrConfig(vpnId: string): Promise<string>; listRegions(): Promise<ListRegionsResponse>; listRegionsDetailed(): Promise<RegionInfo[]>; listPeanutsPacks(): Promise<PeanutsPack[]>; getPeanutsBalance(): Promise<number>; }