UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

2,430 lines 102 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp = exports.HelmReleaseV2Beta2SpecChartSpecVerifyProvider = exports.HelmReleaseV2Beta2SpecChartSpecSourceRefKind = exports.HelmReleaseV2Beta2SpecUpgradeRemediationStrategy = exports.HelmReleaseV2Beta2SpecChartSpecReconcileStrategy = exports.HelmReleaseV2Beta2SpecValuesFromKind = exports.HelmReleaseV2Beta2SpecUpgradeCrds = exports.HelmReleaseV2Beta2SpecUninstallDeletionPropagation = exports.HelmReleaseV2Beta2SpecInstallCrds = exports.HelmReleaseV2Beta2SpecDriftDetectionMode = exports.HelmReleaseV2Beta2SpecChartRefKind = exports.HelmReleaseV2Beta2 = exports.HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp = exports.HelmReleaseV2Beta1SpecChartSpecVerifyProvider = exports.HelmReleaseV2Beta1SpecChartSpecSourceRefKind = exports.HelmReleaseV2Beta1SpecUpgradeRemediationStrategy = exports.HelmReleaseV2Beta1SpecChartSpecReconcileStrategy = exports.HelmReleaseV2Beta1SpecValuesFromKind = exports.HelmReleaseV2Beta1SpecUpgradeCrds = exports.HelmReleaseV2Beta1SpecUninstallDeletionPropagation = exports.HelmReleaseV2Beta1SpecInstallCrds = exports.HelmReleaseV2Beta1SpecDriftDetectionMode = exports.HelmReleaseV2Beta1SpecChartRefKind = exports.HelmReleaseV2Beta1 = exports.HelmReleaseSpecChartSpecVerifyProvider = exports.HelmReleaseSpecChartSpecSourceRefKind = exports.HelmReleaseSpecUpgradeRemediationStrategy = exports.HelmReleaseSpecChartSpecReconcileStrategy = exports.HelmReleaseSpecValuesFromKind = exports.HelmReleaseSpecUpgradeCrds = exports.HelmReleaseSpecUninstallDeletionPropagation = exports.HelmReleaseSpecInstallCrds = exports.HelmReleaseSpecDriftDetectionMode = exports.HelmReleaseSpecChartRefKind = exports.HelmRelease = void 0;
exports.toJson_HelmReleaseProps = toJson_HelmReleaseProps;
exports.toJson_HelmReleaseSpec = toJson_HelmReleaseSpec;
exports.toJson_HelmReleaseSpecChart = toJson_HelmReleaseSpecChart;
exports.toJson_HelmReleaseSpecChartRef = toJson_HelmReleaseSpecChartRef;
exports.toJson_HelmReleaseSpecDependsOn = toJson_HelmReleaseSpecDependsOn;
exports.toJson_HelmReleaseSpecDriftDetection = toJson_HelmReleaseSpecDriftDetection;
exports.toJson_HelmReleaseSpecInstall = toJson_HelmReleaseSpecInstall;
exports.toJson_HelmReleaseSpecKubeConfig = toJson_HelmReleaseSpecKubeConfig;
exports.toJson_HelmReleaseSpecPostRenderers = toJson_HelmReleaseSpecPostRenderers;
exports.toJson_HelmReleaseSpecRollback = toJson_HelmReleaseSpecRollback;
exports.toJson_HelmReleaseSpecTest = toJson_HelmReleaseSpecTest;
exports.toJson_HelmReleaseSpecUninstall = toJson_HelmReleaseSpecUninstall;
exports.toJson_HelmReleaseSpecUpgrade = toJson_HelmReleaseSpecUpgrade;
exports.toJson_HelmReleaseSpecValuesFrom = toJson_HelmReleaseSpecValuesFrom;
exports.toJson_HelmReleaseSpecChartMetadata = toJson_HelmReleaseSpecChartMetadata;
exports.toJson_HelmReleaseSpecChartSpec = toJson_HelmReleaseSpecChartSpec;
exports.toJson_HelmReleaseSpecDriftDetectionIgnore = toJson_HelmReleaseSpecDriftDetectionIgnore;
exports.toJson_HelmReleaseSpecInstallRemediation = toJson_HelmReleaseSpecInstallRemediation;
exports.toJson_HelmReleaseSpecKubeConfigSecretRef = toJson_HelmReleaseSpecKubeConfigSecretRef;
exports.toJson_HelmReleaseSpecPostRenderersKustomize = toJson_HelmReleaseSpecPostRenderersKustomize;
exports.toJson_HelmReleaseSpecTestFilters = toJson_HelmReleaseSpecTestFilters;
exports.toJson_HelmReleaseSpecUpgradeRemediation = toJson_HelmReleaseSpecUpgradeRemediation;
exports.toJson_HelmReleaseSpecChartSpecSourceRef = toJson_HelmReleaseSpecChartSpecSourceRef;
exports.toJson_HelmReleaseSpecChartSpecVerify = toJson_HelmReleaseSpecChartSpecVerify;
exports.toJson_HelmReleaseSpecDriftDetectionIgnoreTarget = toJson_HelmReleaseSpecDriftDetectionIgnoreTarget;
exports.toJson_HelmReleaseSpecPostRenderersKustomizeImages = toJson_HelmReleaseSpecPostRenderersKustomizeImages;
exports.toJson_HelmReleaseSpecPostRenderersKustomizePatches = toJson_HelmReleaseSpecPostRenderersKustomizePatches;
exports.toJson_HelmReleaseSpecChartSpecVerifySecretRef = toJson_HelmReleaseSpecChartSpecVerifySecretRef;
exports.toJson_HelmReleaseSpecPostRenderersKustomizePatchesTarget = toJson_HelmReleaseSpecPostRenderersKustomizePatchesTarget;
exports.toJson_HelmReleaseV2Beta1Props = toJson_HelmReleaseV2Beta1Props;
exports.toJson_HelmReleaseV2Beta1Spec = toJson_HelmReleaseV2Beta1Spec;
exports.toJson_HelmReleaseV2Beta1SpecChart = toJson_HelmReleaseV2Beta1SpecChart;
exports.toJson_HelmReleaseV2Beta1SpecChartRef = toJson_HelmReleaseV2Beta1SpecChartRef;
exports.toJson_HelmReleaseV2Beta1SpecDependsOn = toJson_HelmReleaseV2Beta1SpecDependsOn;
exports.toJson_HelmReleaseV2Beta1SpecDriftDetection = toJson_HelmReleaseV2Beta1SpecDriftDetection;
exports.toJson_HelmReleaseV2Beta1SpecInstall = toJson_HelmReleaseV2Beta1SpecInstall;
exports.toJson_HelmReleaseV2Beta1SpecKubeConfig = toJson_HelmReleaseV2Beta1SpecKubeConfig;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderers = toJson_HelmReleaseV2Beta1SpecPostRenderers;
exports.toJson_HelmReleaseV2Beta1SpecRollback = toJson_HelmReleaseV2Beta1SpecRollback;
exports.toJson_HelmReleaseV2Beta1SpecTest = toJson_HelmReleaseV2Beta1SpecTest;
exports.toJson_HelmReleaseV2Beta1SpecUninstall = toJson_HelmReleaseV2Beta1SpecUninstall;
exports.toJson_HelmReleaseV2Beta1SpecUpgrade = toJson_HelmReleaseV2Beta1SpecUpgrade;
exports.toJson_HelmReleaseV2Beta1SpecValuesFrom = toJson_HelmReleaseV2Beta1SpecValuesFrom;
exports.toJson_HelmReleaseV2Beta1SpecChartMetadata = toJson_HelmReleaseV2Beta1SpecChartMetadata;
exports.toJson_HelmReleaseV2Beta1SpecChartSpec = toJson_HelmReleaseV2Beta1SpecChartSpec;
exports.toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnore = toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnore;
exports.toJson_HelmReleaseV2Beta1SpecInstallRemediation = toJson_HelmReleaseV2Beta1SpecInstallRemediation;
exports.toJson_HelmReleaseV2Beta1SpecKubeConfigSecretRef = toJson_HelmReleaseV2Beta1SpecKubeConfigSecretRef;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomize = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomize;
exports.toJson_HelmReleaseV2Beta1SpecUpgradeRemediation = toJson_HelmReleaseV2Beta1SpecUpgradeRemediation;
exports.toJson_HelmReleaseV2Beta1SpecChartSpecSourceRef = toJson_HelmReleaseV2Beta1SpecChartSpecSourceRef;
exports.toJson_HelmReleaseV2Beta1SpecChartSpecVerify = toJson_HelmReleaseV2Beta1SpecChartSpecVerify;
exports.toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget = toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizeImages = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizeImages;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatches = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatches;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902 = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902;
exports.toJson_HelmReleaseV2Beta1SpecChartSpecVerifySecretRef = toJson_HelmReleaseV2Beta1SpecChartSpecVerifySecretRef;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch;
exports.toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target = toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target;
exports.toJson_HelmReleaseV2Beta2Props = toJson_HelmReleaseV2Beta2Props;
exports.toJson_HelmReleaseV2Beta2Spec = toJson_HelmReleaseV2Beta2Spec;
exports.toJson_HelmReleaseV2Beta2SpecChart = toJson_HelmReleaseV2Beta2SpecChart;
exports.toJson_HelmReleaseV2Beta2SpecChartRef = toJson_HelmReleaseV2Beta2SpecChartRef;
exports.toJson_HelmReleaseV2Beta2SpecDependsOn = toJson_HelmReleaseV2Beta2SpecDependsOn;
exports.toJson_HelmReleaseV2Beta2SpecDriftDetection = toJson_HelmReleaseV2Beta2SpecDriftDetection;
exports.toJson_HelmReleaseV2Beta2SpecInstall = toJson_HelmReleaseV2Beta2SpecInstall;
exports.toJson_HelmReleaseV2Beta2SpecKubeConfig = toJson_HelmReleaseV2Beta2SpecKubeConfig;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderers = toJson_HelmReleaseV2Beta2SpecPostRenderers;
exports.toJson_HelmReleaseV2Beta2SpecRollback = toJson_HelmReleaseV2Beta2SpecRollback;
exports.toJson_HelmReleaseV2Beta2SpecTest = toJson_HelmReleaseV2Beta2SpecTest;
exports.toJson_HelmReleaseV2Beta2SpecUninstall = toJson_HelmReleaseV2Beta2SpecUninstall;
exports.toJson_HelmReleaseV2Beta2SpecUpgrade = toJson_HelmReleaseV2Beta2SpecUpgrade;
exports.toJson_HelmReleaseV2Beta2SpecValuesFrom = toJson_HelmReleaseV2Beta2SpecValuesFrom;
exports.toJson_HelmReleaseV2Beta2SpecChartMetadata = toJson_HelmReleaseV2Beta2SpecChartMetadata;
exports.toJson_HelmReleaseV2Beta2SpecChartSpec = toJson_HelmReleaseV2Beta2SpecChartSpec;
exports.toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnore = toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnore;
exports.toJson_HelmReleaseV2Beta2SpecInstallRemediation = toJson_HelmReleaseV2Beta2SpecInstallRemediation;
exports.toJson_HelmReleaseV2Beta2SpecKubeConfigSecretRef = toJson_HelmReleaseV2Beta2SpecKubeConfigSecretRef;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomize = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomize;
exports.toJson_HelmReleaseV2Beta2SpecTestFilters = toJson_HelmReleaseV2Beta2SpecTestFilters;
exports.toJson_HelmReleaseV2Beta2SpecUpgradeRemediation = toJson_HelmReleaseV2Beta2SpecUpgradeRemediation;
exports.toJson_HelmReleaseV2Beta2SpecChartSpecSourceRef = toJson_HelmReleaseV2Beta2SpecChartSpecSourceRef;
exports.toJson_HelmReleaseV2Beta2SpecChartSpecVerify = toJson_HelmReleaseV2Beta2SpecChartSpecVerify;
exports.toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget = toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizeImages = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizeImages;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatches = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatches;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902 = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902;
exports.toJson_HelmReleaseV2Beta2SpecChartSpecVerifySecretRef = toJson_HelmReleaseV2Beta2SpecChartSpecVerifySecretRef;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch;
exports.toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target = toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target;
// generated by cdk8s
const cdk8s_1 = require("cdk8s");
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmRelease
 */
class HelmRelease extends cdk8s_1.ApiObject {
    /**
     * Renders a Kubernetes manifest for "HelmRelease".
     *
     * This can be used to inline resource manifests inside other objects (e.g. as templates).
     *
     * @param props initialization props
     */
    static manifest(props = {}) {
        return {
            ...HelmRelease.GVK,
            ...toJson_HelmReleaseProps(props),
        };
    }
    /**
     * Defines a "HelmRelease" API object
     * @param scope the scope in which to define this object
     * @param id a scope-local name for the object
     * @param props initialization props
     */
    constructor(scope, id, props = {}) {
        super(scope, id, {
            ...HelmRelease.GVK,
            ...props,
        });
    }
    /**
     * Renders the object to Kubernetes JSON.
     */
    toJson() {
        const resolved = super.toJson();
        return {
            ...HelmRelease.GVK,
            ...toJson_HelmReleaseProps(resolved),
        };
    }
}
exports.HelmRelease = HelmRelease;
/**
 * Returns the apiVersion and kind for "HelmRelease"
 */
HelmRelease.GVK = {
    apiVersion: 'helm.toolkit.fluxcd.io/v2',
    kind: 'HelmRelease',
};
/**
 * Converts an object of type 'HelmReleaseProps' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseProps(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'metadata': obj.metadata,
        'spec': toJson_HelmReleaseSpec(obj.spec),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpec' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpec(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'chart': toJson_HelmReleaseSpecChart(obj.chart),
        'chartRef': toJson_HelmReleaseSpecChartRef(obj.chartRef),
        'dependsOn': obj.dependsOn?.map(y => toJson_HelmReleaseSpecDependsOn(y)),
        'driftDetection': toJson_HelmReleaseSpecDriftDetection(obj.driftDetection),
        'install': toJson_HelmReleaseSpecInstall(obj.install),
        'interval': obj.interval,
        'kubeConfig': toJson_HelmReleaseSpecKubeConfig(obj.kubeConfig),
        'maxHistory': obj.maxHistory,
        'persistentClient': obj.persistentClient,
        'postRenderers': obj.postRenderers?.map(y => toJson_HelmReleaseSpecPostRenderers(y)),
        'releaseName': obj.releaseName,
        'rollback': toJson_HelmReleaseSpecRollback(obj.rollback),
        'serviceAccountName': obj.serviceAccountName,
        'storageNamespace': obj.storageNamespace,
        'suspend': obj.suspend,
        'targetNamespace': obj.targetNamespace,
        'test': toJson_HelmReleaseSpecTest(obj.test),
        'timeout': obj.timeout,
        'uninstall': toJson_HelmReleaseSpecUninstall(obj.uninstall),
        'upgrade': toJson_HelmReleaseSpecUpgrade(obj.upgrade),
        'values': obj.values,
        'valuesFrom': obj.valuesFrom?.map(y => toJson_HelmReleaseSpecValuesFrom(y)),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecChart' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChart(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'metadata': toJson_HelmReleaseSpecChartMetadata(obj.metadata),
        'spec': toJson_HelmReleaseSpecChartSpec(obj.spec),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecChartRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChartRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'apiVersion': obj.apiVersion,
        'kind': obj.kind,
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecDependsOn' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecDependsOn(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecDriftDetection' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecDriftDetection(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignore': obj.ignore?.map(y => toJson_HelmReleaseSpecDriftDetectionIgnore(y)),
        'mode': obj.mode,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecInstall' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecInstall(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'crds': obj.crds,
        'createNamespace': obj.createNamespace,
        'disableHooks': obj.disableHooks,
        'disableOpenAPIValidation': obj.disableOpenApiValidation,
        'disableSchemaValidation': obj.disableSchemaValidation,
        'disableTakeOwnership': obj.disableTakeOwnership,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'remediation': toJson_HelmReleaseSpecInstallRemediation(obj.remediation),
        'replace': obj.replace,
        'skipCRDs': obj.skipCrDs,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecKubeConfig' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecKubeConfig(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'secretRef': toJson_HelmReleaseSpecKubeConfigSecretRef(obj.secretRef),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderers' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecPostRenderers(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'kustomize': toJson_HelmReleaseSpecPostRenderersKustomize(obj.kustomize),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecRollback' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecRollback(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'cleanupOnFail': obj.cleanupOnFail,
        'disableHooks': obj.disableHooks,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'force': obj.force,
        'recreate': obj.recreate,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecTest' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecTest(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'enable': obj.enable,
        'filters': obj.filters?.map(y => toJson_HelmReleaseSpecTestFilters(y)),
        'ignoreFailures': obj.ignoreFailures,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecUninstall' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecUninstall(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'deletionPropagation': obj.deletionPropagation,
        'disableHooks': obj.disableHooks,
        'disableWait': obj.disableWait,
        'keepHistory': obj.keepHistory,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecUpgrade' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecUpgrade(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'cleanupOnFail': obj.cleanupOnFail,
        'crds': obj.crds,
        'disableHooks': obj.disableHooks,
        'disableOpenAPIValidation': obj.disableOpenApiValidation,
        'disableSchemaValidation': obj.disableSchemaValidation,
        'disableTakeOwnership': obj.disableTakeOwnership,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'force': obj.force,
        'preserveValues': obj.preserveValues,
        'remediation': toJson_HelmReleaseSpecUpgradeRemediation(obj.remediation),
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecValuesFrom' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecValuesFrom(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'kind': obj.kind,
        'name': obj.name,
        'optional': obj.optional,
        'targetPath': obj.targetPath,
        'valuesKey': obj.valuesKey,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecChartMetadata' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChartMetadata(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotations': ((obj.annotations) === undefined) ? undefined : (Object.entries(obj.annotations).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {})),
        'labels': ((obj.labels) === undefined) ? undefined : (Object.entries(obj.labels).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {})),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecChartSpec' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChartSpec(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'chart': obj.chart,
        'ignoreMissingValuesFiles': obj.ignoreMissingValuesFiles,
        'interval': obj.interval,
        'reconcileStrategy': obj.reconcileStrategy,
        'sourceRef': toJson_HelmReleaseSpecChartSpecSourceRef(obj.sourceRef),
        'valuesFiles': obj.valuesFiles?.map(y => y),
        'verify': toJson_HelmReleaseSpecChartSpecVerify(obj.verify),
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseSpecChartRefKind
 */
var HelmReleaseSpecChartRefKind;
(function (HelmReleaseSpecChartRefKind) {
    /** OCIRepository */
    HelmReleaseSpecChartRefKind["OCI_REPOSITORY"] = "OCIRepository";
    /** HelmChart */
    HelmReleaseSpecChartRefKind["HELM_CHART"] = "HelmChart";
})(HelmReleaseSpecChartRefKind || (exports.HelmReleaseSpecChartRefKind = HelmReleaseSpecChartRefKind = {}));
/**
 * Converts an object of type 'HelmReleaseSpecDriftDetectionIgnore' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecDriftDetectionIgnore(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'paths': obj.paths?.map(y => y),
        'target': toJson_HelmReleaseSpecDriftDetectionIgnoreTarget(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Mode defines how differences should be handled between the Helm manifest
 * and the manifest currently applied to the cluster.
 * If not explicitly set, it defaults to DiffModeDisabled.
 *
 * @schema HelmReleaseSpecDriftDetectionMode
 */
var HelmReleaseSpecDriftDetectionMode;
(function (HelmReleaseSpecDriftDetectionMode) {
    /** enabled */
    HelmReleaseSpecDriftDetectionMode["ENABLED"] = "enabled";
    /** warn */
    HelmReleaseSpecDriftDetectionMode["WARN"] = "warn";
    /** disabled */
    HelmReleaseSpecDriftDetectionMode["DISABLED"] = "disabled";
})(HelmReleaseSpecDriftDetectionMode || (exports.HelmReleaseSpecDriftDetectionMode = HelmReleaseSpecDriftDetectionMode = {}));
/**
 * CRDs upgrade CRDs from the Helm Chart's crds directory according
 * to the CRD upgrade policy provided here. Valid values are `Skip`,
 * `Create` or `CreateReplace`. Default is `Create` and if omitted
 * CRDs are installed but not updated.
 *
 * Skip: do neither install nor replace (update) any CRDs.
 *
 * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
 *
 * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
 * but not deleted.
 *
 * By default, CRDs are applied (installed) during Helm install action.
 * With this option users can opt in to CRD replace existing CRDs on Helm
 * install actions, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Create` and if omitted
 * @schema HelmReleaseSpecInstallCrds
 */
var HelmReleaseSpecInstallCrds;
(function (HelmReleaseSpecInstallCrds) {
    /** Skip */
    HelmReleaseSpecInstallCrds["SKIP"] = "Skip";
    /** Create */
    HelmReleaseSpecInstallCrds["CREATE"] = "Create";
    /** CreateReplace */
    HelmReleaseSpecInstallCrds["CREATE_REPLACE"] = "CreateReplace";
})(HelmReleaseSpecInstallCrds || (exports.HelmReleaseSpecInstallCrds = HelmReleaseSpecInstallCrds = {}));
/**
 * Converts an object of type 'HelmReleaseSpecInstallRemediation' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecInstallRemediation(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignoreTestFailures': obj.ignoreTestFailures,
        'remediateLastFailure': obj.remediateLastFailure,
        'retries': obj.retries,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecKubeConfigSecretRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecKubeConfigSecretRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'key': obj.key,
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomize' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecPostRenderersKustomize(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'images': obj.images?.map(y => toJson_HelmReleaseSpecPostRenderersKustomizeImages(y)),
        'patches': obj.patches?.map(y => toJson_HelmReleaseSpecPostRenderersKustomizePatches(y)),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecTestFilters' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecTestFilters(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'exclude': obj.exclude,
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * DeletionPropagation specifies the deletion propagation policy when
 * a Helm uninstall is performed.
 *
 * @schema HelmReleaseSpecUninstallDeletionPropagation
 */
var HelmReleaseSpecUninstallDeletionPropagation;
(function (HelmReleaseSpecUninstallDeletionPropagation) {
    /** background */
    HelmReleaseSpecUninstallDeletionPropagation["BACKGROUND"] = "background";
    /** foreground */
    HelmReleaseSpecUninstallDeletionPropagation["FOREGROUND"] = "foreground";
    /** orphan */
    HelmReleaseSpecUninstallDeletionPropagation["ORPHAN"] = "orphan";
})(HelmReleaseSpecUninstallDeletionPropagation || (exports.HelmReleaseSpecUninstallDeletionPropagation = HelmReleaseSpecUninstallDeletionPropagation = {}));
/**
 * CRDs upgrade CRDs from the Helm Chart's crds directory according
 * to the CRD upgrade policy provided here. Valid values are `Skip`,
 * `Create` or `CreateReplace`. Default is `Skip` and if omitted
 * CRDs are neither installed nor upgraded.
 *
 * Skip: do neither install nor replace (update) any CRDs.
 *
 * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
 *
 * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
 * but not deleted.
 *
 * By default, CRDs are not applied during Helm upgrade action. With this
 * option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Skip` and if omitted
 * @schema HelmReleaseSpecUpgradeCrds
 */
var HelmReleaseSpecUpgradeCrds;
(function (HelmReleaseSpecUpgradeCrds) {
    /** Skip */
    HelmReleaseSpecUpgradeCrds["SKIP"] = "Skip";
    /** Create */
    HelmReleaseSpecUpgradeCrds["CREATE"] = "Create";
    /** CreateReplace */
    HelmReleaseSpecUpgradeCrds["CREATE_REPLACE"] = "CreateReplace";
})(HelmReleaseSpecUpgradeCrds || (exports.HelmReleaseSpecUpgradeCrds = HelmReleaseSpecUpgradeCrds = {}));
/**
 * Converts an object of type 'HelmReleaseSpecUpgradeRemediation' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecUpgradeRemediation(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignoreTestFailures': obj.ignoreTestFailures,
        'remediateLastFailure': obj.remediateLastFailure,
        'retries': obj.retries,
        'strategy': obj.strategy,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
 *
 * @schema HelmReleaseSpecValuesFromKind
 */
var HelmReleaseSpecValuesFromKind;
(function (HelmReleaseSpecValuesFromKind) {
    /** Secret */
    HelmReleaseSpecValuesFromKind["SECRET"] = "Secret";
    /** ConfigMap */
    HelmReleaseSpecValuesFromKind["CONFIG_MAP"] = "ConfigMap";
})(HelmReleaseSpecValuesFromKind || (exports.HelmReleaseSpecValuesFromKind = HelmReleaseSpecValuesFromKind = {}));
/**
 * Determines what enables the creation of a new artifact. Valid values are
 * ('ChartVersion', 'Revision').
 * See the documentation of the values for an explanation on their behavior.
 * Defaults to ChartVersion when omitted.
 *
 * @default ChartVersion when omitted.
 * @schema HelmReleaseSpecChartSpecReconcileStrategy
 */
var HelmReleaseSpecChartSpecReconcileStrategy;
(function (HelmReleaseSpecChartSpecReconcileStrategy) {
    /** ChartVersion */
    HelmReleaseSpecChartSpecReconcileStrategy["CHART_VERSION"] = "ChartVersion";
    /** Revision */
    HelmReleaseSpecChartSpecReconcileStrategy["REVISION"] = "Revision";
})(HelmReleaseSpecChartSpecReconcileStrategy || (exports.HelmReleaseSpecChartSpecReconcileStrategy = HelmReleaseSpecChartSpecReconcileStrategy = {}));
/**
 * Converts an object of type 'HelmReleaseSpecChartSpecSourceRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChartSpecSourceRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'apiVersion': obj.apiVersion,
        'kind': obj.kind,
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecChartSpecVerify' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChartSpecVerify(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'provider': obj.provider,
        'secretRef': toJson_HelmReleaseSpecChartSpecVerifySecretRef(obj.secretRef),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecDriftDetectionIgnoreTarget' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecDriftDetectionIgnoreTarget(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomizeImages' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecPostRenderersKustomizeImages(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'digest': obj.digest,
        'name': obj.name,
        'newName': obj.newName,
        'newTag': obj.newTag,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomizePatches' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecPostRenderersKustomizePatches(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'patch': obj.patch,
        'target': toJson_HelmReleaseSpecPostRenderersKustomizePatchesTarget(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Strategy to use for failure remediation. Defaults to 'rollback'.
 *
 * @default rollback'.
 * @schema HelmReleaseSpecUpgradeRemediationStrategy
 */
var HelmReleaseSpecUpgradeRemediationStrategy;
(function (HelmReleaseSpecUpgradeRemediationStrategy) {
    /** rollback */
    HelmReleaseSpecUpgradeRemediationStrategy["ROLLBACK"] = "rollback";
    /** uninstall */
    HelmReleaseSpecUpgradeRemediationStrategy["UNINSTALL"] = "uninstall";
})(HelmReleaseSpecUpgradeRemediationStrategy || (exports.HelmReleaseSpecUpgradeRemediationStrategy = HelmReleaseSpecUpgradeRemediationStrategy = {}));
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseSpecChartSpecSourceRefKind
 */
var HelmReleaseSpecChartSpecSourceRefKind;
(function (HelmReleaseSpecChartSpecSourceRefKind) {
    /** HelmRepository */
    HelmReleaseSpecChartSpecSourceRefKind["HELM_REPOSITORY"] = "HelmRepository";
    /** GitRepository */
    HelmReleaseSpecChartSpecSourceRefKind["GIT_REPOSITORY"] = "GitRepository";
    /** Bucket */
    HelmReleaseSpecChartSpecSourceRefKind["BUCKET"] = "Bucket";
})(HelmReleaseSpecChartSpecSourceRefKind || (exports.HelmReleaseSpecChartSpecSourceRefKind = HelmReleaseSpecChartSpecSourceRefKind = {}));
/**
 * Provider specifies the technology used to sign the OCI Helm chart.
 *
 * @schema HelmReleaseSpecChartSpecVerifyProvider
 */
var HelmReleaseSpecChartSpecVerifyProvider;
(function (HelmReleaseSpecChartSpecVerifyProvider) {
    /** cosign */
    HelmReleaseSpecChartSpecVerifyProvider["COSIGN"] = "cosign";
    /** notation */
    HelmReleaseSpecChartSpecVerifyProvider["NOTATION"] = "notation";
})(HelmReleaseSpecChartSpecVerifyProvider || (exports.HelmReleaseSpecChartSpecVerifyProvider = HelmReleaseSpecChartSpecVerifyProvider = {}));
/**
 * Converts an object of type 'HelmReleaseSpecChartSpecVerifySecretRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecChartSpecVerifySecretRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomizePatchesTarget' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseSpecPostRenderersKustomizePatchesTarget(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmReleaseV2Beta1
 */
class HelmReleaseV2Beta1 extends cdk8s_1.ApiObject {
    /**
     * Renders a Kubernetes manifest for "HelmReleaseV2Beta1".
     *
     * This can be used to inline resource manifests inside other objects (e.g. as templates).
     *
     * @param props initialization props
     */
    static manifest(props = {}) {
        return {
            ...HelmReleaseV2Beta1.GVK,
            ...toJson_HelmReleaseV2Beta1Props(props),
        };
    }
    /**
     * Defines a "HelmReleaseV2Beta1" API object
     * @param scope the scope in which to define this object
     * @param id a scope-local name for the object
     * @param props initialization props
     */
    constructor(scope, id, props = {}) {
        super(scope, id, {
            ...HelmReleaseV2Beta1.GVK,
            ...props,
        });
    }
    /**
     * Renders the object to Kubernetes JSON.
     */
    toJson() {
        const resolved = super.toJson();
        return {
            ...HelmReleaseV2Beta1.GVK,
            ...toJson_HelmReleaseV2Beta1Props(resolved),
        };
    }
}
exports.HelmReleaseV2Beta1 = HelmReleaseV2Beta1;
/**
 * Returns the apiVersion and kind for "HelmReleaseV2Beta1"
 */
HelmReleaseV2Beta1.GVK = {
    apiVersion: 'helm.toolkit.fluxcd.io/v2beta1',
    kind: 'HelmRelease',
};
/**
 * Converts an object of type 'HelmReleaseV2Beta1Props' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1Props(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'metadata': obj.metadata,
        'spec': toJson_HelmReleaseV2Beta1Spec(obj.spec),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1Spec' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1Spec(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'chart': toJson_HelmReleaseV2Beta1SpecChart(obj.chart),
        'chartRef': toJson_HelmReleaseV2Beta1SpecChartRef(obj.chartRef),
        'dependsOn': obj.dependsOn?.map(y => toJson_HelmReleaseV2Beta1SpecDependsOn(y)),
        'driftDetection': toJson_HelmReleaseV2Beta1SpecDriftDetection(obj.driftDetection),
        'install': toJson_HelmReleaseV2Beta1SpecInstall(obj.install),
        'interval': obj.interval,
        'kubeConfig': toJson_HelmReleaseV2Beta1SpecKubeConfig(obj.kubeConfig),
        'maxHistory': obj.maxHistory,
        'persistentClient': obj.persistentClient,
        'postRenderers': obj.postRenderers?.map(y => toJson_HelmReleaseV2Beta1SpecPostRenderers(y)),
        'releaseName': obj.releaseName,
        'rollback': toJson_HelmReleaseV2Beta1SpecRollback(obj.rollback),
        'serviceAccountName': obj.serviceAccountName,
        'storageNamespace': obj.storageNamespace,
        'suspend': obj.suspend,
        'targetNamespace': obj.targetNamespace,
        'test': toJson_HelmReleaseV2Beta1SpecTest(obj.test),
        'timeout': obj.timeout,
        'uninstall': toJson_HelmReleaseV2Beta1SpecUninstall(obj.uninstall),
        'upgrade': toJson_HelmReleaseV2Beta1SpecUpgrade(obj.upgrade),
        'values': obj.values,
        'valuesFrom': obj.valuesFrom?.map(y => toJson_HelmReleaseV2Beta1SpecValuesFrom(y)),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChart' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChart(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'metadata': toJson_HelmReleaseV2Beta1SpecChartMetadata(obj.metadata),
        'spec': toJson_HelmReleaseV2Beta1SpecChartSpec(obj.spec),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChartRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'apiVersion': obj.apiVersion,
        'kind': obj.kind,
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDependsOn' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecDependsOn(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDriftDetection' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecDriftDetection(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignore': obj.ignore?.map(y => toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnore(y)),
        'mode': obj.mode,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecInstall' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecInstall(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'crds': obj.crds,
        'createNamespace': obj.createNamespace,
        'disableHooks': obj.disableHooks,
        'disableOpenAPIValidation': obj.disableOpenApiValidation,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'remediation': toJson_HelmReleaseV2Beta1SpecInstallRemediation(obj.remediation),
        'replace': obj.replace,
        'skipCRDs': obj.skipCrDs,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecKubeConfig' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecKubeConfig(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'secretRef': toJson_HelmReleaseV2Beta1SpecKubeConfigSecretRef(obj.secretRef),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderers' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderers(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'kustomize': toJson_HelmReleaseV2Beta1SpecPostRenderersKustomize(obj.kustomize),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecRollback' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecRollback(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'cleanupOnFail': obj.cleanupOnFail,
        'disableHooks': obj.disableHooks,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'force': obj.force,
        'recreate': obj.recreate,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecTest' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecTest(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'enable': obj.enable,
        'ignoreFailures': obj.ignoreFailures,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecUninstall' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecUninstall(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'deletionPropagation': obj.deletionPropagation,
        'disableHooks': obj.disableHooks,
        'disableWait': obj.disableWait,
        'keepHistory': obj.keepHistory,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecUpgrade' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecUpgrade(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'cleanupOnFail': obj.cleanupOnFail,
        'crds': obj.crds,
        'disableHooks': obj.disableHooks,
        'disableOpenAPIValidation': obj.disableOpenApiValidation,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'force': obj.force,
        'preserveValues': obj.preserveValues,
        'remediation': toJson_HelmReleaseV2Beta1SpecUpgradeRemediation(obj.remediation),
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecValuesFrom' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecValuesFrom(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'kind': obj.kind,
        'name': obj.name,
        'optional': obj.optional,
        'targetPath': obj.targetPath,
        'valuesKey': obj.valuesKey,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartMetadata' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChartMetadata(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotations': ((obj.annotations) === undefined) ? undefined : (Object.entries(obj.annotations).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {})),
        'labels': ((obj.labels) === undefined) ? undefined : (Object.entries(obj.labels).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {})),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpec' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChartSpec(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'chart': obj.chart,
        'interval': obj.interval,
        'reconcileStrategy': obj.reconcileStrategy,
        'sourceRef': toJson_HelmReleaseV2Beta1SpecChartSpecSourceRef(obj.sourceRef),
        'valuesFile': obj.valuesFile,
        'valuesFiles': obj.valuesFiles?.map(y => y),
        'verify': toJson_HelmReleaseV2Beta1SpecChartSpecVerify(obj.verify),
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta1SpecChartRefKind
 */
var HelmReleaseV2Beta1SpecChartRefKind;
(function (HelmReleaseV2Beta1SpecChartRefKind) {
    /** OCIRepository */
    HelmReleaseV2Beta1SpecChartRefKind["OCI_REPOSITORY"] = "OCIRepository";
    /** HelmChart */
    HelmReleaseV2Beta1SpecChartRefKind["HELM_CHART"] = "HelmChart";
})(HelmReleaseV2Beta1SpecChartRefKind || (exports.HelmReleaseV2Beta1SpecChartRefKind = HelmReleaseV2Beta1SpecChartRefKind = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDriftDetectionIgnore' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnore(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'paths': obj.paths?.map(y => y),
        'target': toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Mode defines how differences should be handled between the Helm manifest
 * and the manifest currently applied to the cluster.
 * If not explicitly set, it defaults to DiffModeDisabled.
 *
 * @schema HelmReleaseV2Beta1SpecDriftDetectionMode
 */
var HelmReleaseV2Beta1SpecDriftDetectionMode;
(function (HelmReleaseV2Beta1SpecDriftDetectionMode) {
    /** enabled */
    HelmReleaseV2Beta1SpecDriftDetectionMode["ENABLED"] = "enabled";
    /** warn */
    HelmReleaseV2Beta1SpecDriftDetectionMode["WARN"] = "warn";
    /** disabled */
    HelmReleaseV2Beta1SpecDriftDetectionMode["DISABLED"] = "disabled";
})(HelmReleaseV2Beta1SpecDriftDetectionMode || (exports.HelmReleaseV2Beta1SpecDriftDetectionMode = HelmReleaseV2Beta1SpecDriftDetectionMode = {}));
/**
 * CRDs upgrade CRDs from the Helm Chart's crds directory according
 * to the CRD upgrade policy provided here. Valid values are `Skip`,
 * `Create` or `CreateReplace`. Default is `Create` and if omitted
 * CRDs are installed but not updated.
 *
 * Skip: do neither install nor replace (update) any CRDs.
 *
 * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
 *
 * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
 * but not deleted.
 *
 * By default, CRDs are applied (installed) during Helm install action.
 * With this option users can opt-in to CRD replace existing CRDs on Helm
 * install actions, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Create` and if omitted
 * @schema HelmReleaseV2Beta1SpecInstallCrds
 */
var HelmReleaseV2Beta1SpecInstallCrds;
(function (HelmReleaseV2Beta1SpecInstallCrds) {
    /** Skip */
    HelmReleaseV2Beta1SpecInstallCrds["SKIP"] = "Skip";
    /** Create */
    HelmReleaseV2Beta1SpecInstallCrds["CREATE"] = "Create";
    /** CreateReplace */
    HelmReleaseV2Beta1SpecInstallCrds["CREATE_REPLACE"] = "CreateReplace";
})(HelmReleaseV2Beta1SpecInstallCrds || (exports.HelmReleaseV2Beta1SpecInstallCrds = HelmReleaseV2Beta1SpecInstallCrds = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecInstallRemediation' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecInstallRemediation(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignoreTestFailures': obj.ignoreTestFailures,
        'remediateLastFailure': obj.remediateLastFailure,
        'retries': obj.retries,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecKubeConfigSecretRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecKubeConfigSecretRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'key': obj.key,
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomize' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomize(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'images': obj.images?.map(y => toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizeImages(y)),
        'patches': obj.patches?.map(y => toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatches(y)),
        'patchesJson6902': obj.patchesJson6902?.map(y => toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902(y)),
        'patchesStrategicMerge': obj.patchesStrategicMerge?.map(y => y),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * DeletionPropagation specifies the deletion propagation policy when
 * a Helm uninstall is performed.
 *
 * @schema HelmReleaseV2Beta1SpecUninstallDeletionPropagation
 */
var HelmReleaseV2Beta1SpecUninstallDeletionPropagation;
(function (HelmReleaseV2Beta1SpecUninstallDeletionPropagation) {
    /** background */
    HelmReleaseV2Beta1SpecUninstallDeletionPropagation["BACKGROUND"] = "background";
    /** foreground */
    HelmReleaseV2Beta1SpecUninstallDeletionPropagation["FOREGROUND"] = "foreground";
    /** orphan */
    HelmReleaseV2Beta1SpecUninstallDeletionPropagation["ORPHAN"] = "orphan";
})(HelmReleaseV2Beta1SpecUninstallDeletionPropagation || (exports.HelmReleaseV2Beta1SpecUninstallDeletionPropagation = HelmReleaseV2Beta1SpecUninstallDeletionPropagation = {}));
/**
 * CRDs upgrade CRDs from the Helm Chart's crds directory according
 * to the CRD upgrade policy provided here. Valid values are `Skip`,
 * `Create` or `CreateReplace`. Default is `Skip` and if omitted
 * CRDs are neither installed nor upgraded.
 *
 * Skip: do neither install nor replace (update) any CRDs.
 *
 * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
 *
 * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
 * but not deleted.
 *
 * By default, CRDs are not applied during Helm upgrade action. With this
 * option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Skip` and if omitted
 * @schema HelmReleaseV2Beta1SpecUpgradeCrds
 */
var HelmReleaseV2Beta1SpecUpgradeCrds;
(function (HelmReleaseV2Beta1SpecUpgradeCrds) {
    /** Skip */
    HelmReleaseV2Beta1SpecUpgradeCrds["SKIP"] = "Skip";
    /** Create */
    HelmReleaseV2Beta1SpecUpgradeCrds["CREATE"] = "Create";
    /** CreateReplace */
    HelmReleaseV2Beta1SpecUpgradeCrds["CREATE_REPLACE"] = "CreateReplace";
})(HelmReleaseV2Beta1SpecUpgradeCrds || (exports.HelmReleaseV2Beta1SpecUpgradeCrds = HelmReleaseV2Beta1SpecUpgradeCrds = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecUpgradeRemediation' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecUpgradeRemediation(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignoreTestFailures': obj.ignoreTestFailures,
        'remediateLastFailure': obj.remediateLastFailure,
        'retries': obj.retries,
        'strategy': obj.strategy,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
 *
 * @schema HelmReleaseV2Beta1SpecValuesFromKind
 */
var HelmReleaseV2Beta1SpecValuesFromKind;
(function (HelmReleaseV2Beta1SpecValuesFromKind) {
    /** Secret */
    HelmReleaseV2Beta1SpecValuesFromKind["SECRET"] = "Secret";
    /** ConfigMap */
    HelmReleaseV2Beta1SpecValuesFromKind["CONFIG_MAP"] = "ConfigMap";
})(HelmReleaseV2Beta1SpecValuesFromKind || (exports.HelmReleaseV2Beta1SpecValuesFromKind = HelmReleaseV2Beta1SpecValuesFromKind = {}));
/**
 * Determines what enables the creation of a new artifact. Valid values are
 * ('ChartVersion', 'Revision').
 * See the documentation of the values for an explanation on their behavior.
 * Defaults to ChartVersion when omitted.
 *
 * @default ChartVersion when omitted.
 * @schema HelmReleaseV2Beta1SpecChartSpecReconcileStrategy
 */
var HelmReleaseV2Beta1SpecChartSpecReconcileStrategy;
(function (HelmReleaseV2Beta1SpecChartSpecReconcileStrategy) {
    /** ChartVersion */
    HelmReleaseV2Beta1SpecChartSpecReconcileStrategy["CHART_VERSION"] = "ChartVersion";
    /** Revision */
    HelmReleaseV2Beta1SpecChartSpecReconcileStrategy["REVISION"] = "Revision";
})(HelmReleaseV2Beta1SpecChartSpecReconcileStrategy || (exports.HelmReleaseV2Beta1SpecChartSpecReconcileStrategy = HelmReleaseV2Beta1SpecChartSpecReconcileStrategy = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpecSourceRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChartSpecSourceRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'apiVersion': obj.apiVersion,
        'kind': obj.kind,
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpecVerify' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChartSpecVerify(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'provider': obj.provider,
        'secretRef': toJson_HelmReleaseV2Beta1SpecChartSpecVerifySecretRef(obj.secretRef),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizeImages' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizeImages(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'digest': obj.digest,
        'name': obj.name,
        'newName': obj.newName,
        'newTag': obj.newTag,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatches' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatches(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'patch': obj.patch,
        'target': toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'patch': obj.patch?.map(y => toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch(y)),
        'target': toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Strategy to use for failure remediation. Defaults to 'rollback'.
 *
 * @default rollback'.
 * @schema HelmReleaseV2Beta1SpecUpgradeRemediationStrategy
 */
var HelmReleaseV2Beta1SpecUpgradeRemediationStrategy;
(function (HelmReleaseV2Beta1SpecUpgradeRemediationStrategy) {
    /** rollback */
    HelmReleaseV2Beta1SpecUpgradeRemediationStrategy["ROLLBACK"] = "rollback";
    /** uninstall */
    HelmReleaseV2Beta1SpecUpgradeRemediationStrategy["UNINSTALL"] = "uninstall";
})(HelmReleaseV2Beta1SpecUpgradeRemediationStrategy || (exports.HelmReleaseV2Beta1SpecUpgradeRemediationStrategy = HelmReleaseV2Beta1SpecUpgradeRemediationStrategy = {}));
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecSourceRefKind
 */
var HelmReleaseV2Beta1SpecChartSpecSourceRefKind;
(function (HelmReleaseV2Beta1SpecChartSpecSourceRefKind) {
    /** HelmRepository */
    HelmReleaseV2Beta1SpecChartSpecSourceRefKind["HELM_REPOSITORY"] = "HelmRepository";
    /** GitRepository */
    HelmReleaseV2Beta1SpecChartSpecSourceRefKind["GIT_REPOSITORY"] = "GitRepository";
    /** Bucket */
    HelmReleaseV2Beta1SpecChartSpecSourceRefKind["BUCKET"] = "Bucket";
})(HelmReleaseV2Beta1SpecChartSpecSourceRefKind || (exports.HelmReleaseV2Beta1SpecChartSpecSourceRefKind = HelmReleaseV2Beta1SpecChartSpecSourceRefKind = {}));
/**
 * Provider specifies the technology used to sign the OCI Helm chart.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecVerifyProvider
 */
var HelmReleaseV2Beta1SpecChartSpecVerifyProvider;
(function (HelmReleaseV2Beta1SpecChartSpecVerifyProvider) {
    /** cosign */
    HelmReleaseV2Beta1SpecChartSpecVerifyProvider["COSIGN"] = "cosign";
})(HelmReleaseV2Beta1SpecChartSpecVerifyProvider || (exports.HelmReleaseV2Beta1SpecChartSpecVerifyProvider = HelmReleaseV2Beta1SpecChartSpecVerifyProvider = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpecVerifySecretRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecChartSpecVerifySecretRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'from': obj.from,
        'op': obj.op,
        'path': obj.path,
        'value': obj.value,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
 * "test".
 * https://datatracker.ietf.org/doc/html/rfc6902#section-4
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp
 */
var HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp;
(function (HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp) {
    /** test */
    HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp["TEST"] = "test";
    /** remove */
    HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp["REMOVE"] = "remove";
    /** add */
    HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp["ADD"] = "add";
    /** replace */
    HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp["REPLACE"] = "replace";
    /** move */
    HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp["MOVE"] = "move";
    /** copy */
    HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp["COPY"] = "copy";
})(HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp || (exports.HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp = HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp = {}));
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmReleaseV2Beta2
 */
class HelmReleaseV2Beta2 extends cdk8s_1.ApiObject {
    /**
     * Renders a Kubernetes manifest for "HelmReleaseV2Beta2".
     *
     * This can be used to inline resource manifests inside other objects (e.g. as templates).
     *
     * @param props initialization props
     */
    static manifest(props = {}) {
        return {
            ...HelmReleaseV2Beta2.GVK,
            ...toJson_HelmReleaseV2Beta2Props(props),
        };
    }
    /**
     * Defines a "HelmReleaseV2Beta2" API object
     * @param scope the scope in which to define this object
     * @param id a scope-local name for the object
     * @param props initialization props
     */
    constructor(scope, id, props = {}) {
        super(scope, id, {
            ...HelmReleaseV2Beta2.GVK,
            ...props,
        });
    }
    /**
     * Renders the object to Kubernetes JSON.
     */
    toJson() {
        const resolved = super.toJson();
        return {
            ...HelmReleaseV2Beta2.GVK,
            ...toJson_HelmReleaseV2Beta2Props(resolved),
        };
    }
}
exports.HelmReleaseV2Beta2 = HelmReleaseV2Beta2;
/**
 * Returns the apiVersion and kind for "HelmReleaseV2Beta2"
 */
HelmReleaseV2Beta2.GVK = {
    apiVersion: 'helm.toolkit.fluxcd.io/v2beta2',
    kind: 'HelmRelease',
};
/**
 * Converts an object of type 'HelmReleaseV2Beta2Props' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2Props(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'metadata': obj.metadata,
        'spec': toJson_HelmReleaseV2Beta2Spec(obj.spec),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2Spec' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2Spec(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'chart': toJson_HelmReleaseV2Beta2SpecChart(obj.chart),
        'chartRef': toJson_HelmReleaseV2Beta2SpecChartRef(obj.chartRef),
        'dependsOn': obj.dependsOn?.map(y => toJson_HelmReleaseV2Beta2SpecDependsOn(y)),
        'driftDetection': toJson_HelmReleaseV2Beta2SpecDriftDetection(obj.driftDetection),
        'install': toJson_HelmReleaseV2Beta2SpecInstall(obj.install),
        'interval': obj.interval,
        'kubeConfig': toJson_HelmReleaseV2Beta2SpecKubeConfig(obj.kubeConfig),
        'maxHistory': obj.maxHistory,
        'persistentClient': obj.persistentClient,
        'postRenderers': obj.postRenderers?.map(y => toJson_HelmReleaseV2Beta2SpecPostRenderers(y)),
        'releaseName': obj.releaseName,
        'rollback': toJson_HelmReleaseV2Beta2SpecRollback(obj.rollback),
        'serviceAccountName': obj.serviceAccountName,
        'storageNamespace': obj.storageNamespace,
        'suspend': obj.suspend,
        'targetNamespace': obj.targetNamespace,
        'test': toJson_HelmReleaseV2Beta2SpecTest(obj.test),
        'timeout': obj.timeout,
        'uninstall': toJson_HelmReleaseV2Beta2SpecUninstall(obj.uninstall),
        'upgrade': toJson_HelmReleaseV2Beta2SpecUpgrade(obj.upgrade),
        'values': obj.values,
        'valuesFrom': obj.valuesFrom?.map(y => toJson_HelmReleaseV2Beta2SpecValuesFrom(y)),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChart' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChart(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'metadata': toJson_HelmReleaseV2Beta2SpecChartMetadata(obj.metadata),
        'spec': toJson_HelmReleaseV2Beta2SpecChartSpec(obj.spec),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChartRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'apiVersion': obj.apiVersion,
        'kind': obj.kind,
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDependsOn' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecDependsOn(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDriftDetection' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecDriftDetection(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignore': obj.ignore?.map(y => toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnore(y)),
        'mode': obj.mode,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecInstall' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecInstall(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'crds': obj.crds,
        'createNamespace': obj.createNamespace,
        'disableHooks': obj.disableHooks,
        'disableOpenAPIValidation': obj.disableOpenApiValidation,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'remediation': toJson_HelmReleaseV2Beta2SpecInstallRemediation(obj.remediation),
        'replace': obj.replace,
        'skipCRDs': obj.skipCrDs,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecKubeConfig' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecKubeConfig(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'secretRef': toJson_HelmReleaseV2Beta2SpecKubeConfigSecretRef(obj.secretRef),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderers' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderers(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'kustomize': toJson_HelmReleaseV2Beta2SpecPostRenderersKustomize(obj.kustomize),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecRollback' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecRollback(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'cleanupOnFail': obj.cleanupOnFail,
        'disableHooks': obj.disableHooks,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'force': obj.force,
        'recreate': obj.recreate,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecTest' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecTest(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'enable': obj.enable,
        'filters': obj.filters?.map(y => toJson_HelmReleaseV2Beta2SpecTestFilters(y)),
        'ignoreFailures': obj.ignoreFailures,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecUninstall' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecUninstall(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'deletionPropagation': obj.deletionPropagation,
        'disableHooks': obj.disableHooks,
        'disableWait': obj.disableWait,
        'keepHistory': obj.keepHistory,
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecUpgrade' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecUpgrade(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'cleanupOnFail': obj.cleanupOnFail,
        'crds': obj.crds,
        'disableHooks': obj.disableHooks,
        'disableOpenAPIValidation': obj.disableOpenApiValidation,
        'disableWait': obj.disableWait,
        'disableWaitForJobs': obj.disableWaitForJobs,
        'force': obj.force,
        'preserveValues': obj.preserveValues,
        'remediation': toJson_HelmReleaseV2Beta2SpecUpgradeRemediation(obj.remediation),
        'timeout': obj.timeout,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecValuesFrom' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecValuesFrom(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'kind': obj.kind,
        'name': obj.name,
        'optional': obj.optional,
        'targetPath': obj.targetPath,
        'valuesKey': obj.valuesKey,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartMetadata' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChartMetadata(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotations': ((obj.annotations) === undefined) ? undefined : (Object.entries(obj.annotations).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {})),
        'labels': ((obj.labels) === undefined) ? undefined : (Object.entries(obj.labels).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {})),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpec' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChartSpec(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'chart': obj.chart,
        'ignoreMissingValuesFiles': obj.ignoreMissingValuesFiles,
        'interval': obj.interval,
        'reconcileStrategy': obj.reconcileStrategy,
        'sourceRef': toJson_HelmReleaseV2Beta2SpecChartSpecSourceRef(obj.sourceRef),
        'valuesFile': obj.valuesFile,
        'valuesFiles': obj.valuesFiles?.map(y => y),
        'verify': toJson_HelmReleaseV2Beta2SpecChartSpecVerify(obj.verify),
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta2SpecChartRefKind
 */
var HelmReleaseV2Beta2SpecChartRefKind;
(function (HelmReleaseV2Beta2SpecChartRefKind) {
    /** OCIRepository */
    HelmReleaseV2Beta2SpecChartRefKind["OCI_REPOSITORY"] = "OCIRepository";
    /** HelmChart */
    HelmReleaseV2Beta2SpecChartRefKind["HELM_CHART"] = "HelmChart";
})(HelmReleaseV2Beta2SpecChartRefKind || (exports.HelmReleaseV2Beta2SpecChartRefKind = HelmReleaseV2Beta2SpecChartRefKind = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDriftDetectionIgnore' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnore(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'paths': obj.paths?.map(y => y),
        'target': toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Mode defines how differences should be handled between the Helm manifest
 * and the manifest currently applied to the cluster.
 * If not explicitly set, it defaults to DiffModeDisabled.
 *
 * @schema HelmReleaseV2Beta2SpecDriftDetectionMode
 */
var HelmReleaseV2Beta2SpecDriftDetectionMode;
(function (HelmReleaseV2Beta2SpecDriftDetectionMode) {
    /** enabled */
    HelmReleaseV2Beta2SpecDriftDetectionMode["ENABLED"] = "enabled";
    /** warn */
    HelmReleaseV2Beta2SpecDriftDetectionMode["WARN"] = "warn";
    /** disabled */
    HelmReleaseV2Beta2SpecDriftDetectionMode["DISABLED"] = "disabled";
})(HelmReleaseV2Beta2SpecDriftDetectionMode || (exports.HelmReleaseV2Beta2SpecDriftDetectionMode = HelmReleaseV2Beta2SpecDriftDetectionMode = {}));
/**
 * CRDs upgrade CRDs from the Helm Chart's crds directory according
 * to the CRD upgrade policy provided here. Valid values are `Skip`,
 * `Create` or `CreateReplace`. Default is `Create` and if omitted
 * CRDs are installed but not updated.
 *
 * Skip: do neither install nor replace (update) any CRDs.
 *
 * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
 *
 * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
 * but not deleted.
 *
 * By default, CRDs are applied (installed) during Helm install action.
 * With this option users can opt in to CRD replace existing CRDs on Helm
 * install actions, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Create` and if omitted
 * @schema HelmReleaseV2Beta2SpecInstallCrds
 */
var HelmReleaseV2Beta2SpecInstallCrds;
(function (HelmReleaseV2Beta2SpecInstallCrds) {
    /** Skip */
    HelmReleaseV2Beta2SpecInstallCrds["SKIP"] = "Skip";
    /** Create */
    HelmReleaseV2Beta2SpecInstallCrds["CREATE"] = "Create";
    /** CreateReplace */
    HelmReleaseV2Beta2SpecInstallCrds["CREATE_REPLACE"] = "CreateReplace";
})(HelmReleaseV2Beta2SpecInstallCrds || (exports.HelmReleaseV2Beta2SpecInstallCrds = HelmReleaseV2Beta2SpecInstallCrds = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecInstallRemediation' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecInstallRemediation(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignoreTestFailures': obj.ignoreTestFailures,
        'remediateLastFailure': obj.remediateLastFailure,
        'retries': obj.retries,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecKubeConfigSecretRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecKubeConfigSecretRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'key': obj.key,
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomize' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomize(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'images': obj.images?.map(y => toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizeImages(y)),
        'patches': obj.patches?.map(y => toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatches(y)),
        'patchesJson6902': obj.patchesJson6902?.map(y => toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902(y)),
        'patchesStrategicMerge': obj.patchesStrategicMerge?.map(y => y),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecTestFilters' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecTestFilters(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'exclude': obj.exclude,
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * DeletionPropagation specifies the deletion propagation policy when
 * a Helm uninstall is performed.
 *
 * @schema HelmReleaseV2Beta2SpecUninstallDeletionPropagation
 */
var HelmReleaseV2Beta2SpecUninstallDeletionPropagation;
(function (HelmReleaseV2Beta2SpecUninstallDeletionPropagation) {
    /** background */
    HelmReleaseV2Beta2SpecUninstallDeletionPropagation["BACKGROUND"] = "background";
    /** foreground */
    HelmReleaseV2Beta2SpecUninstallDeletionPropagation["FOREGROUND"] = "foreground";
    /** orphan */
    HelmReleaseV2Beta2SpecUninstallDeletionPropagation["ORPHAN"] = "orphan";
})(HelmReleaseV2Beta2SpecUninstallDeletionPropagation || (exports.HelmReleaseV2Beta2SpecUninstallDeletionPropagation = HelmReleaseV2Beta2SpecUninstallDeletionPropagation = {}));
/**
 * CRDs upgrade CRDs from the Helm Chart's crds directory according
 * to the CRD upgrade policy provided here. Valid values are `Skip`,
 * `Create` or `CreateReplace`. Default is `Skip` and if omitted
 * CRDs are neither installed nor upgraded.
 *
 * Skip: do neither install nor replace (update) any CRDs.
 *
 * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
 *
 * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
 * but not deleted.
 *
 * By default, CRDs are not applied during Helm upgrade action. With this
 * option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Skip` and if omitted
 * @schema HelmReleaseV2Beta2SpecUpgradeCrds
 */
var HelmReleaseV2Beta2SpecUpgradeCrds;
(function (HelmReleaseV2Beta2SpecUpgradeCrds) {
    /** Skip */
    HelmReleaseV2Beta2SpecUpgradeCrds["SKIP"] = "Skip";
    /** Create */
    HelmReleaseV2Beta2SpecUpgradeCrds["CREATE"] = "Create";
    /** CreateReplace */
    HelmReleaseV2Beta2SpecUpgradeCrds["CREATE_REPLACE"] = "CreateReplace";
})(HelmReleaseV2Beta2SpecUpgradeCrds || (exports.HelmReleaseV2Beta2SpecUpgradeCrds = HelmReleaseV2Beta2SpecUpgradeCrds = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecUpgradeRemediation' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecUpgradeRemediation(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'ignoreTestFailures': obj.ignoreTestFailures,
        'remediateLastFailure': obj.remediateLastFailure,
        'retries': obj.retries,
        'strategy': obj.strategy,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
 *
 * @schema HelmReleaseV2Beta2SpecValuesFromKind
 */
var HelmReleaseV2Beta2SpecValuesFromKind;
(function (HelmReleaseV2Beta2SpecValuesFromKind) {
    /** Secret */
    HelmReleaseV2Beta2SpecValuesFromKind["SECRET"] = "Secret";
    /** ConfigMap */
    HelmReleaseV2Beta2SpecValuesFromKind["CONFIG_MAP"] = "ConfigMap";
})(HelmReleaseV2Beta2SpecValuesFromKind || (exports.HelmReleaseV2Beta2SpecValuesFromKind = HelmReleaseV2Beta2SpecValuesFromKind = {}));
/**
 * Determines what enables the creation of a new artifact. Valid values are
 * ('ChartVersion', 'Revision').
 * See the documentation of the values for an explanation on their behavior.
 * Defaults to ChartVersion when omitted.
 *
 * @default ChartVersion when omitted.
 * @schema HelmReleaseV2Beta2SpecChartSpecReconcileStrategy
 */
var HelmReleaseV2Beta2SpecChartSpecReconcileStrategy;
(function (HelmReleaseV2Beta2SpecChartSpecReconcileStrategy) {
    /** ChartVersion */
    HelmReleaseV2Beta2SpecChartSpecReconcileStrategy["CHART_VERSION"] = "ChartVersion";
    /** Revision */
    HelmReleaseV2Beta2SpecChartSpecReconcileStrategy["REVISION"] = "Revision";
})(HelmReleaseV2Beta2SpecChartSpecReconcileStrategy || (exports.HelmReleaseV2Beta2SpecChartSpecReconcileStrategy = HelmReleaseV2Beta2SpecChartSpecReconcileStrategy = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpecSourceRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChartSpecSourceRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'apiVersion': obj.apiVersion,
        'kind': obj.kind,
        'name': obj.name,
        'namespace': obj.namespace,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpecVerify' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChartSpecVerify(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'provider': obj.provider,
        'secretRef': toJson_HelmReleaseV2Beta2SpecChartSpecVerifySecretRef(obj.secretRef),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizeImages' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizeImages(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'digest': obj.digest,
        'name': obj.name,
        'newName': obj.newName,
        'newTag': obj.newTag,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatches' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatches(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'patch': obj.patch,
        'target': toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'patch': obj.patch?.map(y => toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch(y)),
        'target': toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target(obj.target),
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Strategy to use for failure remediation. Defaults to 'rollback'.
 *
 * @default rollback'.
 * @schema HelmReleaseV2Beta2SpecUpgradeRemediationStrategy
 */
var HelmReleaseV2Beta2SpecUpgradeRemediationStrategy;
(function (HelmReleaseV2Beta2SpecUpgradeRemediationStrategy) {
    /** rollback */
    HelmReleaseV2Beta2SpecUpgradeRemediationStrategy["ROLLBACK"] = "rollback";
    /** uninstall */
    HelmReleaseV2Beta2SpecUpgradeRemediationStrategy["UNINSTALL"] = "uninstall";
})(HelmReleaseV2Beta2SpecUpgradeRemediationStrategy || (exports.HelmReleaseV2Beta2SpecUpgradeRemediationStrategy = HelmReleaseV2Beta2SpecUpgradeRemediationStrategy = {}));
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecSourceRefKind
 */
var HelmReleaseV2Beta2SpecChartSpecSourceRefKind;
(function (HelmReleaseV2Beta2SpecChartSpecSourceRefKind) {
    /** HelmRepository */
    HelmReleaseV2Beta2SpecChartSpecSourceRefKind["HELM_REPOSITORY"] = "HelmRepository";
    /** GitRepository */
    HelmReleaseV2Beta2SpecChartSpecSourceRefKind["GIT_REPOSITORY"] = "GitRepository";
    /** Bucket */
    HelmReleaseV2Beta2SpecChartSpecSourceRefKind["BUCKET"] = "Bucket";
})(HelmReleaseV2Beta2SpecChartSpecSourceRefKind || (exports.HelmReleaseV2Beta2SpecChartSpecSourceRefKind = HelmReleaseV2Beta2SpecChartSpecSourceRefKind = {}));
/**
 * Provider specifies the technology used to sign the OCI Helm chart.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecVerifyProvider
 */
var HelmReleaseV2Beta2SpecChartSpecVerifyProvider;
(function (HelmReleaseV2Beta2SpecChartSpecVerifyProvider) {
    /** cosign */
    HelmReleaseV2Beta2SpecChartSpecVerifyProvider["COSIGN"] = "cosign";
    /** notation */
    HelmReleaseV2Beta2SpecChartSpecVerifyProvider["NOTATION"] = "notation";
})(HelmReleaseV2Beta2SpecChartSpecVerifyProvider || (exports.HelmReleaseV2Beta2SpecChartSpecVerifyProvider = HelmReleaseV2Beta2SpecChartSpecVerifyProvider = {}));
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpecVerifySecretRef' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecChartSpecVerifySecretRef(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'name': obj.name,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'from': obj.from,
        'op': obj.op,
        'path': obj.path,
        'value': obj.value,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target' to JSON representation.
 */
/* eslint-disable max-len, quote-props */
function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target(obj) {
    if (obj === undefined) {
        return undefined;
    }
    const result = {
        'annotationSelector': obj.annotationSelector,
        'group': obj.group,
        'kind': obj.kind,
        'labelSelector': obj.labelSelector,
        'name': obj.name,
        'namespace': obj.namespace,
        'version': obj.version,
    };
    // filter undefined values
    return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
 * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
 * "test".
 * https://datatracker.ietf.org/doc/html/rfc6902#section-4
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp
 */
var HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp;
(function (HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp) {
    /** test */
    HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp["TEST"] = "test";
    /** remove */
    HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp["REMOVE"] = "remove";
    /** add */
    HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp["ADD"] = "add";
    /** replace */
    HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp["REPLACE"] = "replace";
    /** move */
    HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp["MOVE"] = "move";
    /** copy */
    HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp["COPY"] = "copy";
})(HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp || (exports.HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp = HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp = {}));
//# sourceMappingURL=helm.toolkit.fluxcd.io.js.map