import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
/**
 * Application is a definition of Application resource.
 */
export interface IApplication {
    /**
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
     */
    "apiVersion": "argoproj.io/v1alpha1";
    /**
     * Kind is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
     */
    "kind": "Application";
    "metadata": IObjectMeta;
    /**
     * Operation contains information about a requested or running operation
     */
    "operation"?: {
        /**
         * Info is a list of informational items for this operation
         */
        "info"?: Array<{
            "name": string;
            "value": string;
        }>;
        /**
         * InitiatedBy contains information about who initiated the operations
         */
        "initiatedBy"?: {
            /**
             * Automated is set to true if operation was initiated automatically by the application controller.
             */
            "automated"?: boolean;
            /**
             * Username contains the name of a user who started operation
             */
            "username"?: string;
        };
        /**
         * Retry controls the strategy to apply if a sync fails
         */
        "retry"?: {
            /**
             * Backoff controls how to backoff on subsequent retries of failed syncs
             */
            "backoff"?: {
                /**
                 * Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                 */
                "duration"?: string;
                /**
                 * Factor is a factor to multiply the base duration after each failed retry
                 */
                "factor"?: number;
                /**
                 * MaxDuration is the maximum amount of time allowed for the backoff strategy
                 */
                "maxDuration"?: string;
            };
            /**
             * Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
             */
            "limit"?: number;
        };
        /**
         * Sync contains parameters for the operation
         */
        "sync"?: {
            /**
             * SelfHealAttemptsCount contains the number of auto-heal attempts
             */
            "autoHealAttemptsCount"?: number;
            /**
             * DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync
             */
            "dryRun"?: boolean;
            /**
             * Manifests is an optional field that overrides sync source with a local directory for development
             */
            "manifests"?: Array<string>;
            /**
             * Prune specifies to delete resources from the cluster that are no longer tracked in git
             */
            "prune"?: boolean;
            /**
             * Resources describes which resources shall be part of the sync
             */
            "resources"?: Array<{
                "group"?: string;
                "kind": string;
                "name": string;
                "namespace"?: string;
            }>;
            /**
             * Revision is the revision (Git) or chart version (Helm) which to sync the application to
             * If omitted, will use the revision specified in app spec.
             */
            "revision"?: string;
            /**
             * Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to
             * If omitted, will use the revision specified in app spec.
             */
            "revisions"?: Array<string>;
            /**
             * Source overrides the source definition set in the application.
             * This is typically set in a Rollback operation and is nil during a Sync operation
             */
            "source"?: {
                /**
                 * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                 */
                "chart"?: string;
                /**
                 * Directory holds path/directory specific options
                 */
                "directory"?: {
                    /**
                     * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                     */
                    "exclude"?: string;
                    /**
                     * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                     */
                    "include"?: string;
                    /**
                     * Jsonnet holds options specific to Jsonnet
                     */
                    "jsonnet"?: {
                        /**
                         * ExtVars is a list of Jsonnet External Variables
                         */
                        "extVars"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                        /**
                         * Additional library search dirs
                         */
                        "libs"?: Array<string>;
                        /**
                         * TLAS is a list of Jsonnet Top-level Arguments
                         */
                        "tlas"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                    };
                    /**
                     * Recurse specifies whether to scan a directory recursively for manifests
                     */
                    "recurse"?: boolean;
                };
                /**
                 * Helm holds helm specific options
                 */
                "helm"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * FileParameters are file parameters to the helm template
                     */
                    "fileParameters"?: Array<{
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Path is the path to the file containing the values for the Helm parameter
                         */
                        "path"?: string;
                    }>;
                    /**
                     * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                     */
                    "ignoreMissingValueFiles"?: boolean;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                     */
                    "namespace"?: string;
                    /**
                     * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                     */
                    "parameters"?: Array<{
                        /**
                         * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                         */
                        "forceString"?: boolean;
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Value is the value for the Helm parameter
                         */
                        "value"?: string;
                    }>;
                    /**
                     * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                     */
                    "passCredentials"?: boolean;
                    /**
                     * ReleaseName is the Helm release name to use. If omitted it will use the application name
                     */
                    "releaseName"?: string;
                    /**
                     * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                     */
                    "skipCrds"?: boolean;
                    /**
                     * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                     */
                    "skipSchemaValidation"?: boolean;
                    /**
                     * SkipTests skips test manifest installation step (Helm's --skip-tests).
                     */
                    "skipTests"?: boolean;
                    /**
                     * ValuesFiles is a list of Helm value files to use when generating a template
                     */
                    "valueFiles"?: Array<string>;
                    /**
                     * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                     */
                    "values"?: string;
                    /**
                     * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                     */
                    "valuesObject"?: {};
                    /**
                     * Version is the Helm version to use for templating ("3")
                     */
                    "version"?: string;
                };
                /**
                 * Kustomize holds kustomize specific options
                 */
                "kustomize"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * CommonAnnotations is a list of additional annotations to add to rendered manifests
                     */
                    "commonAnnotations"?: {
                        [key: string]: string;
                    };
                    /**
                     * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                     */
                    "commonAnnotationsEnvsubst"?: boolean;
                    /**
                     * CommonLabels is a list of additional labels to add to rendered manifests
                     */
                    "commonLabels"?: {
                        [key: string]: string;
                    };
                    /**
                     * Components specifies a list of kustomize components to add to the kustomization before building
                     */
                    "components"?: Array<string>;
                    /**
                     * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                     */
                    "forceCommonAnnotations"?: boolean;
                    /**
                     * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                     */
                    "forceCommonLabels"?: boolean;
                    /**
                     * Images is a list of Kustomize image override specifications
                     */
                    "images"?: Array<string>;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                     */
                    "labelWithoutSelector"?: boolean;
                    /**
                     * NamePrefix is a prefix appended to resources for Kustomize apps
                     */
                    "namePrefix"?: string;
                    /**
                     * NameSuffix is a suffix appended to resources for Kustomize apps
                     */
                    "nameSuffix"?: string;
                    /**
                     * Namespace sets the namespace that Kustomize adds to all resources
                     */
                    "namespace"?: string;
                    /**
                     * Patches is a list of Kustomize patches
                     */
                    "patches"?: Array<{
                        "options"?: {
                            [key: string]: boolean;
                        };
                        "patch"?: string;
                        "path"?: string;
                        "target"?: {
                            "annotationSelector"?: string;
                            "group"?: string;
                            "kind"?: string;
                            "labelSelector"?: string;
                            "name"?: string;
                            "namespace"?: string;
                            "version"?: string;
                        };
                    }>;
                    /**
                     * Replicas is a list of Kustomize Replicas override specifications
                     */
                    "replicas"?: Array<{
                        /**
                         * Number of replicas
                         */
                        "count": number | string;
                        /**
                         * Name of Deployment or StatefulSet
                         */
                        "name": string;
                    }>;
                    /**
                     * Version controls which version of Kustomize to use for rendering manifests
                     */
                    "version"?: string;
                };
                /**
                 * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                 */
                "name"?: string;
                /**
                 * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                 */
                "path"?: string;
                /**
                 * Plugin holds config management plugin specific options
                 */
                "plugin"?: {
                    /**
                     * Env is a list of environment variable entries
                     */
                    "env"?: Array<{
                        /**
                         * Name is the name of the variable, usually expressed in uppercase
                         */
                        "name": string;
                        /**
                         * Value is the value of the variable
                         */
                        "value": string;
                    }>;
                    "name"?: string;
                    "parameters"?: Array<{
                        /**
                         * Array is the value of an array type parameter.
                         */
                        "array"?: Array<string>;
                        /**
                         * Map is the value of a map type parameter.
                         */
                        "map"?: {
                            [key: string]: string;
                        };
                        /**
                         * Name is the name identifying a parameter.
                         */
                        "name"?: string;
                        /**
                         * String_ is the value of a string type parameter.
                         */
                        "string"?: string;
                    }>;
                };
                /**
                 * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                 */
                "ref"?: string;
                /**
                 * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                 */
                "repoURL": string;
                /**
                 * TargetRevision defines the revision of the source to sync the application to.
                 * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                 * In case of Helm, this is a semver tag for the Chart's version.
                 */
                "targetRevision"?: string;
            };
            /**
             * Sources overrides the source definition set in the application.
             * This is typically set in a Rollback operation and is nil during a Sync operation
             */
            "sources"?: Array<{
                /**
                 * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                 */
                "chart"?: string;
                /**
                 * Directory holds path/directory specific options
                 */
                "directory"?: {
                    /**
                     * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                     */
                    "exclude"?: string;
                    /**
                     * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                     */
                    "include"?: string;
                    /**
                     * Jsonnet holds options specific to Jsonnet
                     */
                    "jsonnet"?: {
                        /**
                         * ExtVars is a list of Jsonnet External Variables
                         */
                        "extVars"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                        /**
                         * Additional library search dirs
                         */
                        "libs"?: Array<string>;
                        /**
                         * TLAS is a list of Jsonnet Top-level Arguments
                         */
                        "tlas"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                    };
                    /**
                     * Recurse specifies whether to scan a directory recursively for manifests
                     */
                    "recurse"?: boolean;
                };
                /**
                 * Helm holds helm specific options
                 */
                "helm"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * FileParameters are file parameters to the helm template
                     */
                    "fileParameters"?: Array<{
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Path is the path to the file containing the values for the Helm parameter
                         */
                        "path"?: string;
                    }>;
                    /**
                     * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                     */
                    "ignoreMissingValueFiles"?: boolean;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                     */
                    "namespace"?: string;
                    /**
                     * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                     */
                    "parameters"?: Array<{
                        /**
                         * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                         */
                        "forceString"?: boolean;
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Value is the value for the Helm parameter
                         */
                        "value"?: string;
                    }>;
                    /**
                     * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                     */
                    "passCredentials"?: boolean;
                    /**
                     * ReleaseName is the Helm release name to use. If omitted it will use the application name
                     */
                    "releaseName"?: string;
                    /**
                     * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                     */
                    "skipCrds"?: boolean;
                    /**
                     * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                     */
                    "skipSchemaValidation"?: boolean;
                    /**
                     * SkipTests skips test manifest installation step (Helm's --skip-tests).
                     */
                    "skipTests"?: boolean;
                    /**
                     * ValuesFiles is a list of Helm value files to use when generating a template
                     */
                    "valueFiles"?: Array<string>;
                    /**
                     * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                     */
                    "values"?: string;
                    /**
                     * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                     */
                    "valuesObject"?: {};
                    /**
                     * Version is the Helm version to use for templating ("3")
                     */
                    "version"?: string;
                };
                /**
                 * Kustomize holds kustomize specific options
                 */
                "kustomize"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * CommonAnnotations is a list of additional annotations to add to rendered manifests
                     */
                    "commonAnnotations"?: {
                        [key: string]: string;
                    };
                    /**
                     * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                     */
                    "commonAnnotationsEnvsubst"?: boolean;
                    /**
                     * CommonLabels is a list of additional labels to add to rendered manifests
                     */
                    "commonLabels"?: {
                        [key: string]: string;
                    };
                    /**
                     * Components specifies a list of kustomize components to add to the kustomization before building
                     */
                    "components"?: Array<string>;
                    /**
                     * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                     */
                    "forceCommonAnnotations"?: boolean;
                    /**
                     * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                     */
                    "forceCommonLabels"?: boolean;
                    /**
                     * Images is a list of Kustomize image override specifications
                     */
                    "images"?: Array<string>;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                     */
                    "labelWithoutSelector"?: boolean;
                    /**
                     * NamePrefix is a prefix appended to resources for Kustomize apps
                     */
                    "namePrefix"?: string;
                    /**
                     * NameSuffix is a suffix appended to resources for Kustomize apps
                     */
                    "nameSuffix"?: string;
                    /**
                     * Namespace sets the namespace that Kustomize adds to all resources
                     */
                    "namespace"?: string;
                    /**
                     * Patches is a list of Kustomize patches
                     */
                    "patches"?: Array<{
                        "options"?: {
                            [key: string]: boolean;
                        };
                        "patch"?: string;
                        "path"?: string;
                        "target"?: {
                            "annotationSelector"?: string;
                            "group"?: string;
                            "kind"?: string;
                            "labelSelector"?: string;
                            "name"?: string;
                            "namespace"?: string;
                            "version"?: string;
                        };
                    }>;
                    /**
                     * Replicas is a list of Kustomize Replicas override specifications
                     */
                    "replicas"?: Array<{
                        /**
                         * Number of replicas
                         */
                        "count": number | string;
                        /**
                         * Name of Deployment or StatefulSet
                         */
                        "name": string;
                    }>;
                    /**
                     * Version controls which version of Kustomize to use for rendering manifests
                     */
                    "version"?: string;
                };
                /**
                 * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                 */
                "name"?: string;
                /**
                 * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                 */
                "path"?: string;
                /**
                 * Plugin holds config management plugin specific options
                 */
                "plugin"?: {
                    /**
                     * Env is a list of environment variable entries
                     */
                    "env"?: Array<{
                        /**
                         * Name is the name of the variable, usually expressed in uppercase
                         */
                        "name": string;
                        /**
                         * Value is the value of the variable
                         */
                        "value": string;
                    }>;
                    "name"?: string;
                    "parameters"?: Array<{
                        /**
                         * Array is the value of an array type parameter.
                         */
                        "array"?: Array<string>;
                        /**
                         * Map is the value of a map type parameter.
                         */
                        "map"?: {
                            [key: string]: string;
                        };
                        /**
                         * Name is the name identifying a parameter.
                         */
                        "name"?: string;
                        /**
                         * String_ is the value of a string type parameter.
                         */
                        "string"?: string;
                    }>;
                };
                /**
                 * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                 */
                "ref"?: string;
                /**
                 * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                 */
                "repoURL": string;
                /**
                 * TargetRevision defines the revision of the source to sync the application to.
                 * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                 * In case of Helm, this is a semver tag for the Chart's version.
                 */
                "targetRevision"?: string;
            }>;
            /**
             * SyncOptions provide per-sync sync-options, e.g. Validate=false
             */
            "syncOptions"?: Array<string>;
            /**
             * SyncStrategy describes how to perform the sync
             */
            "syncStrategy"?: {
                /**
                 * Apply will perform a `kubectl apply` to perform the sync.
                 */
                "apply"?: {
                    /**
                     * Force indicates whether or not to supply the --force flag to `kubectl apply`.
                     * The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
                     * retried for 5 times.
                     */
                    "force"?: boolean;
                };
                /**
                 * Hook will submit any referenced resources to perform the sync. This is the default strategy
                 */
                "hook"?: {
                    /**
                     * Force indicates whether or not to supply the --force flag to `kubectl apply`.
                     * The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
                     * retried for 5 times.
                     */
                    "force"?: boolean;
                };
            };
        };
    };
    /**
     * ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.
     */
    "spec": {
        /**
         * Destination is a reference to the target Kubernetes server and namespace
         */
        "destination": {
            /**
             * Name is an alternate way of specifying the target cluster by its symbolic name. This must be set if Server is not set.
             */
            "name"?: string;
            /**
             * Namespace specifies the target namespace for the application's resources.
             * The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
             */
            "namespace"?: string;
            /**
             * Server specifies the URL of the target cluster's Kubernetes control plane API. This must be set if Name is not set.
             */
            "server"?: string;
        };
        /**
         * IgnoreDifferences is a list of resources and their fields which should be ignored during comparison
         */
        "ignoreDifferences"?: Array<{
            "group"?: string;
            "jqPathExpressions"?: Array<string>;
            "jsonPointers"?: Array<string>;
            "kind": string;
            /**
             * ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the
             * desired state defined in the SCM and won't be displayed in diffs
             */
            "managedFieldsManagers"?: Array<string>;
            "name"?: string;
            "namespace"?: string;
        }>;
        /**
         * Info contains a list of information (URLs, email addresses, and plain text) that relates to the application
         */
        "info"?: Array<{
            "name": string;
            "value": string;
        }>;
        /**
         * Project is a reference to the project this application belongs to.
         * The empty string means that application belongs to the 'default' project.
         */
        "project": string;
        /**
         * RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions.
         * This should only be changed in exceptional circumstances.
         * Setting to zero will store no history. This will reduce storage used.
         * Increasing will increase the space used to store the history, so we do not recommend increasing it.
         * Default is 10.
         */
        "revisionHistoryLimit"?: number;
        /**
         * Source is a reference to the location of the application's manifests or chart
         */
        "source"?: {
            /**
             * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
             */
            "chart"?: string;
            /**
             * Directory holds path/directory specific options
             */
            "directory"?: {
                /**
                 * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                 */
                "exclude"?: string;
                /**
                 * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                 */
                "include"?: string;
                /**
                 * Jsonnet holds options specific to Jsonnet
                 */
                "jsonnet"?: {
                    /**
                     * ExtVars is a list of Jsonnet External Variables
                     */
                    "extVars"?: Array<{
                        "code"?: boolean;
                        "name": string;
                        "value": string;
                    }>;
                    /**
                     * Additional library search dirs
                     */
                    "libs"?: Array<string>;
                    /**
                     * TLAS is a list of Jsonnet Top-level Arguments
                     */
                    "tlas"?: Array<{
                        "code"?: boolean;
                        "name": string;
                        "value": string;
                    }>;
                };
                /**
                 * Recurse specifies whether to scan a directory recursively for manifests
                 */
                "recurse"?: boolean;
            };
            /**
             * Helm holds helm specific options
             */
            "helm"?: {
                /**
                 * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                 * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                 */
                "apiVersions"?: Array<string>;
                /**
                 * FileParameters are file parameters to the helm template
                 */
                "fileParameters"?: Array<{
                    /**
                     * Name is the name of the Helm parameter
                     */
                    "name"?: string;
                    /**
                     * Path is the path to the file containing the values for the Helm parameter
                     */
                    "path"?: string;
                }>;
                /**
                 * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                 */
                "ignoreMissingValueFiles"?: boolean;
                /**
                 * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                 * uses the Kubernetes version of the target cluster.
                 */
                "kubeVersion"?: string;
                /**
                 * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                 */
                "namespace"?: string;
                /**
                 * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                 */
                "parameters"?: Array<{
                    /**
                     * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                     */
                    "forceString"?: boolean;
                    /**
                     * Name is the name of the Helm parameter
                     */
                    "name"?: string;
                    /**
                     * Value is the value for the Helm parameter
                     */
                    "value"?: string;
                }>;
                /**
                 * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                 */
                "passCredentials"?: boolean;
                /**
                 * ReleaseName is the Helm release name to use. If omitted it will use the application name
                 */
                "releaseName"?: string;
                /**
                 * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                 */
                "skipCrds"?: boolean;
                /**
                 * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                 */
                "skipSchemaValidation"?: boolean;
                /**
                 * SkipTests skips test manifest installation step (Helm's --skip-tests).
                 */
                "skipTests"?: boolean;
                /**
                 * ValuesFiles is a list of Helm value files to use when generating a template
                 */
                "valueFiles"?: Array<string>;
                /**
                 * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                 */
                "values"?: string;
                /**
                 * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                 */
                "valuesObject"?: {};
                /**
                 * Version is the Helm version to use for templating ("3")
                 */
                "version"?: string;
            };
            /**
             * Kustomize holds kustomize specific options
             */
            "kustomize"?: {
                /**
                 * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                 * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                 */
                "apiVersions"?: Array<string>;
                /**
                 * CommonAnnotations is a list of additional annotations to add to rendered manifests
                 */
                "commonAnnotations"?: {
                    [key: string]: string;
                };
                /**
                 * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                 */
                "commonAnnotationsEnvsubst"?: boolean;
                /**
                 * CommonLabels is a list of additional labels to add to rendered manifests
                 */
                "commonLabels"?: {
                    [key: string]: string;
                };
                /**
                 * Components specifies a list of kustomize components to add to the kustomization before building
                 */
                "components"?: Array<string>;
                /**
                 * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                 */
                "forceCommonAnnotations"?: boolean;
                /**
                 * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                 */
                "forceCommonLabels"?: boolean;
                /**
                 * Images is a list of Kustomize image override specifications
                 */
                "images"?: Array<string>;
                /**
                 * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                 * uses the Kubernetes version of the target cluster.
                 */
                "kubeVersion"?: string;
                /**
                 * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                 */
                "labelWithoutSelector"?: boolean;
                /**
                 * NamePrefix is a prefix appended to resources for Kustomize apps
                 */
                "namePrefix"?: string;
                /**
                 * NameSuffix is a suffix appended to resources for Kustomize apps
                 */
                "nameSuffix"?: string;
                /**
                 * Namespace sets the namespace that Kustomize adds to all resources
                 */
                "namespace"?: string;
                /**
                 * Patches is a list of Kustomize patches
                 */
                "patches"?: Array<{
                    "options"?: {
                        [key: string]: boolean;
                    };
                    "patch"?: string;
                    "path"?: string;
                    "target"?: {
                        "annotationSelector"?: string;
                        "group"?: string;
                        "kind"?: string;
                        "labelSelector"?: string;
                        "name"?: string;
                        "namespace"?: string;
                        "version"?: string;
                    };
                }>;
                /**
                 * Replicas is a list of Kustomize Replicas override specifications
                 */
                "replicas"?: Array<{
                    /**
                     * Number of replicas
                     */
                    "count": number | string;
                    /**
                     * Name of Deployment or StatefulSet
                     */
                    "name": string;
                }>;
                /**
                 * Version controls which version of Kustomize to use for rendering manifests
                 */
                "version"?: string;
            };
            /**
             * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
             */
            "name"?: string;
            /**
             * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
             */
            "path"?: string;
            /**
             * Plugin holds config management plugin specific options
             */
            "plugin"?: {
                /**
                 * Env is a list of environment variable entries
                 */
                "env"?: Array<{
                    /**
                     * Name is the name of the variable, usually expressed in uppercase
                     */
                    "name": string;
                    /**
                     * Value is the value of the variable
                     */
                    "value": string;
                }>;
                "name"?: string;
                "parameters"?: Array<{
                    /**
                     * Array is the value of an array type parameter.
                     */
                    "array"?: Array<string>;
                    /**
                     * Map is the value of a map type parameter.
                     */
                    "map"?: {
                        [key: string]: string;
                    };
                    /**
                     * Name is the name identifying a parameter.
                     */
                    "name"?: string;
                    /**
                     * String_ is the value of a string type parameter.
                     */
                    "string"?: string;
                }>;
            };
            /**
             * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
             */
            "ref"?: string;
            /**
             * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
             */
            "repoURL": string;
            /**
             * TargetRevision defines the revision of the source to sync the application to.
             * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
             * In case of Helm, this is a semver tag for the Chart's version.
             */
            "targetRevision"?: string;
        };
        /**
         * SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.
         */
        "sourceHydrator"?: {
            /**
             * DrySource specifies where the dry "don't repeat yourself" manifest source lives.
             */
            "drySource": {
                /**
                 * Path is a directory path within the Git repository where the manifests are located
                 */
                "path": string;
                /**
                 * RepoURL is the URL to the git repository that contains the application manifests
                 */
                "repoURL": string;
                /**
                 * TargetRevision defines the revision of the source to hydrate
                 */
                "targetRevision": string;
            };
            /**
             * HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
             * have to move manifests to the SyncSource, e.g. by pull request.
             */
            "hydrateTo"?: {
                /**
                 * TargetBranch is the branch to which hydrated manifests should be committed
                 */
                "targetBranch": string;
            };
            /**
             * SyncSource specifies where to sync hydrated manifests from.
             */
            "syncSource": {
                /**
                 * Path is a directory path within the git repository where hydrated manifests should be committed to and synced
                 * from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
                 */
                "path": string;
                /**
                 * TargetBranch is the branch to which hydrated manifests should be committed
                 */
                "targetBranch": string;
            };
        };
        /**
         * Sources is a reference to the location of the application's manifests or chart
         */
        "sources"?: Array<{
            /**
             * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
             */
            "chart"?: string;
            /**
             * Directory holds path/directory specific options
             */
            "directory"?: {
                /**
                 * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                 */
                "exclude"?: string;
                /**
                 * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                 */
                "include"?: string;
                /**
                 * Jsonnet holds options specific to Jsonnet
                 */
                "jsonnet"?: {
                    /**
                     * ExtVars is a list of Jsonnet External Variables
                     */
                    "extVars"?: Array<{
                        "code"?: boolean;
                        "name": string;
                        "value": string;
                    }>;
                    /**
                     * Additional library search dirs
                     */
                    "libs"?: Array<string>;
                    /**
                     * TLAS is a list of Jsonnet Top-level Arguments
                     */
                    "tlas"?: Array<{
                        "code"?: boolean;
                        "name": string;
                        "value": string;
                    }>;
                };
                /**
                 * Recurse specifies whether to scan a directory recursively for manifests
                 */
                "recurse"?: boolean;
            };
            /**
             * Helm holds helm specific options
             */
            "helm"?: {
                /**
                 * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                 * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                 */
                "apiVersions"?: Array<string>;
                /**
                 * FileParameters are file parameters to the helm template
                 */
                "fileParameters"?: Array<{
                    /**
                     * Name is the name of the Helm parameter
                     */
                    "name"?: string;
                    /**
                     * Path is the path to the file containing the values for the Helm parameter
                     */
                    "path"?: string;
                }>;
                /**
                 * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                 */
                "ignoreMissingValueFiles"?: boolean;
                /**
                 * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                 * uses the Kubernetes version of the target cluster.
                 */
                "kubeVersion"?: string;
                /**
                 * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                 */
                "namespace"?: string;
                /**
                 * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                 */
                "parameters"?: Array<{
                    /**
                     * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                     */
                    "forceString"?: boolean;
                    /**
                     * Name is the name of the Helm parameter
                     */
                    "name"?: string;
                    /**
                     * Value is the value for the Helm parameter
                     */
                    "value"?: string;
                }>;
                /**
                 * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                 */
                "passCredentials"?: boolean;
                /**
                 * ReleaseName is the Helm release name to use. If omitted it will use the application name
                 */
                "releaseName"?: string;
                /**
                 * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                 */
                "skipCrds"?: boolean;
                /**
                 * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                 */
                "skipSchemaValidation"?: boolean;
                /**
                 * SkipTests skips test manifest installation step (Helm's --skip-tests).
                 */
                "skipTests"?: boolean;
                /**
                 * ValuesFiles is a list of Helm value files to use when generating a template
                 */
                "valueFiles"?: Array<string>;
                /**
                 * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                 */
                "values"?: string;
                /**
                 * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                 */
                "valuesObject"?: {};
                /**
                 * Version is the Helm version to use for templating ("3")
                 */
                "version"?: string;
            };
            /**
             * Kustomize holds kustomize specific options
             */
            "kustomize"?: {
                /**
                 * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                 * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                 */
                "apiVersions"?: Array<string>;
                /**
                 * CommonAnnotations is a list of additional annotations to add to rendered manifests
                 */
                "commonAnnotations"?: {
                    [key: string]: string;
                };
                /**
                 * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                 */
                "commonAnnotationsEnvsubst"?: boolean;
                /**
                 * CommonLabels is a list of additional labels to add to rendered manifests
                 */
                "commonLabels"?: {
                    [key: string]: string;
                };
                /**
                 * Components specifies a list of kustomize components to add to the kustomization before building
                 */
                "components"?: Array<string>;
                /**
                 * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                 */
                "forceCommonAnnotations"?: boolean;
                /**
                 * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                 */
                "forceCommonLabels"?: boolean;
                /**
                 * Images is a list of Kustomize image override specifications
                 */
                "images"?: Array<string>;
                /**
                 * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                 * uses the Kubernetes version of the target cluster.
                 */
                "kubeVersion"?: string;
                /**
                 * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                 */
                "labelWithoutSelector"?: boolean;
                /**
                 * NamePrefix is a prefix appended to resources for Kustomize apps
                 */
                "namePrefix"?: string;
                /**
                 * NameSuffix is a suffix appended to resources for Kustomize apps
                 */
                "nameSuffix"?: string;
                /**
                 * Namespace sets the namespace that Kustomize adds to all resources
                 */
                "namespace"?: string;
                /**
                 * Patches is a list of Kustomize patches
                 */
                "patches"?: Array<{
                    "options"?: {
                        [key: string]: boolean;
                    };
                    "patch"?: string;
                    "path"?: string;
                    "target"?: {
                        "annotationSelector"?: string;
                        "group"?: string;
                        "kind"?: string;
                        "labelSelector"?: string;
                        "name"?: string;
                        "namespace"?: string;
                        "version"?: string;
                    };
                }>;
                /**
                 * Replicas is a list of Kustomize Replicas override specifications
                 */
                "replicas"?: Array<{
                    /**
                     * Number of replicas
                     */
                    "count": number | string;
                    /**
                     * Name of Deployment or StatefulSet
                     */
                    "name": string;
                }>;
                /**
                 * Version controls which version of Kustomize to use for rendering manifests
                 */
                "version"?: string;
            };
            /**
             * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
             */
            "name"?: string;
            /**
             * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
             */
            "path"?: string;
            /**
             * Plugin holds config management plugin specific options
             */
            "plugin"?: {
                /**
                 * Env is a list of environment variable entries
                 */
                "env"?: Array<{
                    /**
                     * Name is the name of the variable, usually expressed in uppercase
                     */
                    "name": string;
                    /**
                     * Value is the value of the variable
                     */
                    "value": string;
                }>;
                "name"?: string;
                "parameters"?: Array<{
                    /**
                     * Array is the value of an array type parameter.
                     */
                    "array"?: Array<string>;
                    /**
                     * Map is the value of a map type parameter.
                     */
                    "map"?: {
                        [key: string]: string;
                    };
                    /**
                     * Name is the name identifying a parameter.
                     */
                    "name"?: string;
                    /**
                     * String_ is the value of a string type parameter.
                     */
                    "string"?: string;
                }>;
            };
            /**
             * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
             */
            "ref"?: string;
            /**
             * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
             */
            "repoURL": string;
            /**
             * TargetRevision defines the revision of the source to sync the application to.
             * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
             * In case of Helm, this is a semver tag for the Chart's version.
             */
            "targetRevision"?: string;
        }>;
        /**
         * SyncPolicy controls when and how a sync will be performed
         */
        "syncPolicy"?: {
            /**
             * Automated will keep an application synced to the target revision
             */
            "automated"?: {
                /**
                 * AllowEmpty allows apps have zero live resources (default: false)
                 */
                "allowEmpty"?: boolean;
                /**
                 * Prune specifies whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false)
                 */
                "prune"?: boolean;
                /**
                 * SelfHeal specifies whether to revert resources back to their desired state upon modification in the cluster (default: false)
                 */
                "selfHeal"?: boolean;
            };
            /**
             * ManagedNamespaceMetadata controls metadata in the given namespace (if CreateNamespace=true)
             */
            "managedNamespaceMetadata"?: {
                "annotations"?: {
                    [key: string]: string;
                };
                "labels"?: {
                    [key: string]: string;
                };
            };
            /**
             * Retry controls failed sync retry behavior
             */
            "retry"?: {
                /**
                 * Backoff controls how to backoff on subsequent retries of failed syncs
                 */
                "backoff"?: {
                    /**
                     * Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                     */
                    "duration"?: string;
                    /**
                     * Factor is a factor to multiply the base duration after each failed retry
                     */
                    "factor"?: number;
                    /**
                     * MaxDuration is the maximum amount of time allowed for the backoff strategy
                     */
                    "maxDuration"?: string;
                };
                /**
                 * Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
                 */
                "limit"?: number;
            };
            /**
             * Options allow you to specify whole app sync-options
             */
            "syncOptions"?: Array<string>;
        };
    };
    /**
     * ApplicationStatus contains status information for the application
     */
    "status"?: {
        /**
         * Conditions is a list of currently observed application conditions
         */
        "conditions"?: Array<{
            /**
             * LastTransitionTime is the time the condition was last observed
             */
            "lastTransitionTime"?: string;
            /**
             * Message contains human-readable message indicating details about condition
             */
            "message": string;
            /**
             * Type is an application condition type
             */
            "type": string;
        }>;
        /**
         * ControllerNamespace indicates the namespace in which the application controller is located
         */
        "controllerNamespace"?: string;
        /**
         * Health contains information about the application's current health status
         */
        "health"?: {
            /**
             * LastTransitionTime is the time the HealthStatus was set or updated
             */
            "lastTransitionTime"?: string;
            /**
             * Message is a human-readable informational message describing the health status
             */
            "message"?: string;
            /**
             * Status holds the status code of the application or resource
             */
            "status"?: string;
        };
        /**
         * History contains information about the application's sync history
         */
        "history"?: Array<{
            /**
             * DeployStartedAt holds the time the sync operation started
             */
            "deployStartedAt"?: string;
            /**
             * DeployedAt holds the time the sync operation completed
             */
            "deployedAt": string;
            /**
             * ID is an auto incrementing identifier of the RevisionHistory
             */
            "id": number;
            /**
             * InitiatedBy contains information about who initiated the operations
             */
            "initiatedBy"?: {
                /**
                 * Automated is set to true if operation was initiated automatically by the application controller.
                 */
                "automated"?: boolean;
                /**
                 * Username contains the name of a user who started operation
                 */
                "username"?: string;
            };
            /**
             * Revision holds the revision the sync was performed against
             */
            "revision"?: string;
            /**
             * Revisions holds the revision of each source in sources field the sync was performed against
             */
            "revisions"?: Array<string>;
            /**
             * Source is a reference to the application source used for the sync operation
             */
            "source"?: {
                /**
                 * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                 */
                "chart"?: string;
                /**
                 * Directory holds path/directory specific options
                 */
                "directory"?: {
                    /**
                     * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                     */
                    "exclude"?: string;
                    /**
                     * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                     */
                    "include"?: string;
                    /**
                     * Jsonnet holds options specific to Jsonnet
                     */
                    "jsonnet"?: {
                        /**
                         * ExtVars is a list of Jsonnet External Variables
                         */
                        "extVars"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                        /**
                         * Additional library search dirs
                         */
                        "libs"?: Array<string>;
                        /**
                         * TLAS is a list of Jsonnet Top-level Arguments
                         */
                        "tlas"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                    };
                    /**
                     * Recurse specifies whether to scan a directory recursively for manifests
                     */
                    "recurse"?: boolean;
                };
                /**
                 * Helm holds helm specific options
                 */
                "helm"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * FileParameters are file parameters to the helm template
                     */
                    "fileParameters"?: Array<{
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Path is the path to the file containing the values for the Helm parameter
                         */
                        "path"?: string;
                    }>;
                    /**
                     * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                     */
                    "ignoreMissingValueFiles"?: boolean;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                     */
                    "namespace"?: string;
                    /**
                     * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                     */
                    "parameters"?: Array<{
                        /**
                         * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                         */
                        "forceString"?: boolean;
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Value is the value for the Helm parameter
                         */
                        "value"?: string;
                    }>;
                    /**
                     * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                     */
                    "passCredentials"?: boolean;
                    /**
                     * ReleaseName is the Helm release name to use. If omitted it will use the application name
                     */
                    "releaseName"?: string;
                    /**
                     * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                     */
                    "skipCrds"?: boolean;
                    /**
                     * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                     */
                    "skipSchemaValidation"?: boolean;
                    /**
                     * SkipTests skips test manifest installation step (Helm's --skip-tests).
                     */
                    "skipTests"?: boolean;
                    /**
                     * ValuesFiles is a list of Helm value files to use when generating a template
                     */
                    "valueFiles"?: Array<string>;
                    /**
                     * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                     */
                    "values"?: string;
                    /**
                     * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                     */
                    "valuesObject"?: {};
                    /**
                     * Version is the Helm version to use for templating ("3")
                     */
                    "version"?: string;
                };
                /**
                 * Kustomize holds kustomize specific options
                 */
                "kustomize"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * CommonAnnotations is a list of additional annotations to add to rendered manifests
                     */
                    "commonAnnotations"?: {
                        [key: string]: string;
                    };
                    /**
                     * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                     */
                    "commonAnnotationsEnvsubst"?: boolean;
                    /**
                     * CommonLabels is a list of additional labels to add to rendered manifests
                     */
                    "commonLabels"?: {
                        [key: string]: string;
                    };
                    /**
                     * Components specifies a list of kustomize components to add to the kustomization before building
                     */
                    "components"?: Array<string>;
                    /**
                     * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                     */
                    "forceCommonAnnotations"?: boolean;
                    /**
                     * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                     */
                    "forceCommonLabels"?: boolean;
                    /**
                     * Images is a list of Kustomize image override specifications
                     */
                    "images"?: Array<string>;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                     */
                    "labelWithoutSelector"?: boolean;
                    /**
                     * NamePrefix is a prefix appended to resources for Kustomize apps
                     */
                    "namePrefix"?: string;
                    /**
                     * NameSuffix is a suffix appended to resources for Kustomize apps
                     */
                    "nameSuffix"?: string;
                    /**
                     * Namespace sets the namespace that Kustomize adds to all resources
                     */
                    "namespace"?: string;
                    /**
                     * Patches is a list of Kustomize patches
                     */
                    "patches"?: Array<{
                        "options"?: {
                            [key: string]: boolean;
                        };
                        "patch"?: string;
                        "path"?: string;
                        "target"?: {
                            "annotationSelector"?: string;
                            "group"?: string;
                            "kind"?: string;
                            "labelSelector"?: string;
                            "name"?: string;
                            "namespace"?: string;
                            "version"?: string;
                        };
                    }>;
                    /**
                     * Replicas is a list of Kustomize Replicas override specifications
                     */
                    "replicas"?: Array<{
                        /**
                         * Number of replicas
                         */
                        "count": number | string;
                        /**
                         * Name of Deployment or StatefulSet
                         */
                        "name": string;
                    }>;
                    /**
                     * Version controls which version of Kustomize to use for rendering manifests
                     */
                    "version"?: string;
                };
                /**
                 * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                 */
                "name"?: string;
                /**
                 * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                 */
                "path"?: string;
                /**
                 * Plugin holds config management plugin specific options
                 */
                "plugin"?: {
                    /**
                     * Env is a list of environment variable entries
                     */
                    "env"?: Array<{
                        /**
                         * Name is the name of the variable, usually expressed in uppercase
                         */
                        "name": string;
                        /**
                         * Value is the value of the variable
                         */
                        "value": string;
                    }>;
                    "name"?: string;
                    "parameters"?: Array<{
                        /**
                         * Array is the value of an array type parameter.
                         */
                        "array"?: Array<string>;
                        /**
                         * Map is the value of a map type parameter.
                         */
                        "map"?: {
                            [key: string]: string;
                        };
                        /**
                         * Name is the name identifying a parameter.
                         */
                        "name"?: string;
                        /**
                         * String_ is the value of a string type parameter.
                         */
                        "string"?: string;
                    }>;
                };
                /**
                 * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                 */
                "ref"?: string;
                /**
                 * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                 */
                "repoURL": string;
                /**
                 * TargetRevision defines the revision of the source to sync the application to.
                 * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                 * In case of Helm, this is a semver tag for the Chart's version.
                 */
                "targetRevision"?: string;
            };
            /**
             * Sources is a reference to the application sources used for the sync operation
             */
            "sources"?: Array<{
                /**
                 * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                 */
                "chart"?: string;
                /**
                 * Directory holds path/directory specific options
                 */
                "directory"?: {
                    /**
                     * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                     */
                    "exclude"?: string;
                    /**
                     * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                     */
                    "include"?: string;
                    /**
                     * Jsonnet holds options specific to Jsonnet
                     */
                    "jsonnet"?: {
                        /**
                         * ExtVars is a list of Jsonnet External Variables
                         */
                        "extVars"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                        /**
                         * Additional library search dirs
                         */
                        "libs"?: Array<string>;
                        /**
                         * TLAS is a list of Jsonnet Top-level Arguments
                         */
                        "tlas"?: Array<{
                            "code"?: boolean;
                            "name": string;
                            "value": string;
                        }>;
                    };
                    /**
                     * Recurse specifies whether to scan a directory recursively for manifests
                     */
                    "recurse"?: boolean;
                };
                /**
                 * Helm holds helm specific options
                 */
                "helm"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * FileParameters are file parameters to the helm template
                     */
                    "fileParameters"?: Array<{
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Path is the path to the file containing the values for the Helm parameter
                         */
                        "path"?: string;
                    }>;
                    /**
                     * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                     */
                    "ignoreMissingValueFiles"?: boolean;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                     */
                    "namespace"?: string;
                    /**
                     * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                     */
                    "parameters"?: Array<{
                        /**
                         * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                         */
                        "forceString"?: boolean;
                        /**
                         * Name is the name of the Helm parameter
                         */
                        "name"?: string;
                        /**
                         * Value is the value for the Helm parameter
                         */
                        "value"?: string;
                    }>;
                    /**
                     * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                     */
                    "passCredentials"?: boolean;
                    /**
                     * ReleaseName is the Helm release name to use. If omitted it will use the application name
                     */
                    "releaseName"?: string;
                    /**
                     * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                     */
                    "skipCrds"?: boolean;
                    /**
                     * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                     */
                    "skipSchemaValidation"?: boolean;
                    /**
                     * SkipTests skips test manifest installation step (Helm's --skip-tests).
                     */
                    "skipTests"?: boolean;
                    /**
                     * ValuesFiles is a list of Helm value files to use when generating a template
                     */
                    "valueFiles"?: Array<string>;
                    /**
                     * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                     */
                    "values"?: string;
                    /**
                     * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                     */
                    "valuesObject"?: {};
                    /**
                     * Version is the Helm version to use for templating ("3")
                     */
                    "version"?: string;
                };
                /**
                 * Kustomize holds kustomize specific options
                 */
                "kustomize"?: {
                    /**
                     * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                     * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                     */
                    "apiVersions"?: Array<string>;
                    /**
                     * CommonAnnotations is a list of additional annotations to add to rendered manifests
                     */
                    "commonAnnotations"?: {
                        [key: string]: string;
                    };
                    /**
                     * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                     */
                    "commonAnnotationsEnvsubst"?: boolean;
                    /**
                     * CommonLabels is a list of additional labels to add to rendered manifests
                     */
                    "commonLabels"?: {
                        [key: string]: string;
                    };
                    /**
                     * Components specifies a list of kustomize components to add to the kustomization before building
                     */
                    "components"?: Array<string>;
                    /**
                     * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                     */
                    "forceCommonAnnotations"?: boolean;
                    /**
                     * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                     */
                    "forceCommonLabels"?: boolean;
                    /**
                     * Images is a list of Kustomize image override specifications
                     */
                    "images"?: Array<string>;
                    /**
                     * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                     * uses the Kubernetes version of the target cluster.
                     */
                    "kubeVersion"?: string;
                    /**
                     * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                     */
                    "labelWithoutSelector"?: boolean;
                    /**
                     * NamePrefix is a prefix appended to resources for Kustomize apps
                     */
                    "namePrefix"?: string;
                    /**
                     * NameSuffix is a suffix appended to resources for Kustomize apps
                     */
                    "nameSuffix"?: string;
                    /**
                     * Namespace sets the namespace that Kustomize adds to all resources
                     */
                    "namespace"?: string;
                    /**
                     * Patches is a list of Kustomize patches
                     */
                    "patches"?: Array<{
                        "options"?: {
                            [key: string]: boolean;
                        };
                        "patch"?: string;
                        "path"?: string;
                        "target"?: {
                            "annotationSelector"?: string;
                            "group"?: string;
                            "kind"?: string;
                            "labelSelector"?: string;
                            "name"?: string;
                            "namespace"?: string;
                            "version"?: string;
                        };
                    }>;
                    /**
                     * Replicas is a list of Kustomize Replicas override specifications
                     */
                    "replicas"?: Array<{
                        /**
                         * Number of replicas
                         */
                        "count": number | string;
                        /**
                         * Name of Deployment or StatefulSet
                         */
                        "name": string;
                    }>;
                    /**
                     * Version controls which version of Kustomize to use for rendering manifests
                     */
                    "version"?: string;
                };
                /**
                 * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                 */
                "name"?: string;
                /**
                 * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                 */
                "path"?: string;
                /**
                 * Plugin holds config management plugin specific options
                 */
                "plugin"?: {
                    /**
                     * Env is a list of environment variable entries
                     */
                    "env"?: Array<{
                        /**
                         * Name is the name of the variable, usually expressed in uppercase
                         */
                        "name": string;
                        /**
                         * Value is the value of the variable
                         */
                        "value": string;
                    }>;
                    "name"?: string;
                    "parameters"?: Array<{
                        /**
                         * Array is the value of an array type parameter.
                         */
                        "array"?: Array<string>;
                        /**
                         * Map is the value of a map type parameter.
                         */
                        "map"?: {
                            [key: string]: string;
                        };
                        /**
                         * Name is the name identifying a parameter.
                         */
                        "name"?: string;
                        /**
                         * String_ is the value of a string type parameter.
                         */
                        "string"?: string;
                    }>;
                };
                /**
                 * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                 */
                "ref"?: string;
                /**
                 * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                 */
                "repoURL": string;
                /**
                 * TargetRevision defines the revision of the source to sync the application to.
                 * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                 * In case of Helm, this is a semver tag for the Chart's version.
                 */
                "targetRevision"?: string;
            }>;
        }>;
        /**
         * ObservedAt indicates when the application state was updated without querying latest git state
         * Deprecated: controller no longer updates ObservedAt field
         */
        "observedAt"?: string;
        /**
         * OperationState contains information about any ongoing operations, such as a sync
         */
        "operationState"?: {
            /**
             * FinishedAt contains time of operation completion
             */
            "finishedAt"?: string;
            /**
             * Message holds any pertinent messages when attempting to perform operation (typically errors).
             */
            "message"?: string;
            /**
             * Operation is the original requested operation
             */
            "operation": {
                /**
                 * Info is a list of informational items for this operation
                 */
                "info"?: Array<{
                    "name": string;
                    "value": string;
                }>;
                /**
                 * InitiatedBy contains information about who initiated the operations
                 */
                "initiatedBy"?: {
                    /**
                     * Automated is set to true if operation was initiated automatically by the application controller.
                     */
                    "automated"?: boolean;
                    /**
                     * Username contains the name of a user who started operation
                     */
                    "username"?: string;
                };
                /**
                 * Retry controls the strategy to apply if a sync fails
                 */
                "retry"?: {
                    /**
                     * Backoff controls how to backoff on subsequent retries of failed syncs
                     */
                    "backoff"?: {
                        /**
                         * Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                         */
                        "duration"?: string;
                        /**
                         * Factor is a factor to multiply the base duration after each failed retry
                         */
                        "factor"?: number;
                        /**
                         * MaxDuration is the maximum amount of time allowed for the backoff strategy
                         */
                        "maxDuration"?: string;
                    };
                    /**
                     * Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
                     */
                    "limit"?: number;
                };
                /**
                 * Sync contains parameters for the operation
                 */
                "sync"?: {
                    /**
                     * SelfHealAttemptsCount contains the number of auto-heal attempts
                     */
                    "autoHealAttemptsCount"?: number;
                    /**
                     * DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync
                     */
                    "dryRun"?: boolean;
                    /**
                     * Manifests is an optional field that overrides sync source with a local directory for development
                     */
                    "manifests"?: Array<string>;
                    /**
                     * Prune specifies to delete resources from the cluster that are no longer tracked in git
                     */
                    "prune"?: boolean;
                    /**
                     * Resources describes which resources shall be part of the sync
                     */
                    "resources"?: Array<{
                        "group"?: string;
                        "kind": string;
                        "name": string;
                        "namespace"?: string;
                    }>;
                    /**
                     * Revision is the revision (Git) or chart version (Helm) which to sync the application to
                     * If omitted, will use the revision specified in app spec.
                     */
                    "revision"?: string;
                    /**
                     * Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to
                     * If omitted, will use the revision specified in app spec.
                     */
                    "revisions"?: Array<string>;
                    /**
                     * Source overrides the source definition set in the application.
                     * This is typically set in a Rollback operation and is nil during a Sync operation
                     */
                    "source"?: {
                        /**
                         * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                         */
                        "chart"?: string;
                        /**
                         * Directory holds path/directory specific options
                         */
                        "directory"?: {
                            /**
                             * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                             */
                            "exclude"?: string;
                            /**
                             * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                             */
                            "include"?: string;
                            /**
                             * Jsonnet holds options specific to Jsonnet
                             */
                            "jsonnet"?: {
                                /**
                                 * ExtVars is a list of Jsonnet External Variables
                                 */
                                "extVars"?: Array<{
                                    "code"?: boolean;
                                    "name": string;
                                    "value": string;
                                }>;
                                /**
                                 * Additional library search dirs
                                 */
                                "libs"?: Array<string>;
                                /**
                                 * TLAS is a list of Jsonnet Top-level Arguments
                                 */
                                "tlas"?: Array<{
                                    "code"?: boolean;
                                    "name": string;
                                    "value": string;
                                }>;
                            };
                            /**
                             * Recurse specifies whether to scan a directory recursively for manifests
                             */
                            "recurse"?: boolean;
                        };
                        /**
                         * Helm holds helm specific options
                         */
                        "helm"?: {
                            /**
                             * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                             * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                             */
                            "apiVersions"?: Array<string>;
                            /**
                             * FileParameters are file parameters to the helm template
                             */
                            "fileParameters"?: Array<{
                                /**
                                 * Name is the name of the Helm parameter
                                 */
                                "name"?: string;
                                /**
                                 * Path is the path to the file containing the values for the Helm parameter
                                 */
                                "path"?: string;
                            }>;
                            /**
                             * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                             */
                            "ignoreMissingValueFiles"?: boolean;
                            /**
                             * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                             * uses the Kubernetes version of the target cluster.
                             */
                            "kubeVersion"?: string;
                            /**
                             * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                             */
                            "namespace"?: string;
                            /**
                             * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                             */
                            "parameters"?: Array<{
                                /**
                                 * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                                 */
                                "forceString"?: boolean;
                                /**
                                 * Name is the name of the Helm parameter
                                 */
                                "name"?: string;
                                /**
                                 * Value is the value for the Helm parameter
                                 */
                                "value"?: string;
                            }>;
                            /**
                             * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                             */
                            "passCredentials"?: boolean;
                            /**
                             * ReleaseName is the Helm release name to use. If omitted it will use the application name
                             */
                            "releaseName"?: string;
                            /**
                             * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                             */
                            "skipCrds"?: boolean;
                            /**
                             * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                             */
                            "skipSchemaValidation"?: boolean;
                            /**
                             * SkipTests skips test manifest installation step (Helm's --skip-tests).
                             */
                            "skipTests"?: boolean;
                            /**
                             * ValuesFiles is a list of Helm value files to use when generating a template
                             */
                            "valueFiles"?: Array<string>;
                            /**
                             * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                             */
                            "values"?: string;
                            /**
                             * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                             */
                            "valuesObject"?: {};
                            /**
                             * Version is the Helm version to use for templating ("3")
                             */
                            "version"?: string;
                        };
                        /**
                         * Kustomize holds kustomize specific options
                         */
                        "kustomize"?: {
                            /**
                             * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                             * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                             */
                            "apiVersions"?: Array<string>;
                            /**
                             * CommonAnnotations is a list of additional annotations to add to rendered manifests
                             */
                            "commonAnnotations"?: {
                                [key: string]: string;
                            };
                            /**
                             * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                             */
                            "commonAnnotationsEnvsubst"?: boolean;
                            /**
                             * CommonLabels is a list of additional labels to add to rendered manifests
                             */
                            "commonLabels"?: {
                                [key: string]: string;
                            };
                            /**
                             * Components specifies a list of kustomize components to add to the kustomization before building
                             */
                            "components"?: Array<string>;
                            /**
                             * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                             */
                            "forceCommonAnnotations"?: boolean;
                            /**
                             * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                             */
                            "forceCommonLabels"?: boolean;
                            /**
                             * Images is a list of Kustomize image override specifications
                             */
                            "images"?: Array<string>;
                            /**
                             * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                             * uses the Kubernetes version of the target cluster.
                             */
                            "kubeVersion"?: string;
                            /**
                             * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                             */
                            "labelWithoutSelector"?: boolean;
                            /**
                             * NamePrefix is a prefix appended to resources for Kustomize apps
                             */
                            "namePrefix"?: string;
                            /**
                             * NameSuffix is a suffix appended to resources for Kustomize apps
                             */
                            "nameSuffix"?: string;
                            /**
                             * Namespace sets the namespace that Kustomize adds to all resources
                             */
                            "namespace"?: string;
                            /**
                             * Patches is a list of Kustomize patches
                             */
                            "patches"?: Array<{
                                "options"?: {
                                    [key: string]: boolean;
                                };
                                "patch"?: string;
                                "path"?: string;
                                "target"?: {
                                    "annotationSelector"?: string;
                                    "group"?: string;
                                    "kind"?: string;
                                    "labelSelector"?: string;
                                    "name"?: string;
                                    "namespace"?: string;
                                    "version"?: string;
                                };
                            }>;
                            /**
                             * Replicas is a list of Kustomize Replicas override specifications
                             */
                            "replicas"?: Array<{
                                /**
                                 * Number of replicas
                                 */
                                "count": number | string;
                                /**
                                 * Name of Deployment or StatefulSet
                                 */
                                "name": string;
                            }>;
                            /**
                             * Version controls which version of Kustomize to use for rendering manifests
                             */
                            "version"?: string;
                        };
                        /**
                         * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                         */
                        "name"?: string;
                        /**
                         * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                         */
                        "path"?: string;
                        /**
                         * Plugin holds config management plugin specific options
                         */
                        "plugin"?: {
                            /**
                             * Env is a list of environment variable entries
                             */
                            "env"?: Array<{
                                /**
                                 * Name is the name of the variable, usually expressed in uppercase
                                 */
                                "name": string;
                                /**
                                 * Value is the value of the variable
                                 */
                                "value": string;
                            }>;
                            "name"?: string;
                            "parameters"?: Array<{
                                /**
                                 * Array is the value of an array type parameter.
                                 */
                                "array"?: Array<string>;
                                /**
                                 * Map is the value of a map type parameter.
                                 */
                                "map"?: {
                                    [key: string]: string;
                                };
                                /**
                                 * Name is the name identifying a parameter.
                                 */
                                "name"?: string;
                                /**
                                 * String_ is the value of a string type parameter.
                                 */
                                "string"?: string;
                            }>;
                        };
                        /**
                         * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                         */
                        "ref"?: string;
                        /**
                         * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                         */
                        "repoURL": string;
                        /**
                         * TargetRevision defines the revision of the source to sync the application to.
                         * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                         * In case of Helm, this is a semver tag for the Chart's version.
                         */
                        "targetRevision"?: string;
                    };
                    /**
                     * Sources overrides the source definition set in the application.
                     * This is typically set in a Rollback operation and is nil during a Sync operation
                     */
                    "sources"?: Array<{
                        /**
                         * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                         */
                        "chart"?: string;
                        /**
                         * Directory holds path/directory specific options
                         */
                        "directory"?: {
                            /**
                             * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                             */
                            "exclude"?: string;
                            /**
                             * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                             */
                            "include"?: string;
                            /**
                             * Jsonnet holds options specific to Jsonnet
                             */
                            "jsonnet"?: {
                                /**
                                 * ExtVars is a list of Jsonnet External Variables
                                 */
                                "extVars"?: Array<{
                                    "code"?: boolean;
                                    "name": string;
                                    "value": string;
                                }>;
                                /**
                                 * Additional library search dirs
                                 */
                                "libs"?: Array<string>;
                                /**
                                 * TLAS is a list of Jsonnet Top-level Arguments
                                 */
                                "tlas"?: Array<{
                                    "code"?: boolean;
                                    "name": string;
                                    "value": string;
                                }>;
                            };
                            /**
                             * Recurse specifies whether to scan a directory recursively for manifests
                             */
                            "recurse"?: boolean;
                        };
                        /**
                         * Helm holds helm specific options
                         */
                        "helm"?: {
                            /**
                             * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                             * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                             */
                            "apiVersions"?: Array<string>;
                            /**
                             * FileParameters are file parameters to the helm template
                             */
                            "fileParameters"?: Array<{
                                /**
                                 * Name is the name of the Helm parameter
                                 */
                                "name"?: string;
                                /**
                                 * Path is the path to the file containing the values for the Helm parameter
                                 */
                                "path"?: string;
                            }>;
                            /**
                             * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                             */
                            "ignoreMissingValueFiles"?: boolean;
                            /**
                             * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                             * uses the Kubernetes version of the target cluster.
                             */
                            "kubeVersion"?: string;
                            /**
                             * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                             */
                            "namespace"?: string;
                            /**
                             * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                             */
                            "parameters"?: Array<{
                                /**
                                 * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                                 */
                                "forceString"?: boolean;
                                /**
                                 * Name is the name of the Helm parameter
                                 */
                                "name"?: string;
                                /**
                                 * Value is the value for the Helm parameter
                                 */
                                "value"?: string;
                            }>;
                            /**
                             * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                             */
                            "passCredentials"?: boolean;
                            /**
                             * ReleaseName is the Helm release name to use. If omitted it will use the application name
                             */
                            "releaseName"?: string;
                            /**
                             * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                             */
                            "skipCrds"?: boolean;
                            /**
                             * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                             */
                            "skipSchemaValidation"?: boolean;
                            /**
                             * SkipTests skips test manifest installation step (Helm's --skip-tests).
                             */
                            "skipTests"?: boolean;
                            /**
                             * ValuesFiles is a list of Helm value files to use when generating a template
                             */
                            "valueFiles"?: Array<string>;
                            /**
                             * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                             */
                            "values"?: string;
                            /**
                             * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                             */
                            "valuesObject"?: {};
                            /**
                             * Version is the Helm version to use for templating ("3")
                             */
                            "version"?: string;
                        };
                        /**
                         * Kustomize holds kustomize specific options
                         */
                        "kustomize"?: {
                            /**
                             * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                             * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                             */
                            "apiVersions"?: Array<string>;
                            /**
                             * CommonAnnotations is a list of additional annotations to add to rendered manifests
                             */
                            "commonAnnotations"?: {
                                [key: string]: string;
                            };
                            /**
                             * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                             */
                            "commonAnnotationsEnvsubst"?: boolean;
                            /**
                             * CommonLabels is a list of additional labels to add to rendered manifests
                             */
                            "commonLabels"?: {
                                [key: string]: string;
                            };
                            /**
                             * Components specifies a list of kustomize components to add to the kustomization before building
                             */
                            "components"?: Array<string>;
                            /**
                             * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                             */
                            "forceCommonAnnotations"?: boolean;
                            /**
                             * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                             */
                            "forceCommonLabels"?: boolean;
                            /**
                             * Images is a list of Kustomize image override specifications
                             */
                            "images"?: Array<string>;
                            /**
                             * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                             * uses the Kubernetes version of the target cluster.
                             */
                            "kubeVersion"?: string;
                            /**
                             * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                             */
                            "labelWithoutSelector"?: boolean;
                            /**
                             * NamePrefix is a prefix appended to resources for Kustomize apps
                             */
                            "namePrefix"?: string;
                            /**
                             * NameSuffix is a suffix appended to resources for Kustomize apps
                             */
                            "nameSuffix"?: string;
                            /**
                             * Namespace sets the namespace that Kustomize adds to all resources
                             */
                            "namespace"?: string;
                            /**
                             * Patches is a list of Kustomize patches
                             */
                            "patches"?: Array<{
                                "options"?: {
                                    [key: string]: boolean;
                                };
                                "patch"?: string;
                                "path"?: string;
                                "target"?: {
                                    "annotationSelector"?: string;
                                    "group"?: string;
                                    "kind"?: string;
                                    "labelSelector"?: string;
                                    "name"?: string;
                                    "namespace"?: string;
                                    "version"?: string;
                                };
                            }>;
                            /**
                             * Replicas is a list of Kustomize Replicas override specifications
                             */
                            "replicas"?: Array<{
                                /**
                                 * Number of replicas
                                 */
                                "count": number | string;
                                /**
                                 * Name of Deployment or StatefulSet
                                 */
                                "name": string;
                            }>;
                            /**
                             * Version controls which version of Kustomize to use for rendering manifests
                             */
                            "version"?: string;
                        };
                        /**
                         * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                         */
                        "name"?: string;
                        /**
                         * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                         */
                        "path"?: string;
                        /**
                         * Plugin holds config management plugin specific options
                         */
                        "plugin"?: {
                            /**
                             * Env is a list of environment variable entries
                             */
                            "env"?: Array<{
                                /**
                                 * Name is the name of the variable, usually expressed in uppercase
                                 */
                                "name": string;
                                /**
                                 * Value is the value of the variable
                                 */
                                "value": string;
                            }>;
                            "name"?: string;
                            "parameters"?: Array<{
                                /**
                                 * Array is the value of an array type parameter.
                                 */
                                "array"?: Array<string>;
                                /**
                                 * Map is the value of a map type parameter.
                                 */
                                "map"?: {
                                    [key: string]: string;
                                };
                                /**
                                 * Name is the name identifying a parameter.
                                 */
                                "name"?: string;
                                /**
                                 * String_ is the value of a string type parameter.
                                 */
                                "string"?: string;
                            }>;
                        };
                        /**
                         * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                         */
                        "ref"?: string;
                        /**
                         * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                         */
                        "repoURL": string;
                        /**
                         * TargetRevision defines the revision of the source to sync the application to.
                         * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                         * In case of Helm, this is a semver tag for the Chart's version.
                         */
                        "targetRevision"?: string;
                    }>;
                    /**
                     * SyncOptions provide per-sync sync-options, e.g. Validate=false
                     */
                    "syncOptions"?: Array<string>;
                    /**
                     * SyncStrategy describes how to perform the sync
                     */
                    "syncStrategy"?: {
                        /**
                         * Apply will perform a `kubectl apply` to perform the sync.
                         */
                        "apply"?: {
                            /**
                             * Force indicates whether or not to supply the --force flag to `kubectl apply`.
                             * The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
                             * retried for 5 times.
                             */
                            "force"?: boolean;
                        };
                        /**
                         * Hook will submit any referenced resources to perform the sync. This is the default strategy
                         */
                        "hook"?: {
                            /**
                             * Force indicates whether or not to supply the --force flag to `kubectl apply`.
                             * The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
                             * retried for 5 times.
                             */
                            "force"?: boolean;
                        };
                    };
                };
            };
            /**
             * Phase is the current phase of the operation
             */
            "phase": string;
            /**
             * RetryCount contains time of operation retries
             */
            "retryCount"?: number;
            /**
             * StartedAt contains time of operation start
             */
            "startedAt": string;
            /**
             * SyncResult is the result of a Sync operation
             */
            "syncResult"?: {
                /**
                 * ManagedNamespaceMetadata contains the current sync state of managed namespace metadata
                 */
                "managedNamespaceMetadata"?: {
                    "annotations"?: {
                        [key: string]: string;
                    };
                    "labels"?: {
                        [key: string]: string;
                    };
                };
                /**
                 * Resources contains a list of sync result items for each individual resource in a sync operation
                 */
                "resources"?: Array<{
                    /**
                     * Group specifies the API group of the resource
                     */
                    "group": string;
                    /**
                     * HookPhase contains the state of any operation associated with this resource OR hook
                     * This can also contain values for non-hook resources.
                     */
                    "hookPhase"?: string;
                    /**
                     * HookType specifies the type of the hook. Empty for non-hook resources
                     */
                    "hookType"?: string;
                    /**
                     * Kind specifies the API kind of the resource
                     */
                    "kind": string;
                    /**
                     * Message contains an informational or error message for the last sync OR operation
                     */
                    "message"?: string;
                    /**
                     * Name specifies the name of the resource
                     */
                    "name": string;
                    /**
                     * Namespace specifies the target namespace of the resource
                     */
                    "namespace": string;
                    /**
                     * Status holds the final result of the sync. Will be empty if the resources is yet to be applied/pruned and is always zero-value for hooks
                     */
                    "status"?: string;
                    /**
                     * SyncPhase indicates the particular phase of the sync that this result was acquired in
                     */
                    "syncPhase"?: string;
                    /**
                     * Version specifies the API version of the resource
                     */
                    "version": string;
                }>;
                /**
                 * Revision holds the revision this sync operation was performed to
                 */
                "revision": string;
                /**
                 * Revisions holds the revision this sync operation was performed for respective indexed source in sources field
                 */
                "revisions"?: Array<string>;
                /**
                 * Source records the application source information of the sync, used for comparing auto-sync
                 */
                "source"?: {
                    /**
                     * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                     */
                    "chart"?: string;
                    /**
                     * Directory holds path/directory specific options
                     */
                    "directory"?: {
                        /**
                         * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                         */
                        "exclude"?: string;
                        /**
                         * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                         */
                        "include"?: string;
                        /**
                         * Jsonnet holds options specific to Jsonnet
                         */
                        "jsonnet"?: {
                            /**
                             * ExtVars is a list of Jsonnet External Variables
                             */
                            "extVars"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                            /**
                             * Additional library search dirs
                             */
                            "libs"?: Array<string>;
                            /**
                             * TLAS is a list of Jsonnet Top-level Arguments
                             */
                            "tlas"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                        };
                        /**
                         * Recurse specifies whether to scan a directory recursively for manifests
                         */
                        "recurse"?: boolean;
                    };
                    /**
                     * Helm holds helm specific options
                     */
                    "helm"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * FileParameters are file parameters to the helm template
                         */
                        "fileParameters"?: Array<{
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Path is the path to the file containing the values for the Helm parameter
                             */
                            "path"?: string;
                        }>;
                        /**
                         * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                         */
                        "ignoreMissingValueFiles"?: boolean;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                         */
                        "namespace"?: string;
                        /**
                         * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                         */
                        "parameters"?: Array<{
                            /**
                             * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                             */
                            "forceString"?: boolean;
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Value is the value for the Helm parameter
                             */
                            "value"?: string;
                        }>;
                        /**
                         * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                         */
                        "passCredentials"?: boolean;
                        /**
                         * ReleaseName is the Helm release name to use. If omitted it will use the application name
                         */
                        "releaseName"?: string;
                        /**
                         * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                         */
                        "skipCrds"?: boolean;
                        /**
                         * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                         */
                        "skipSchemaValidation"?: boolean;
                        /**
                         * SkipTests skips test manifest installation step (Helm's --skip-tests).
                         */
                        "skipTests"?: boolean;
                        /**
                         * ValuesFiles is a list of Helm value files to use when generating a template
                         */
                        "valueFiles"?: Array<string>;
                        /**
                         * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                         */
                        "values"?: string;
                        /**
                         * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                         */
                        "valuesObject"?: {};
                        /**
                         * Version is the Helm version to use for templating ("3")
                         */
                        "version"?: string;
                    };
                    /**
                     * Kustomize holds kustomize specific options
                     */
                    "kustomize"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * CommonAnnotations is a list of additional annotations to add to rendered manifests
                         */
                        "commonAnnotations"?: {
                            [key: string]: string;
                        };
                        /**
                         * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                         */
                        "commonAnnotationsEnvsubst"?: boolean;
                        /**
                         * CommonLabels is a list of additional labels to add to rendered manifests
                         */
                        "commonLabels"?: {
                            [key: string]: string;
                        };
                        /**
                         * Components specifies a list of kustomize components to add to the kustomization before building
                         */
                        "components"?: Array<string>;
                        /**
                         * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                         */
                        "forceCommonAnnotations"?: boolean;
                        /**
                         * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                         */
                        "forceCommonLabels"?: boolean;
                        /**
                         * Images is a list of Kustomize image override specifications
                         */
                        "images"?: Array<string>;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                         */
                        "labelWithoutSelector"?: boolean;
                        /**
                         * NamePrefix is a prefix appended to resources for Kustomize apps
                         */
                        "namePrefix"?: string;
                        /**
                         * NameSuffix is a suffix appended to resources for Kustomize apps
                         */
                        "nameSuffix"?: string;
                        /**
                         * Namespace sets the namespace that Kustomize adds to all resources
                         */
                        "namespace"?: string;
                        /**
                         * Patches is a list of Kustomize patches
                         */
                        "patches"?: Array<{
                            "options"?: {
                                [key: string]: boolean;
                            };
                            "patch"?: string;
                            "path"?: string;
                            "target"?: {
                                "annotationSelector"?: string;
                                "group"?: string;
                                "kind"?: string;
                                "labelSelector"?: string;
                                "name"?: string;
                                "namespace"?: string;
                                "version"?: string;
                            };
                        }>;
                        /**
                         * Replicas is a list of Kustomize Replicas override specifications
                         */
                        "replicas"?: Array<{
                            /**
                             * Number of replicas
                             */
                            "count": number | string;
                            /**
                             * Name of Deployment or StatefulSet
                             */
                            "name": string;
                        }>;
                        /**
                         * Version controls which version of Kustomize to use for rendering manifests
                         */
                        "version"?: string;
                    };
                    /**
                     * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                     */
                    "name"?: string;
                    /**
                     * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                     */
                    "path"?: string;
                    /**
                     * Plugin holds config management plugin specific options
                     */
                    "plugin"?: {
                        /**
                         * Env is a list of environment variable entries
                         */
                        "env"?: Array<{
                            /**
                             * Name is the name of the variable, usually expressed in uppercase
                             */
                            "name": string;
                            /**
                             * Value is the value of the variable
                             */
                            "value": string;
                        }>;
                        "name"?: string;
                        "parameters"?: Array<{
                            /**
                             * Array is the value of an array type parameter.
                             */
                            "array"?: Array<string>;
                            /**
                             * Map is the value of a map type parameter.
                             */
                            "map"?: {
                                [key: string]: string;
                            };
                            /**
                             * Name is the name identifying a parameter.
                             */
                            "name"?: string;
                            /**
                             * String_ is the value of a string type parameter.
                             */
                            "string"?: string;
                        }>;
                    };
                    /**
                     * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                     */
                    "ref"?: string;
                    /**
                     * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                     */
                    "repoURL": string;
                    /**
                     * TargetRevision defines the revision of the source to sync the application to.
                     * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                     * In case of Helm, this is a semver tag for the Chart's version.
                     */
                    "targetRevision"?: string;
                };
                /**
                 * Source records the application source information of the sync, used for comparing auto-sync
                 */
                "sources"?: Array<{
                    /**
                     * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                     */
                    "chart"?: string;
                    /**
                     * Directory holds path/directory specific options
                     */
                    "directory"?: {
                        /**
                         * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                         */
                        "exclude"?: string;
                        /**
                         * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                         */
                        "include"?: string;
                        /**
                         * Jsonnet holds options specific to Jsonnet
                         */
                        "jsonnet"?: {
                            /**
                             * ExtVars is a list of Jsonnet External Variables
                             */
                            "extVars"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                            /**
                             * Additional library search dirs
                             */
                            "libs"?: Array<string>;
                            /**
                             * TLAS is a list of Jsonnet Top-level Arguments
                             */
                            "tlas"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                        };
                        /**
                         * Recurse specifies whether to scan a directory recursively for manifests
                         */
                        "recurse"?: boolean;
                    };
                    /**
                     * Helm holds helm specific options
                     */
                    "helm"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * FileParameters are file parameters to the helm template
                         */
                        "fileParameters"?: Array<{
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Path is the path to the file containing the values for the Helm parameter
                             */
                            "path"?: string;
                        }>;
                        /**
                         * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                         */
                        "ignoreMissingValueFiles"?: boolean;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                         */
                        "namespace"?: string;
                        /**
                         * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                         */
                        "parameters"?: Array<{
                            /**
                             * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                             */
                            "forceString"?: boolean;
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Value is the value for the Helm parameter
                             */
                            "value"?: string;
                        }>;
                        /**
                         * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                         */
                        "passCredentials"?: boolean;
                        /**
                         * ReleaseName is the Helm release name to use. If omitted it will use the application name
                         */
                        "releaseName"?: string;
                        /**
                         * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                         */
                        "skipCrds"?: boolean;
                        /**
                         * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                         */
                        "skipSchemaValidation"?: boolean;
                        /**
                         * SkipTests skips test manifest installation step (Helm's --skip-tests).
                         */
                        "skipTests"?: boolean;
                        /**
                         * ValuesFiles is a list of Helm value files to use when generating a template
                         */
                        "valueFiles"?: Array<string>;
                        /**
                         * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                         */
                        "values"?: string;
                        /**
                         * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                         */
                        "valuesObject"?: {};
                        /**
                         * Version is the Helm version to use for templating ("3")
                         */
                        "version"?: string;
                    };
                    /**
                     * Kustomize holds kustomize specific options
                     */
                    "kustomize"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * CommonAnnotations is a list of additional annotations to add to rendered manifests
                         */
                        "commonAnnotations"?: {
                            [key: string]: string;
                        };
                        /**
                         * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                         */
                        "commonAnnotationsEnvsubst"?: boolean;
                        /**
                         * CommonLabels is a list of additional labels to add to rendered manifests
                         */
                        "commonLabels"?: {
                            [key: string]: string;
                        };
                        /**
                         * Components specifies a list of kustomize components to add to the kustomization before building
                         */
                        "components"?: Array<string>;
                        /**
                         * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                         */
                        "forceCommonAnnotations"?: boolean;
                        /**
                         * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                         */
                        "forceCommonLabels"?: boolean;
                        /**
                         * Images is a list of Kustomize image override specifications
                         */
                        "images"?: Array<string>;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                         */
                        "labelWithoutSelector"?: boolean;
                        /**
                         * NamePrefix is a prefix appended to resources for Kustomize apps
                         */
                        "namePrefix"?: string;
                        /**
                         * NameSuffix is a suffix appended to resources for Kustomize apps
                         */
                        "nameSuffix"?: string;
                        /**
                         * Namespace sets the namespace that Kustomize adds to all resources
                         */
                        "namespace"?: string;
                        /**
                         * Patches is a list of Kustomize patches
                         */
                        "patches"?: Array<{
                            "options"?: {
                                [key: string]: boolean;
                            };
                            "patch"?: string;
                            "path"?: string;
                            "target"?: {
                                "annotationSelector"?: string;
                                "group"?: string;
                                "kind"?: string;
                                "labelSelector"?: string;
                                "name"?: string;
                                "namespace"?: string;
                                "version"?: string;
                            };
                        }>;
                        /**
                         * Replicas is a list of Kustomize Replicas override specifications
                         */
                        "replicas"?: Array<{
                            /**
                             * Number of replicas
                             */
                            "count": number | string;
                            /**
                             * Name of Deployment or StatefulSet
                             */
                            "name": string;
                        }>;
                        /**
                         * Version controls which version of Kustomize to use for rendering manifests
                         */
                        "version"?: string;
                    };
                    /**
                     * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                     */
                    "name"?: string;
                    /**
                     * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                     */
                    "path"?: string;
                    /**
                     * Plugin holds config management plugin specific options
                     */
                    "plugin"?: {
                        /**
                         * Env is a list of environment variable entries
                         */
                        "env"?: Array<{
                            /**
                             * Name is the name of the variable, usually expressed in uppercase
                             */
                            "name": string;
                            /**
                             * Value is the value of the variable
                             */
                            "value": string;
                        }>;
                        "name"?: string;
                        "parameters"?: Array<{
                            /**
                             * Array is the value of an array type parameter.
                             */
                            "array"?: Array<string>;
                            /**
                             * Map is the value of a map type parameter.
                             */
                            "map"?: {
                                [key: string]: string;
                            };
                            /**
                             * Name is the name identifying a parameter.
                             */
                            "name"?: string;
                            /**
                             * String_ is the value of a string type parameter.
                             */
                            "string"?: string;
                        }>;
                    };
                    /**
                     * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                     */
                    "ref"?: string;
                    /**
                     * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                     */
                    "repoURL": string;
                    /**
                     * TargetRevision defines the revision of the source to sync the application to.
                     * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                     * In case of Helm, this is a semver tag for the Chart's version.
                     */
                    "targetRevision"?: string;
                }>;
            };
        };
        /**
         * ReconciledAt indicates when the application state was reconciled using the latest git version
         */
        "reconciledAt"?: string;
        /**
         * ResourceHealthSource indicates where the resource health status is stored: inline if not set or appTree
         */
        "resourceHealthSource"?: string;
        /**
         * Resources is a list of Kubernetes resources managed by this application
         */
        "resources"?: Array<{
            "group"?: string;
            /**
             * HealthStatus contains information about the currently observed health state of an application or resource
             */
            "health"?: {
                /**
                 * LastTransitionTime is the time the HealthStatus was set or updated
                 */
                "lastTransitionTime"?: string;
                /**
                 * Message is a human-readable informational message describing the health status
                 */
                "message"?: string;
                /**
                 * Status holds the status code of the application or resource
                 */
                "status"?: string;
            };
            "hook"?: boolean;
            "kind"?: string;
            "name"?: string;
            "namespace"?: string;
            "requiresDeletionConfirmation"?: boolean;
            "requiresPruning"?: boolean;
            /**
             * SyncStatusCode is a type which represents possible comparison results
             */
            "status"?: string;
            "syncWave"?: number;
            "version"?: string;
        }>;
        /**
         * SourceHydrator stores information about the current state of source hydration
         */
        "sourceHydrator"?: {
            /**
             * CurrentOperation holds the status of the hydrate operation
             */
            "currentOperation"?: {
                /**
                 * DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation
                 */
                "drySHA"?: string;
                /**
                 * FinishedAt indicates when the hydrate operation finished
                 */
                "finishedAt"?: string;
                /**
                 * HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation
                 */
                "hydratedSHA"?: string;
                /**
                 * Message contains a message describing the current status of the hydrate operation
                 */
                "message": string;
                /**
                 * Phase indicates the status of the hydrate operation
                 */
                "phase": "Hydrating" | "Failed" | "Hydrated";
                /**
                 * SourceHydrator holds the hydrator config used for the hydrate operation
                 */
                "sourceHydrator"?: {
                    /**
                     * DrySource specifies where the dry "don't repeat yourself" manifest source lives.
                     */
                    "drySource": {
                        /**
                         * Path is a directory path within the Git repository where the manifests are located
                         */
                        "path": string;
                        /**
                         * RepoURL is the URL to the git repository that contains the application manifests
                         */
                        "repoURL": string;
                        /**
                         * TargetRevision defines the revision of the source to hydrate
                         */
                        "targetRevision": string;
                    };
                    /**
                     * HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
                     * have to move manifests to the SyncSource, e.g. by pull request.
                     */
                    "hydrateTo"?: {
                        /**
                         * TargetBranch is the branch to which hydrated manifests should be committed
                         */
                        "targetBranch": string;
                    };
                    /**
                     * SyncSource specifies where to sync hydrated manifests from.
                     */
                    "syncSource": {
                        /**
                         * Path is a directory path within the git repository where hydrated manifests should be committed to and synced
                         * from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
                         */
                        "path": string;
                        /**
                         * TargetBranch is the branch to which hydrated manifests should be committed
                         */
                        "targetBranch": string;
                    };
                };
                /**
                 * StartedAt indicates when the hydrate operation started
                 */
                "startedAt"?: string;
            };
            /**
             * LastSuccessfulOperation holds info about the most recent successful hydration
             */
            "lastSuccessfulOperation"?: {
                /**
                 * DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation
                 */
                "drySHA"?: string;
                /**
                 * HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation
                 */
                "hydratedSHA"?: string;
                /**
                 * SourceHydrator holds the hydrator config used for the hydrate operation
                 */
                "sourceHydrator"?: {
                    /**
                     * DrySource specifies where the dry "don't repeat yourself" manifest source lives.
                     */
                    "drySource": {
                        /**
                         * Path is a directory path within the Git repository where the manifests are located
                         */
                        "path": string;
                        /**
                         * RepoURL is the URL to the git repository that contains the application manifests
                         */
                        "repoURL": string;
                        /**
                         * TargetRevision defines the revision of the source to hydrate
                         */
                        "targetRevision": string;
                    };
                    /**
                     * HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
                     * have to move manifests to the SyncSource, e.g. by pull request.
                     */
                    "hydrateTo"?: {
                        /**
                         * TargetBranch is the branch to which hydrated manifests should be committed
                         */
                        "targetBranch": string;
                    };
                    /**
                     * SyncSource specifies where to sync hydrated manifests from.
                     */
                    "syncSource": {
                        /**
                         * Path is a directory path within the git repository where hydrated manifests should be committed to and synced
                         * from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
                         */
                        "path": string;
                        /**
                         * TargetBranch is the branch to which hydrated manifests should be committed
                         */
                        "targetBranch": string;
                    };
                };
            };
        };
        /**
         * SourceType specifies the type of this application
         */
        "sourceType"?: string;
        /**
         * SourceTypes specifies the type of the sources included in the application
         */
        "sourceTypes"?: Array<string>;
        /**
         * Summary contains a list of URLs and container images used by this application
         */
        "summary"?: {
            /**
             * ExternalURLs holds all external URLs of application child resources.
             */
            "externalURLs"?: Array<string>;
            /**
             * Images holds all images of application child resources.
             */
            "images"?: Array<string>;
        };
        /**
         * Sync contains information about the application's current sync status
         */
        "sync"?: {
            /**
             * ComparedTo contains information about what has been compared
             */
            "comparedTo"?: {
                /**
                 * Destination is a reference to the application's destination used for comparison
                 */
                "destination": {
                    /**
                     * Name is an alternate way of specifying the target cluster by its symbolic name. This must be set if Server is not set.
                     */
                    "name"?: string;
                    /**
                     * Namespace specifies the target namespace for the application's resources.
                     * The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
                     */
                    "namespace"?: string;
                    /**
                     * Server specifies the URL of the target cluster's Kubernetes control plane API. This must be set if Name is not set.
                     */
                    "server"?: string;
                };
                /**
                 * IgnoreDifferences is a reference to the application's ignored differences used for comparison
                 */
                "ignoreDifferences"?: Array<{
                    "group"?: string;
                    "jqPathExpressions"?: Array<string>;
                    "jsonPointers"?: Array<string>;
                    "kind": string;
                    /**
                     * ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the
                     * desired state defined in the SCM and won't be displayed in diffs
                     */
                    "managedFieldsManagers"?: Array<string>;
                    "name"?: string;
                    "namespace"?: string;
                }>;
                /**
                 * Source is a reference to the application's source used for comparison
                 */
                "source"?: {
                    /**
                     * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                     */
                    "chart"?: string;
                    /**
                     * Directory holds path/directory specific options
                     */
                    "directory"?: {
                        /**
                         * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                         */
                        "exclude"?: string;
                        /**
                         * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                         */
                        "include"?: string;
                        /**
                         * Jsonnet holds options specific to Jsonnet
                         */
                        "jsonnet"?: {
                            /**
                             * ExtVars is a list of Jsonnet External Variables
                             */
                            "extVars"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                            /**
                             * Additional library search dirs
                             */
                            "libs"?: Array<string>;
                            /**
                             * TLAS is a list of Jsonnet Top-level Arguments
                             */
                            "tlas"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                        };
                        /**
                         * Recurse specifies whether to scan a directory recursively for manifests
                         */
                        "recurse"?: boolean;
                    };
                    /**
                     * Helm holds helm specific options
                     */
                    "helm"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * FileParameters are file parameters to the helm template
                         */
                        "fileParameters"?: Array<{
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Path is the path to the file containing the values for the Helm parameter
                             */
                            "path"?: string;
                        }>;
                        /**
                         * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                         */
                        "ignoreMissingValueFiles"?: boolean;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                         */
                        "namespace"?: string;
                        /**
                         * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                         */
                        "parameters"?: Array<{
                            /**
                             * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                             */
                            "forceString"?: boolean;
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Value is the value for the Helm parameter
                             */
                            "value"?: string;
                        }>;
                        /**
                         * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                         */
                        "passCredentials"?: boolean;
                        /**
                         * ReleaseName is the Helm release name to use. If omitted it will use the application name
                         */
                        "releaseName"?: string;
                        /**
                         * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                         */
                        "skipCrds"?: boolean;
                        /**
                         * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                         */
                        "skipSchemaValidation"?: boolean;
                        /**
                         * SkipTests skips test manifest installation step (Helm's --skip-tests).
                         */
                        "skipTests"?: boolean;
                        /**
                         * ValuesFiles is a list of Helm value files to use when generating a template
                         */
                        "valueFiles"?: Array<string>;
                        /**
                         * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                         */
                        "values"?: string;
                        /**
                         * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                         */
                        "valuesObject"?: {};
                        /**
                         * Version is the Helm version to use for templating ("3")
                         */
                        "version"?: string;
                    };
                    /**
                     * Kustomize holds kustomize specific options
                     */
                    "kustomize"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * CommonAnnotations is a list of additional annotations to add to rendered manifests
                         */
                        "commonAnnotations"?: {
                            [key: string]: string;
                        };
                        /**
                         * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                         */
                        "commonAnnotationsEnvsubst"?: boolean;
                        /**
                         * CommonLabels is a list of additional labels to add to rendered manifests
                         */
                        "commonLabels"?: {
                            [key: string]: string;
                        };
                        /**
                         * Components specifies a list of kustomize components to add to the kustomization before building
                         */
                        "components"?: Array<string>;
                        /**
                         * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                         */
                        "forceCommonAnnotations"?: boolean;
                        /**
                         * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                         */
                        "forceCommonLabels"?: boolean;
                        /**
                         * Images is a list of Kustomize image override specifications
                         */
                        "images"?: Array<string>;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                         */
                        "labelWithoutSelector"?: boolean;
                        /**
                         * NamePrefix is a prefix appended to resources for Kustomize apps
                         */
                        "namePrefix"?: string;
                        /**
                         * NameSuffix is a suffix appended to resources for Kustomize apps
                         */
                        "nameSuffix"?: string;
                        /**
                         * Namespace sets the namespace that Kustomize adds to all resources
                         */
                        "namespace"?: string;
                        /**
                         * Patches is a list of Kustomize patches
                         */
                        "patches"?: Array<{
                            "options"?: {
                                [key: string]: boolean;
                            };
                            "patch"?: string;
                            "path"?: string;
                            "target"?: {
                                "annotationSelector"?: string;
                                "group"?: string;
                                "kind"?: string;
                                "labelSelector"?: string;
                                "name"?: string;
                                "namespace"?: string;
                                "version"?: string;
                            };
                        }>;
                        /**
                         * Replicas is a list of Kustomize Replicas override specifications
                         */
                        "replicas"?: Array<{
                            /**
                             * Number of replicas
                             */
                            "count": number | string;
                            /**
                             * Name of Deployment or StatefulSet
                             */
                            "name": string;
                        }>;
                        /**
                         * Version controls which version of Kustomize to use for rendering manifests
                         */
                        "version"?: string;
                    };
                    /**
                     * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                     */
                    "name"?: string;
                    /**
                     * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                     */
                    "path"?: string;
                    /**
                     * Plugin holds config management plugin specific options
                     */
                    "plugin"?: {
                        /**
                         * Env is a list of environment variable entries
                         */
                        "env"?: Array<{
                            /**
                             * Name is the name of the variable, usually expressed in uppercase
                             */
                            "name": string;
                            /**
                             * Value is the value of the variable
                             */
                            "value": string;
                        }>;
                        "name"?: string;
                        "parameters"?: Array<{
                            /**
                             * Array is the value of an array type parameter.
                             */
                            "array"?: Array<string>;
                            /**
                             * Map is the value of a map type parameter.
                             */
                            "map"?: {
                                [key: string]: string;
                            };
                            /**
                             * Name is the name identifying a parameter.
                             */
                            "name"?: string;
                            /**
                             * String_ is the value of a string type parameter.
                             */
                            "string"?: string;
                        }>;
                    };
                    /**
                     * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                     */
                    "ref"?: string;
                    /**
                     * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                     */
                    "repoURL": string;
                    /**
                     * TargetRevision defines the revision of the source to sync the application to.
                     * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                     * In case of Helm, this is a semver tag for the Chart's version.
                     */
                    "targetRevision"?: string;
                };
                /**
                 * Sources is a reference to the application's multiple sources used for comparison
                 */
                "sources"?: Array<{
                    /**
                     * Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.
                     */
                    "chart"?: string;
                    /**
                     * Directory holds path/directory specific options
                     */
                    "directory"?: {
                        /**
                         * Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation
                         */
                        "exclude"?: string;
                        /**
                         * Include contains a glob pattern to match paths against that should be explicitly included during manifest generation
                         */
                        "include"?: string;
                        /**
                         * Jsonnet holds options specific to Jsonnet
                         */
                        "jsonnet"?: {
                            /**
                             * ExtVars is a list of Jsonnet External Variables
                             */
                            "extVars"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                            /**
                             * Additional library search dirs
                             */
                            "libs"?: Array<string>;
                            /**
                             * TLAS is a list of Jsonnet Top-level Arguments
                             */
                            "tlas"?: Array<{
                                "code"?: boolean;
                                "name": string;
                                "value": string;
                            }>;
                        };
                        /**
                         * Recurse specifies whether to scan a directory recursively for manifests
                         */
                        "recurse"?: boolean;
                    };
                    /**
                     * Helm holds helm specific options
                     */
                    "helm"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * FileParameters are file parameters to the helm template
                         */
                        "fileParameters"?: Array<{
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Path is the path to the file containing the values for the Helm parameter
                             */
                            "path"?: string;
                        }>;
                        /**
                         * IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values
                         */
                        "ignoreMissingValueFiles"?: boolean;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * Namespace is an optional namespace to template with. If left empty, defaults to the app's destination namespace.
                         */
                        "namespace"?: string;
                        /**
                         * Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation
                         */
                        "parameters"?: Array<{
                            /**
                             * ForceString determines whether to tell Helm to interpret booleans and numbers as strings
                             */
                            "forceString"?: boolean;
                            /**
                             * Name is the name of the Helm parameter
                             */
                            "name"?: string;
                            /**
                             * Value is the value for the Helm parameter
                             */
                            "value"?: string;
                        }>;
                        /**
                         * PassCredentials pass credentials to all domains (Helm's --pass-credentials)
                         */
                        "passCredentials"?: boolean;
                        /**
                         * ReleaseName is the Helm release name to use. If omitted it will use the application name
                         */
                        "releaseName"?: string;
                        /**
                         * SkipCrds skips custom resource definition installation step (Helm's --skip-crds)
                         */
                        "skipCrds"?: boolean;
                        /**
                         * SkipSchemaValidation skips JSON schema validation (Helm's --skip-schema-validation)
                         */
                        "skipSchemaValidation"?: boolean;
                        /**
                         * SkipTests skips test manifest installation step (Helm's --skip-tests).
                         */
                        "skipTests"?: boolean;
                        /**
                         * ValuesFiles is a list of Helm value files to use when generating a template
                         */
                        "valueFiles"?: Array<string>;
                        /**
                         * Values specifies Helm values to be passed to helm template, typically defined as a block. ValuesObject takes precedence over Values, so use one or the other.
                         */
                        "values"?: string;
                        /**
                         * ValuesObject specifies Helm values to be passed to helm template, defined as a map. This takes precedence over Values.
                         */
                        "valuesObject"?: {};
                        /**
                         * Version is the Helm version to use for templating ("3")
                         */
                        "version"?: string;
                    };
                    /**
                     * Kustomize holds kustomize specific options
                     */
                    "kustomize"?: {
                        /**
                         * APIVersions specifies the Kubernetes resource API versions to pass to Helm when templating manifests. By default,
                         * Argo CD uses the API versions of the target cluster. The format is [group/]version/kind.
                         */
                        "apiVersions"?: Array<string>;
                        /**
                         * CommonAnnotations is a list of additional annotations to add to rendered manifests
                         */
                        "commonAnnotations"?: {
                            [key: string]: string;
                        };
                        /**
                         * CommonAnnotationsEnvsubst specifies whether to apply env variables substitution for annotation values
                         */
                        "commonAnnotationsEnvsubst"?: boolean;
                        /**
                         * CommonLabels is a list of additional labels to add to rendered manifests
                         */
                        "commonLabels"?: {
                            [key: string]: string;
                        };
                        /**
                         * Components specifies a list of kustomize components to add to the kustomization before building
                         */
                        "components"?: Array<string>;
                        /**
                         * ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps
                         */
                        "forceCommonAnnotations"?: boolean;
                        /**
                         * ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps
                         */
                        "forceCommonLabels"?: boolean;
                        /**
                         * Images is a list of Kustomize image override specifications
                         */
                        "images"?: Array<string>;
                        /**
                         * KubeVersion specifies the Kubernetes API version to pass to Helm when templating manifests. By default, Argo CD
                         * uses the Kubernetes version of the target cluster.
                         */
                        "kubeVersion"?: string;
                        /**
                         * LabelWithoutSelector specifies whether to apply common labels to resource selectors or not
                         */
                        "labelWithoutSelector"?: boolean;
                        /**
                         * NamePrefix is a prefix appended to resources for Kustomize apps
                         */
                        "namePrefix"?: string;
                        /**
                         * NameSuffix is a suffix appended to resources for Kustomize apps
                         */
                        "nameSuffix"?: string;
                        /**
                         * Namespace sets the namespace that Kustomize adds to all resources
                         */
                        "namespace"?: string;
                        /**
                         * Patches is a list of Kustomize patches
                         */
                        "patches"?: Array<{
                            "options"?: {
                                [key: string]: boolean;
                            };
                            "patch"?: string;
                            "path"?: string;
                            "target"?: {
                                "annotationSelector"?: string;
                                "group"?: string;
                                "kind"?: string;
                                "labelSelector"?: string;
                                "name"?: string;
                                "namespace"?: string;
                                "version"?: string;
                            };
                        }>;
                        /**
                         * Replicas is a list of Kustomize Replicas override specifications
                         */
                        "replicas"?: Array<{
                            /**
                             * Number of replicas
                             */
                            "count": number | string;
                            /**
                             * Name of Deployment or StatefulSet
                             */
                            "name": string;
                        }>;
                        /**
                         * Version controls which version of Kustomize to use for rendering manifests
                         */
                        "version"?: string;
                    };
                    /**
                     * Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
                     */
                    "name"?: string;
                    /**
                     * Path is a directory path within the Git repository, and is only valid for applications sourced from Git.
                     */
                    "path"?: string;
                    /**
                     * Plugin holds config management plugin specific options
                     */
                    "plugin"?: {
                        /**
                         * Env is a list of environment variable entries
                         */
                        "env"?: Array<{
                            /**
                             * Name is the name of the variable, usually expressed in uppercase
                             */
                            "name": string;
                            /**
                             * Value is the value of the variable
                             */
                            "value": string;
                        }>;
                        "name"?: string;
                        "parameters"?: Array<{
                            /**
                             * Array is the value of an array type parameter.
                             */
                            "array"?: Array<string>;
                            /**
                             * Map is the value of a map type parameter.
                             */
                            "map"?: {
                                [key: string]: string;
                            };
                            /**
                             * Name is the name identifying a parameter.
                             */
                            "name"?: string;
                            /**
                             * String_ is the value of a string type parameter.
                             */
                            "string"?: string;
                        }>;
                    };
                    /**
                     * Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.
                     */
                    "ref"?: string;
                    /**
                     * RepoURL is the URL to the repository (Git or Helm) that contains the application manifests
                     */
                    "repoURL": string;
                    /**
                     * TargetRevision defines the revision of the source to sync the application to.
                     * In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD.
                     * In case of Helm, this is a semver tag for the Chart's version.
                     */
                    "targetRevision"?: string;
                }>;
            };
            /**
             * Revision contains information about the revision the comparison has been performed to
             */
            "revision"?: string;
            /**
             * Revisions contains information about the revisions of multiple sources the comparison has been performed to
             */
            "revisions"?: Array<string>;
            /**
             * Status is the sync state of the comparison
             */
            "status": string;
        };
    };
}
/**
 * Application is a definition of Application resource.
 */
export declare class Application extends Model<IApplication> implements IApplication {
    "apiVersion": IApplication["apiVersion"];
    "kind": IApplication["kind"];
    "metadata": IApplication["metadata"];
    "operation"?: IApplication["operation"];
    "spec": IApplication["spec"];
    "status"?: IApplication["status"];
    static apiVersion: IApplication["apiVersion"];
    static kind: IApplication["kind"];
    static is: import("@kubernetes-models/base").TypeMetaGuard<IApplication>;
    constructor(data?: ModelData<IApplication>);
}
