141 lines
3.9 KiB
TypeScript
141 lines
3.9 KiB
TypeScript
export interface PangolinSite {
|
|
siteId: string;
|
|
name: string;
|
|
orgId: string;
|
|
niceId: string;
|
|
pubKey?: string;
|
|
subnet?: string;
|
|
megabytesIn?: number;
|
|
megabytesOut?: number;
|
|
lastSeen?: string;
|
|
online?: boolean;
|
|
type?: string;
|
|
}
|
|
export interface PangolinExitNode {
|
|
exitNodeId: string;
|
|
name: string;
|
|
location?: string;
|
|
region?: string;
|
|
online: boolean;
|
|
capacity?: number;
|
|
latency?: number;
|
|
}
|
|
export interface PangolinResource {
|
|
resourceId: string;
|
|
siteId: string;
|
|
orgId: string;
|
|
name: string;
|
|
subdomain?: string;
|
|
fullDomain?: string;
|
|
ssl?: boolean;
|
|
blockAccess?: boolean;
|
|
active?: boolean;
|
|
proxyPort?: number;
|
|
protocol?: string;
|
|
domainBindings?: string[];
|
|
}
|
|
export interface PangolinNewt {
|
|
newtId: string;
|
|
secret: string;
|
|
siteId: string;
|
|
}
|
|
export interface CreateSitePayload {
|
|
name: string;
|
|
type?: string;
|
|
subnet?: string;
|
|
exitNodeId?: string;
|
|
}
|
|
export interface CreateHttpResourcePayload {
|
|
name: string;
|
|
type: 'http';
|
|
domainId: string;
|
|
subdomain?: string;
|
|
http?: boolean;
|
|
ssl?: boolean;
|
|
enabled?: boolean;
|
|
}
|
|
export interface CreateRawResourcePayload {
|
|
name: string;
|
|
type: 'tcp' | 'udp';
|
|
proxyPort: number;
|
|
stickySession?: boolean;
|
|
enabled?: boolean;
|
|
}
|
|
export type CreateResourcePayload = CreateHttpResourcePayload | CreateRawResourcePayload;
|
|
export interface CreateTargetPayload {
|
|
method: 'http' | 'https';
|
|
host: string;
|
|
port: number;
|
|
}
|
|
export interface PangolinDomain {
|
|
domainId: string;
|
|
baseDomain: string;
|
|
verified: boolean;
|
|
type?: string;
|
|
failed?: boolean;
|
|
configManaged?: boolean;
|
|
}
|
|
export interface UpdateResourcePayload {
|
|
name?: string;
|
|
subdomain?: string;
|
|
fullDomain?: string;
|
|
ssl?: boolean;
|
|
active?: boolean;
|
|
blockAccess?: boolean;
|
|
proxyPort?: number;
|
|
protocol?: string;
|
|
domainBindings?: string[];
|
|
}
|
|
export interface PangolinCertificate {
|
|
certId: string;
|
|
domainId: string;
|
|
domain: string;
|
|
status: 'PENDING' | 'ACTIVE' | 'EXPIRED' | 'FAILED';
|
|
issuedAt?: string;
|
|
expiresAt?: string;
|
|
autoRenew?: boolean;
|
|
issuer?: string;
|
|
}
|
|
export interface UpdateCertificatePayload {
|
|
autoRenew?: boolean;
|
|
}
|
|
export interface PangolinConnectedClient {
|
|
clientId: string;
|
|
resourceId: string;
|
|
ipAddress: string;
|
|
connectedAt: string;
|
|
lastSeen: string;
|
|
bytesIn: number;
|
|
bytesOut: number;
|
|
online: boolean;
|
|
}
|
|
declare class PangolinClient {
|
|
private get baseUrl();
|
|
private get apiKey();
|
|
private get orgId();
|
|
get configured(): boolean;
|
|
private request;
|
|
healthCheck(): Promise<boolean>;
|
|
listSites(): Promise<PangolinSite[]>;
|
|
listExitNodes(): Promise<PangolinExitNode[]>;
|
|
getSite(siteId: string): Promise<PangolinSite>;
|
|
createSite(data: CreateSitePayload): Promise<PangolinSite & {
|
|
newt?: PangolinNewt;
|
|
}>;
|
|
deleteSite(siteId: string): Promise<void>;
|
|
listResources(): Promise<PangolinResource[]>;
|
|
getResource(resourceId: string): Promise<PangolinResource>;
|
|
createResource(data: CreateResourcePayload): Promise<PangolinResource>;
|
|
updateResource(resourceId: string, data: UpdateResourcePayload): Promise<PangolinResource>;
|
|
deleteResource(resourceId: string): Promise<void>;
|
|
createTarget(resourceId: string, data: CreateTargetPayload): Promise<unknown>;
|
|
listDomains(): Promise<PangolinDomain[]>;
|
|
listResourcesForSite(siteId: string): Promise<PangolinResource[]>;
|
|
getResourceByNiceId(siteId: string, niceId: string): Promise<PangolinResource>;
|
|
getCertificate(domainId: string, domain: string): Promise<PangolinCertificate>;
|
|
updateCertificate(certId: string, data: UpdateCertificatePayload): Promise<PangolinCertificate>;
|
|
listClients(siteResourceId: string): Promise<PangolinConnectedClient[]>;
|
|
}
|
|
export declare const pangolinClient: PangolinClient;
|
|
export {};
|
|
//# sourceMappingURL=pangolin.client.d.ts.map
|