import * as plugins from './plugins.js'; import type { CloudlyApiClient } from './classes.cloudlyapiclient.js'; export class SecretBundle implements plugins.servezoneInterfaces.data.ISecretBundle { public cloudlyClientRef: CloudlyApiClient; public id: string; public data: plugins.servezoneInterfaces.data.ISecretBundle['data']; constructor(cloudlyClientRef: CloudlyApiClient) { this.cloudlyClientRef = cloudlyClientRef; } public static async getSecretBundleById(cloudlyClientRef: CloudlyApiClient, secretBundleIdArg: string) { const getSecretBundleByIdTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'getSecretBundleById' ); const response = await getSecretBundleByIdTR.fire({ identity: cloudlyClientRef.identity, secretBundleId: secretBundleIdArg, }); const newSecretBundle = new SecretBundle(cloudlyClientRef); Object.assign(newSecretBundle, response.secretBundle); return newSecretBundle; } public static async getSecretBundles(cloudlyClientRef: CloudlyApiClient) { const getSecretBundlesTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'getSecretBundles' ); const response = await getSecretBundlesTR.fire({ identity: cloudlyClientRef.identity, }); const secretBundles: SecretBundle[] = []; for (const secretBundle of response.secretBundles) { const newSecretBundle = new SecretBundle(cloudlyClientRef); Object.assign(newSecretBundle, secretBundle); secretBundles.push(newSecretBundle); } return secretBundles; } public static async createSecretBundle(cloudlyClientRef: CloudlyApiClient, secretBundleDataArg: Partial) { const createSecretBundleTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'createSecretBundle' ); const response = await createSecretBundleTR.fire({ identity: cloudlyClientRef.identity, secretBundle: { id: null, data: { name: secretBundleDataArg.name, description: secretBundleDataArg.description, type: secretBundleDataArg.type, authorizations: secretBundleDataArg.authorizations, includedImages: secretBundleDataArg.includedImages, includedSecretGroupIds: secretBundleDataArg.includedSecretGroupIds, includedTags: secretBundleDataArg.includedTags, }, }, }); const newSecretBundle = new SecretBundle(cloudlyClientRef); Object.assign(newSecretBundle, response.resultSecretBundle); return newSecretBundle; } public async update() { const updateSecretBundleTR = this.cloudlyClientRef.typedsocketClient.createTypedRequest( 'updateSecretBundle' ); const response = await updateSecretBundleTR.fire({ identity: this.cloudlyClientRef.identity, secretBundle: { id: this.id, data: this.data, }, }); const resultSecretBundleData = response.resultSecretBundle.data; plugins.smartexpect.expect(resultSecretBundleData).toEqual(this.data); return this; } public async delete(cloudlyClientRef: CloudlyApiClient, secretBundleIdArg: string) { const deleteSecretBundleTR = cloudlyClientRef.typedsocketClient.createTypedRequest( 'deleteSecretBundleById' ); const response = await deleteSecretBundleTR.fire({ identity: cloudlyClientRef.identity, secretBundleId: this.id, }); plugins.smartexpect.expect(response.ok).toBeTrue(); return null; } }