89 lines
1.8 KiB
TypeScript
89 lines
1.8 KiB
TypeScript
|
|
||
|
type ServerAllocation = {
|
||
|
ip: string,
|
||
|
port: number,
|
||
|
};
|
||
|
|
||
|
type ServerLimits = {
|
||
|
memory: number,
|
||
|
swap: number,
|
||
|
disk: number,
|
||
|
io: number,
|
||
|
cpu: number,
|
||
|
}
|
||
|
|
||
|
type ServerFeatureLimits = {
|
||
|
databases: number,
|
||
|
allocations: number,
|
||
|
};
|
||
|
|
||
|
export type ServerData = {
|
||
|
identifier: string,
|
||
|
uuid: string,
|
||
|
name: string,
|
||
|
node: string,
|
||
|
description: string,
|
||
|
allocation: ServerAllocation,
|
||
|
limits: ServerLimits,
|
||
|
feature_limits: ServerFeatureLimits,
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* A model representing a server returned by the client API.
|
||
|
*/
|
||
|
export default class Server {
|
||
|
/**
|
||
|
* The server identifier, generally the 8-character representation of the server UUID.
|
||
|
*/
|
||
|
identifier: string;
|
||
|
|
||
|
/**
|
||
|
* The long form identifier for this server.
|
||
|
*/
|
||
|
uuid: string;
|
||
|
|
||
|
/**
|
||
|
* The human friendy name for this server.
|
||
|
*/
|
||
|
name: string;
|
||
|
|
||
|
/**
|
||
|
* The name of the node that this server belongs to.
|
||
|
*/
|
||
|
node: string;
|
||
|
|
||
|
/**
|
||
|
* A description of this server.
|
||
|
*/
|
||
|
description: string;
|
||
|
|
||
|
/**
|
||
|
* The primary allocation details for this server.
|
||
|
*/
|
||
|
allocation: ServerAllocation;
|
||
|
|
||
|
/**
|
||
|
* The base limits for this server when it comes to the actual docker container.
|
||
|
*/
|
||
|
limits: ServerLimits;
|
||
|
|
||
|
/**
|
||
|
* The feature limits for this server, database & allocations currently.
|
||
|
*/
|
||
|
featureLimits: ServerFeatureLimits;
|
||
|
|
||
|
/**
|
||
|
* Construct a new server model instance.
|
||
|
*/
|
||
|
constructor (data: ServerData) {
|
||
|
this.identifier = data.identifier;
|
||
|
this.uuid = data.uuid;
|
||
|
this.name = data.name;
|
||
|
this.node = data.node;
|
||
|
this.description = data.description;
|
||
|
this.allocation = data.allocation;
|
||
|
this.limits = data.limits;
|
||
|
this.featureLimits = data.feature_limits;
|
||
|
}
|
||
|
}
|