import * as plugins from './plugins.js'; import type { CloudlyApiClient } from './classes.cloudlyapiclient.js'; export class SecretGroup implements plugins.servezoneInterfaces.data.ISecretGroup { public cloudlyClientRef: CloudlyApiClient; public id: string; public data: plugins.servezoneInterfaces.data.ISecretGroup['data']; constructor(cloudlyClientRef: CloudlyApiClient) { this.cloudlyClientRef = cloudlyClientRef; } public static async getSecretGroupById(cloudlyClientRef: CloudlyApiClient, secretGroupIdArg: string) { const getSecretGroupByIdTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'getSecretGroupById' ); const response = await getSecretGroupByIdTR.fire({ identity: cloudlyClientRef.identity, secretGroupId: secretGroupIdArg, }); const newSecretGroup = new SecretGroup(cloudlyClientRef); Object.assign(newSecretGroup, response.secretGroup); return newSecretGroup; } public static async getSecretGroups(cloudlyClientRef: CloudlyApiClient) { const getSecretGroupsTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'getSecretGroups' ); const response = await getSecretGroupsTR.fire({ identity: cloudlyClientRef.identity, }); const secretGroups: SecretGroup[] = []; for (const secretGroup of response.secretGroups) { const newSecretGroup = new SecretGroup(cloudlyClientRef); Object.assign(newSecretGroup, secretGroup); secretGroups.push(newSecretGroup); } return secretGroups; } public static async createSecretGroup(cloudlyClientRef: CloudlyApiClient, secretGroupDataArg: Partial) { const createSecretGroupTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'createSecretGroup' ); const response = await createSecretGroupTR.fire({ identity: cloudlyClientRef.identity, secretGroup: { id: null, data: { name: secretGroupDataArg.name, description: secretGroupDataArg.description, environments: secretGroupDataArg.environments, key: secretGroupDataArg.key, tags: secretGroupDataArg.tags, priority: secretGroupDataArg.priority, }, }, }); const newSecretGroup = new SecretGroup(cloudlyClientRef); Object.assign(newSecretGroup, response.resultSecretGroup); return newSecretGroup; } // INSTANCE public async update() { const updateSecretGroupTR = this.cloudlyClientRef.typedsocketClient.createTypedRequest( 'updateSecretGroup' ); const response = await updateSecretGroupTR.fire({ identity: this.cloudlyClientRef.identity, secretGroup: { id: this.id, data: this.data, }, }); const resultSecretGroupData = response.resultSecretGroup.data; plugins.smartexpect.expect(resultSecretGroupData).toEqual(this.data); return this; } public async delete(cloudlyClientRef: CloudlyApiClient, secretGroupIdArg: string) { const deleteSecretGroupTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'deleteSecretGroupById' ); const response = await deleteSecretGroupTR.fire({ identity: cloudlyClientRef.identity, secretGroupId: this.id, }); plugins.smartexpect.expect(response.ok).toBeTrue(); return null; } }