69 lines
2.4 KiB
TypeScript
69 lines
2.4 KiB
TypeScript
import * as plugins from './plugins.js';
|
|
import type { CloudlyApiClient } from './classes.cloudlyapiclient.js';
|
|
|
|
export class Service {
|
|
public static async getServices(cloudlyClientRef: CloudlyApiClient) {
|
|
const getAllServicesTR = cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.service.IRequest_Any_Cloudly_GetServices>(
|
|
'getServices'
|
|
);
|
|
const response = await getAllServicesTR.fire({
|
|
identity: cloudlyClientRef.identity,
|
|
});
|
|
const resultServices: Service[] = [];
|
|
for (const service of response.services) {
|
|
const newService = new Service(cloudlyClientRef);
|
|
Object.assign(newService, service);
|
|
resultServices.push(newService);
|
|
}
|
|
return resultServices;
|
|
}
|
|
|
|
public static async getServiceById(cloudlyClientRef: CloudlyApiClient, serviceIdArg: string) {
|
|
const getServiceByIdTR = cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.service.IRequest_Any_Cloudly_GetServiceById>(
|
|
'getServiceById'
|
|
);
|
|
const response = await getServiceByIdTR.fire({
|
|
identity: cloudlyClientRef.identity,
|
|
serviceId: serviceIdArg,
|
|
});
|
|
const newService = new Service(cloudlyClientRef);
|
|
Object.assign(newService, response.service);
|
|
return newService;
|
|
}
|
|
|
|
/**
|
|
* creates a new service
|
|
*/
|
|
public static async createService(cloudlyClientRef: CloudlyApiClient, serviceDataArg: Partial<plugins.servezoneInterfaces.data.IService['data']>) {
|
|
const createServiceTR = cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.service.IRequest_Any_Cloudly_CreateService>(
|
|
'createService'
|
|
);
|
|
const response = await createServiceTR.fire({
|
|
identity: cloudlyClientRef.identity,
|
|
name: serviceDataArg.name,
|
|
description: serviceDataArg.description,
|
|
imageId: serviceDataArg.imageId,
|
|
imageVersion: serviceDataArg.imageVersion,
|
|
environment: {},
|
|
secretBundleId: null,
|
|
scaleFactor: 1,
|
|
balancingStrategy: serviceDataArg.balancingStrategy,
|
|
ports: {
|
|
web: null,
|
|
},
|
|
resources: serviceDataArg.resources,
|
|
domains: [],
|
|
});
|
|
const newService = new Service(cloudlyClientRef);
|
|
Object.assign(newService, response.service);
|
|
return newService;
|
|
}
|
|
|
|
// INSTANCE
|
|
cloudlyClientRef: CloudlyApiClient;
|
|
|
|
constructor(cloudlyClientRef: CloudlyApiClient) {
|
|
this.cloudlyClientRef = cloudlyClientRef;
|
|
}
|
|
}
|