51 lines
998 B
TypeScript
51 lines
998 B
TypeScript
|
import { APIClient } from "./ApiClient";
|
||
|
|
||
|
export interface IpConfig {
|
||
|
bridge_address: string;
|
||
|
prefix: number;
|
||
|
dhcp_range?: [string, string];
|
||
|
}
|
||
|
|
||
|
export interface NetworkInfo {
|
||
|
name: string;
|
||
|
uuid: string;
|
||
|
title?: string;
|
||
|
description?: string;
|
||
|
forward_mode: "NAT" | "Isolated";
|
||
|
device?: string;
|
||
|
dns_server?: string;
|
||
|
domain?: string;
|
||
|
ip_v4?: IpConfig;
|
||
|
ip_v6?: IpConfig;
|
||
|
}
|
||
|
|
||
|
export function NetworkURL(n: NetworkInfo, edit: boolean = false): string {
|
||
|
return `/net/${n.uuid}${edit ? "/edit" : ""}`;
|
||
|
}
|
||
|
|
||
|
export class NetworkApi {
|
||
|
/**
|
||
|
* Get the entire list of networks
|
||
|
*/
|
||
|
static async GetList(): Promise<NetworkInfo[]> {
|
||
|
return (
|
||
|
await APIClient.exec({
|
||
|
method: "GET",
|
||
|
uri: "/network/list",
|
||
|
})
|
||
|
).data;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Delete a network
|
||
|
*/
|
||
|
static async Delete(n: NetworkInfo): Promise<NetworkInfo[]> {
|
||
|
return (
|
||
|
await APIClient.exec({
|
||
|
method: "DELETE",
|
||
|
uri: `/network/${n.uuid}`,
|
||
|
})
|
||
|
).data;
|
||
|
}
|
||
|
}
|