{
  "description": "BundleDeployment is used internally by Fleet and should not be used directly.\nWhen a Bundle is deployed to a cluster an instance of a Bundle is called a\nBundleDeployment. A BundleDeployment represents the state of that Bundle on\na specific cluster with its cluster-specific customizations. The Fleet agent\nis only aware of BundleDeployment resources that are created for the cluster\nthe agent is managing.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "correctDrift": {
          "description": "CorrectDrift specifies how drift correction should work.",
          "properties": {
            "enabled": {
              "description": "Enabled correct drift if true.",
              "type": "boolean"
            },
            "force": {
              "description": "Force helm rollback with --force option will be used if true. This will try to recreate all resources in the release.",
              "type": "boolean"
            },
            "keepFailHistory": {
              "description": "KeepFailHistory keeps track of failed rollbacks in the helm history.",
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "dependsOn": {
          "description": "DependsOn refers to the bundles which must be ready before this bundle can be deployed.",
          "items": {
            "properties": {
              "name": {
                "description": "Name of the bundle.",
                "nullable": true,
                "type": "string"
              },
              "selector": {
                "description": "Selector matching bundle's labels.",
                "nullable": true,
                "properties": {
                  "matchExpressions": {
                    "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
                    "items": {
                      "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
                      "properties": {
                        "key": {
                          "description": "key is the label key that the selector applies to.",
                          "type": "string"
                        },
                        "operator": {
                          "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
                          "type": "string"
                        },
                        "values": {
                          "description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array",
                          "x-kubernetes-list-type": "atomic"
                        }
                      },
                      "required": [
                        "key",
                        "operator"
                      ],
                      "type": "object"
                    },
                    "type": "array",
                    "x-kubernetes-list-type": "atomic"
                  },
                  "matchLabels": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
                    "type": "object"
                  }
                },
                "type": "object",
                "x-kubernetes-map-type": "atomic"
              }
            },
            "type": "object"
          },
          "nullable": true,
          "type": "array"
        },
        "deploymentID": {
          "description": "DeploymentID is the ID of the currently applied deployment.",
          "nullable": true,
          "type": "string"
        },
        "helmChartOptions": {
          "description": "HelmChartOptions is not nil and has the helm chart config details when contents\nshould be downloaded from a helm chart",
          "properties": {
            "helmOpInsecureSkipTLSVerify": {
              "description": "InsecureSkipTLSverify will use insecure HTTPS to clone the helm app resource.",
              "type": "boolean"
            },
            "helmOpSecretName": {
              "description": "SecretName stores the secret name for storing credentials when accessing\na remote helm repository defined in a HelmOp resource",
              "type": "string"
            }
          },
          "type": "object"
        },
        "ociContents": {
          "description": "OCIContents is true when this deployment's contents is stored in an oci registry",
          "type": "boolean"
        },
        "offSchedule": {
          "description": "OffSchedule specifies if the BundleDeployment can be updated.\nIf set to true, will stop any BundleDeployments from being\nupdated.\nIf true, BundleDeployments will be marked as out of sync\nwhen changes are detected.",
          "type": "boolean"
        },
        "options": {
          "description": "Options are the deployment options, that are currently applied.",
          "properties": {
            "correctDrift": {
              "description": "CorrectDrift specifies how drift correction should work.",
              "properties": {
                "enabled": {
                  "description": "Enabled correct drift if true.",
                  "type": "boolean"
                },
                "force": {
                  "description": "Force helm rollback with --force option will be used if true. This will try to recreate all resources in the release.",
                  "type": "boolean"
                },
                "keepFailHistory": {
                  "description": "KeepFailHistory keeps track of failed rollbacks in the helm history.",
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "defaultNamespace": {
              "description": "DefaultNamespace is the namespace to use for resources that do not\nspecify a namespace. This field is not used to enforce or lock down\nthe deployment to a specific namespace.",
              "nullable": true,
              "type": "string"
            },
            "deleteCRDResources": {
              "description": "DeleteCRDResources deletes CRDs. Warning! this will also delete all your Custom Resources.",
              "type": "boolean"
            },
            "deleteNamespace": {
              "description": "DeleteNamespace can be used to delete the deployed namespace when removing the bundle",
              "type": "boolean"
            },
            "diff": {
              "description": "Diff can be used to ignore the modified state of objects which are amended at runtime.",
              "nullable": true,
              "properties": {
                "comparePatches": {
                  "description": "ComparePatches match a resource and remove fields, or the resource itself from the check for modifications.",
                  "items": {
                    "description": "ComparePatch matches a resource and removes fields from the check for modifications.",
                    "properties": {
                      "apiVersion": {
                        "description": "APIVersion is the apiVersion of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "jsonPointers": {
                        "description": "JSONPointers ignore diffs at a certain JSON path.",
                        "items": {
                          "type": "string"
                        },
                        "nullable": true,
                        "type": "array"
                      },
                      "kind": {
                        "description": "Kind is the kind of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "namespace": {
                        "description": "Namespace is the namespace of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "operations": {
                        "description": "Operations remove a JSON path from the resource.",
                        "items": {
                          "description": "Operation of a ComparePatch, usually:\n* \"remove\" to remove a specific path in a resource\n* \"ignore\" to remove the entire resource from checks for modifications.",
                          "properties": {
                            "op": {
                              "description": "Op is usually \"remove\" or \"ignore\"",
                              "nullable": true,
                              "type": "string"
                            },
                            "path": {
                              "description": "Path is the JSON path to remove. Not needed if Op is \"ignore\".",
                              "nullable": true,
                              "type": "string"
                            },
                            "value": {
                              "description": "Value is usually empty.",
                              "nullable": true,
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "nullable": true,
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "nullable": true,
                  "type": "array"
                }
              },
              "type": "object"
            },
            "downstreamResources": {
              "description": "DownstreamResources points to resources to be copied into downstream clusters, from the bundle's\nnamespace.",
              "items": {
                "description": "DownstreamResource contains identifiers for a resource to be copied from the parent bundle's namespace to each\ndownstream cluster.",
                "properties": {
                  "kind": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "forceSyncGeneration": {
              "description": "ForceSyncGeneration is used to force a redeployment",
              "format": "int64",
              "type": "integer"
            },
            "helm": {
              "description": "Helm options for the deployment, like the chart name, repo and values.",
              "properties": {
                "atomic": {
                  "description": "Atomic sets the --atomic flag when Helm is performing an upgrade",
                  "type": "boolean"
                },
                "chart": {
                  "description": "Chart can refer to any go-getter URL or OCI registry based helm\nchart URL. The chart will be downloaded.",
                  "nullable": true,
                  "type": "string"
                },
                "disableDNS": {
                  "description": "DisableDNS can be used to customize Helm's EnableDNS option, which Fleet sets to `true` by default.",
                  "type": "boolean"
                },
                "disableDependencyUpdate": {
                  "description": "DisableDependencyUpdate allows skipping chart dependencies update",
                  "type": "boolean"
                },
                "disablePreProcess": {
                  "description": "DisablePreProcess disables template processing in values",
                  "type": "boolean"
                },
                "force": {
                  "description": "Force allows to override immutable resources. This could be dangerous.",
                  "type": "boolean"
                },
                "maxHistory": {
                  "description": "MaxHistory limits the maximum number of revisions saved per release by Helm.",
                  "type": "integer"
                },
                "releaseName": {
                  "description": "ReleaseName sets a custom release name to deploy the chart as. If\nnot specified a release name will be generated by combining the\ninvoking GitRepo.name + GitRepo.path.",
                  "maxLength": 53,
                  "nullable": true,
                  "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                  "type": "string"
                },
                "repo": {
                  "description": "Repo is the name of the HTTPS helm repo to download the chart from.",
                  "nullable": true,
                  "type": "string"
                },
                "skipSchemaValidation": {
                  "description": "SkipSchemaValidation allows skipping schema validation against the chart values",
                  "type": "boolean"
                },
                "takeOwnership": {
                  "description": "TakeOwnership makes helm skip the check for its own annotations",
                  "type": "boolean"
                },
                "templateValues": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Template Values passed to Helm. It is possible to specify the keys and values\nas go template strings. Unlike .values, content of each key will be templated\nfirst, before serializing to yaml. This allows to template complex values,\nlike ranges and maps.\ntemplateValues keys have precedence over values keys in case of conflict.",
                  "nullable": true,
                  "type": "object"
                },
                "timeoutSeconds": {
                  "description": "TimeoutSeconds is the time to wait for Helm operations.",
                  "type": "integer"
                },
                "values": {
                  "description": "Values passed to Helm. It is possible to specify the keys and values\nas go template strings.",
                  "nullable": true,
                  "type": "object",
                  "x-kubernetes-preserve-unknown-fields": true
                },
                "valuesFiles": {
                  "description": "ValuesFiles is a list of files to load values from.",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true,
                  "type": "array"
                },
                "valuesFrom": {
                  "description": "ValuesFrom loads the values from configmaps and secrets.",
                  "items": {
                    "description": "Define helm values that can come from configmap, secret or external. Credit: https://github.com/fluxcd/helm-operator/blob/0cfea875b5d44bea995abe7324819432070dfbdc/pkg/apis/helm.fluxcd.io/v1/types_helmrelease.go#L439",
                    "properties": {
                      "configMapKeyRef": {
                        "description": "The reference to a config map with release values.",
                        "nullable": true,
                        "properties": {
                          "key": {
                            "nullable": true,
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of a resource in the same namespace as the referent.",
                            "nullable": true,
                            "type": "string"
                          },
                          "namespace": {
                            "nullable": true,
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "secretKeyRef": {
                        "description": "The reference to a secret with release values.",
                        "nullable": true,
                        "properties": {
                          "key": {
                            "nullable": true,
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of a resource in the same namespace as the referent.",
                            "nullable": true,
                            "type": "string"
                          },
                          "namespace": {
                            "nullable": true,
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "nullable": true,
                  "type": "array"
                },
                "version": {
                  "description": "Version of the chart to download",
                  "nullable": true,
                  "type": "string"
                },
                "waitForJobs": {
                  "description": "WaitForJobs if set and timeoutSeconds provided, will wait until all\nJobs have been completed before marking the GitRepo as ready. It\nwill wait for as long as timeoutSeconds",
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "ignore": {
              "description": "IgnoreOptions can be used to ignore fields when monitoring the bundle.",
              "nullable": true,
              "properties": {
                "conditions": {
                  "description": "Conditions is a list of conditions to be ignored when monitoring the Bundle.",
                  "items": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "type": "object"
                  },
                  "nullable": true,
                  "type": "array"
                }
              },
              "type": "object"
            },
            "keepResources": {
              "description": "KeepResources can be used to keep the deployed resources when removing the bundle",
              "type": "boolean"
            },
            "kustomize": {
              "description": "Kustomize options for the deployment, like the dir containing the\nkustomization.yaml file.",
              "nullable": true,
              "properties": {
                "dir": {
                  "description": "Dir points to a custom folder for kustomize resources. This folder must contain\na kustomization.yaml file.",
                  "nullable": true,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "namespace": {
              "description": "TargetNamespace if present will assign all resource to this\nnamespace and if any cluster scoped resource exists the deployment\nwill fail.",
              "nullable": true,
              "type": "string"
            },
            "namespaceAnnotations": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet.",
              "nullable": true,
              "type": "object"
            },
            "namespaceLabels": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "NamespaceLabels are labels that will be appended to the namespace created by Fleet.",
              "nullable": true,
              "type": "object"
            },
            "serviceAccount": {
              "description": "ServiceAccount which will be used to perform this deployment.",
              "nullable": true,
              "type": "string"
            },
            "yaml": {
              "description": "YAML options, if using raw YAML these are names that map to\noverlays/{name} files that will be used to replace or patch a resource.",
              "nullable": true,
              "properties": {
                "overlays": {
                  "description": "Overlays is a list of names that maps to folders in \"overlays/\".\nIf you wish to customize the file ./subdir/resource.yaml then a file\n./overlays/myoverlay/subdir/resource.yaml will replace the base\nfile.\nA file named ./overlays/myoverlay/subdir/resource_patch.yaml will patch the base file.",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true,
                  "type": "array"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "paused": {
          "description": "Paused if set to true, will stop any BundleDeployments from being\nupdated. If true, BundleDeployments will be marked as out of sync\nwhen changes are detected.",
          "type": "boolean"
        },
        "stagedDeploymentID": {
          "description": "StagedDeploymentID is the ID of the staged deployment.",
          "nullable": true,
          "type": "string"
        },
        "stagedOptions": {
          "description": "StagedOptions are the deployment options, that are staged for\nthe next deployment.",
          "properties": {
            "correctDrift": {
              "description": "CorrectDrift specifies how drift correction should work.",
              "properties": {
                "enabled": {
                  "description": "Enabled correct drift if true.",
                  "type": "boolean"
                },
                "force": {
                  "description": "Force helm rollback with --force option will be used if true. This will try to recreate all resources in the release.",
                  "type": "boolean"
                },
                "keepFailHistory": {
                  "description": "KeepFailHistory keeps track of failed rollbacks in the helm history.",
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "defaultNamespace": {
              "description": "DefaultNamespace is the namespace to use for resources that do not\nspecify a namespace. This field is not used to enforce or lock down\nthe deployment to a specific namespace.",
              "nullable": true,
              "type": "string"
            },
            "deleteCRDResources": {
              "description": "DeleteCRDResources deletes CRDs. Warning! this will also delete all your Custom Resources.",
              "type": "boolean"
            },
            "deleteNamespace": {
              "description": "DeleteNamespace can be used to delete the deployed namespace when removing the bundle",
              "type": "boolean"
            },
            "diff": {
              "description": "Diff can be used to ignore the modified state of objects which are amended at runtime.",
              "nullable": true,
              "properties": {
                "comparePatches": {
                  "description": "ComparePatches match a resource and remove fields, or the resource itself from the check for modifications.",
                  "items": {
                    "description": "ComparePatch matches a resource and removes fields from the check for modifications.",
                    "properties": {
                      "apiVersion": {
                        "description": "APIVersion is the apiVersion of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "jsonPointers": {
                        "description": "JSONPointers ignore diffs at a certain JSON path.",
                        "items": {
                          "type": "string"
                        },
                        "nullable": true,
                        "type": "array"
                      },
                      "kind": {
                        "description": "Kind is the kind of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "namespace": {
                        "description": "Namespace is the namespace of the resource to match.",
                        "nullable": true,
                        "type": "string"
                      },
                      "operations": {
                        "description": "Operations remove a JSON path from the resource.",
                        "items": {
                          "description": "Operation of a ComparePatch, usually:\n* \"remove\" to remove a specific path in a resource\n* \"ignore\" to remove the entire resource from checks for modifications.",
                          "properties": {
                            "op": {
                              "description": "Op is usually \"remove\" or \"ignore\"",
                              "nullable": true,
                              "type": "string"
                            },
                            "path": {
                              "description": "Path is the JSON path to remove. Not needed if Op is \"ignore\".",
                              "nullable": true,
                              "type": "string"
                            },
                            "value": {
                              "description": "Value is usually empty.",
                              "nullable": true,
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "nullable": true,
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "nullable": true,
                  "type": "array"
                }
              },
              "type": "object"
            },
            "downstreamResources": {
              "description": "DownstreamResources points to resources to be copied into downstream clusters, from the bundle's\nnamespace.",
              "items": {
                "description": "DownstreamResource contains identifiers for a resource to be copied from the parent bundle's namespace to each\ndownstream cluster.",
                "properties": {
                  "kind": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "forceSyncGeneration": {
              "description": "ForceSyncGeneration is used to force a redeployment",
              "format": "int64",
              "type": "integer"
            },
            "helm": {
              "description": "Helm options for the deployment, like the chart name, repo and values.",
              "properties": {
                "atomic": {
                  "description": "Atomic sets the --atomic flag when Helm is performing an upgrade",
                  "type": "boolean"
                },
                "chart": {
                  "description": "Chart can refer to any go-getter URL or OCI registry based helm\nchart URL. The chart will be downloaded.",
                  "nullable": true,
                  "type": "string"
                },
                "disableDNS": {
                  "description": "DisableDNS can be used to customize Helm's EnableDNS option, which Fleet sets to `true` by default.",
                  "type": "boolean"
                },
                "disableDependencyUpdate": {
                  "description": "DisableDependencyUpdate allows skipping chart dependencies update",
                  "type": "boolean"
                },
                "disablePreProcess": {
                  "description": "DisablePreProcess disables template processing in values",
                  "type": "boolean"
                },
                "force": {
                  "description": "Force allows to override immutable resources. This could be dangerous.",
                  "type": "boolean"
                },
                "maxHistory": {
                  "description": "MaxHistory limits the maximum number of revisions saved per release by Helm.",
                  "type": "integer"
                },
                "releaseName": {
                  "description": "ReleaseName sets a custom release name to deploy the chart as. If\nnot specified a release name will be generated by combining the\ninvoking GitRepo.name + GitRepo.path.",
                  "maxLength": 53,
                  "nullable": true,
                  "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                  "type": "string"
                },
                "repo": {
                  "description": "Repo is the name of the HTTPS helm repo to download the chart from.",
                  "nullable": true,
                  "type": "string"
                },
                "skipSchemaValidation": {
                  "description": "SkipSchemaValidation allows skipping schema validation against the chart values",
                  "type": "boolean"
                },
                "takeOwnership": {
                  "description": "TakeOwnership makes helm skip the check for its own annotations",
                  "type": "boolean"
                },
                "templateValues": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Template Values passed to Helm. It is possible to specify the keys and values\nas go template strings. Unlike .values, content of each key will be templated\nfirst, before serializing to yaml. This allows to template complex values,\nlike ranges and maps.\ntemplateValues keys have precedence over values keys in case of conflict.",
                  "nullable": true,
                  "type": "object"
                },
                "timeoutSeconds": {
                  "description": "TimeoutSeconds is the time to wait for Helm operations.",
                  "type": "integer"
                },
                "values": {
                  "description": "Values passed to Helm. It is possible to specify the keys and values\nas go template strings.",
                  "nullable": true,
                  "type": "object",
                  "x-kubernetes-preserve-unknown-fields": true
                },
                "valuesFiles": {
                  "description": "ValuesFiles is a list of files to load values from.",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true,
                  "type": "array"
                },
                "valuesFrom": {
                  "description": "ValuesFrom loads the values from configmaps and secrets.",
                  "items": {
                    "description": "Define helm values that can come from configmap, secret or external. Credit: https://github.com/fluxcd/helm-operator/blob/0cfea875b5d44bea995abe7324819432070dfbdc/pkg/apis/helm.fluxcd.io/v1/types_helmrelease.go#L439",
                    "properties": {
                      "configMapKeyRef": {
                        "description": "The reference to a config map with release values.",
                        "nullable": true,
                        "properties": {
                          "key": {
                            "nullable": true,
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of a resource in the same namespace as the referent.",
                            "nullable": true,
                            "type": "string"
                          },
                          "namespace": {
                            "nullable": true,
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "secretKeyRef": {
                        "description": "The reference to a secret with release values.",
                        "nullable": true,
                        "properties": {
                          "key": {
                            "nullable": true,
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of a resource in the same namespace as the referent.",
                            "nullable": true,
                            "type": "string"
                          },
                          "namespace": {
                            "nullable": true,
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "nullable": true,
                  "type": "array"
                },
                "version": {
                  "description": "Version of the chart to download",
                  "nullable": true,
                  "type": "string"
                },
                "waitForJobs": {
                  "description": "WaitForJobs if set and timeoutSeconds provided, will wait until all\nJobs have been completed before marking the GitRepo as ready. It\nwill wait for as long as timeoutSeconds",
                  "type": "boolean"
                }
              },
              "type": "object"
            },
            "ignore": {
              "description": "IgnoreOptions can be used to ignore fields when monitoring the bundle.",
              "nullable": true,
              "properties": {
                "conditions": {
                  "description": "Conditions is a list of conditions to be ignored when monitoring the Bundle.",
                  "items": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "type": "object"
                  },
                  "nullable": true,
                  "type": "array"
                }
              },
              "type": "object"
            },
            "keepResources": {
              "description": "KeepResources can be used to keep the deployed resources when removing the bundle",
              "type": "boolean"
            },
            "kustomize": {
              "description": "Kustomize options for the deployment, like the dir containing the\nkustomization.yaml file.",
              "nullable": true,
              "properties": {
                "dir": {
                  "description": "Dir points to a custom folder for kustomize resources. This folder must contain\na kustomization.yaml file.",
                  "nullable": true,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "namespace": {
              "description": "TargetNamespace if present will assign all resource to this\nnamespace and if any cluster scoped resource exists the deployment\nwill fail.",
              "nullable": true,
              "type": "string"
            },
            "namespaceAnnotations": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet.",
              "nullable": true,
              "type": "object"
            },
            "namespaceLabels": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "NamespaceLabels are labels that will be appended to the namespace created by Fleet.",
              "nullable": true,
              "type": "object"
            },
            "serviceAccount": {
              "description": "ServiceAccount which will be used to perform this deployment.",
              "nullable": true,
              "type": "string"
            },
            "yaml": {
              "description": "YAML options, if using raw YAML these are names that map to\noverlays/{name} files that will be used to replace or patch a resource.",
              "nullable": true,
              "properties": {
                "overlays": {
                  "description": "Overlays is a list of names that maps to folders in \"overlays/\".\nIf you wish to customize the file ./subdir/resource.yaml then a file\n./overlays/myoverlay/subdir/resource.yaml will replace the base\nfile.\nA file named ./overlays/myoverlay/subdir/resource_patch.yaml will patch the base file.",
                  "items": {
                    "type": "string"
                  },
                  "nullable": true,
                  "type": "array"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "valuesHash": {
          "description": "ValuesHash is the hash of the values used to deploy the bundle.",
          "nullable": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "status": {
      "properties": {
        "appliedDeploymentID": {
          "nullable": true,
          "type": "string"
        },
        "conditions": {
          "items": {
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "type": "string"
              },
              "lastUpdateTime": {
                "description": "The last time this condition was updated.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about last transition",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of cluster condition.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object"
          },
          "nullable": true,
          "type": "array"
        },
        "display": {
          "nullable": true,
          "properties": {
            "deployed": {
              "nullable": true,
              "type": "string"
            },
            "monitored": {
              "nullable": true,
              "type": "string"
            },
            "state": {
              "nullable": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        "incompleteState": {
          "description": "IncompleteState is true if there are more than 10 non-ready or modified resources, meaning that the lists in those fields have been truncated.",
          "type": "boolean"
        },
        "modifiedStatus": {
          "items": {
            "description": "ModifiedStatus is used to report the status of a resource that is modified.\nIt indicates if the modification was a create, a delete or a patch.",
            "properties": {
              "apiVersion": {
                "nullable": true,
                "type": "string"
              },
              "delete": {
                "type": "boolean"
              },
              "exist": {
                "description": "Exist is true if the resource exists but is not owned by us. This can happen if a resource was adopted by another bundle whereas the first bundle still exists and due to that reports that it does not own it.",
                "type": "boolean"
              },
              "kind": {
                "nullable": true,
                "type": "string"
              },
              "missing": {
                "type": "boolean"
              },
              "name": {
                "nullable": true,
                "type": "string"
              },
              "namespace": {
                "nullable": true,
                "type": "string"
              },
              "patch": {
                "nullable": true,
                "type": "string"
              }
            },
            "type": "object"
          },
          "nullable": true,
          "type": "array"
        },
        "nonModified": {
          "type": "boolean"
        },
        "nonReadyStatus": {
          "items": {
            "description": "NonReadyStatus is used to report the status of a resource that is not ready. It includes a summary.",
            "properties": {
              "apiVersion": {
                "nullable": true,
                "type": "string"
              },
              "kind": {
                "nullable": true,
                "type": "string"
              },
              "name": {
                "nullable": true,
                "type": "string"
              },
              "namespace": {
                "nullable": true,
                "type": "string"
              },
              "summary": {
                "properties": {
                  "error": {
                    "type": "boolean"
                  },
                  "message": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "state": {
                    "type": "string"
                  },
                  "transitioning": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "uid": {
                "description": "UID is a type that holds unique ID values, including UUIDs.  Because we\ndon't ONLY use UUIDs, this is an alias to string.  Being a type captures\nintent and helps make sure that UIDs and names do not get conflated.",
                "nullable": true,
                "type": "string"
              }
            },
            "type": "object"
          },
          "nullable": true,
          "type": "array"
        },
        "ready": {
          "type": "boolean"
        },
        "release": {
          "description": "Release is the Helm release ID",
          "nullable": true,
          "type": "string"
        },
        "resourceCounts": {
          "description": "ResourceCounts contains the number of resources in each state.",
          "properties": {
            "desiredReady": {
              "description": "DesiredReady is the number of resources that should be ready.",
              "type": "integer"
            },
            "missing": {
              "description": "Missing is the number of missing resources.",
              "type": "integer"
            },
            "modified": {
              "description": "Modified is the number of resources that have been modified.",
              "type": "integer"
            },
            "notReady": {
              "description": "NotReady is the number of not ready resources. Resources are not\nready if they do not match any other state.",
              "type": "integer"
            },
            "orphaned": {
              "description": "Orphaned is the number of orphaned resources.",
              "type": "integer"
            },
            "ready": {
              "description": "Ready is the number of ready resources.",
              "type": "integer"
            },
            "unknown": {
              "description": "Unknown is the number of resources in an unknown state.",
              "type": "integer"
            },
            "waitApplied": {
              "description": "WaitApplied is the number of resources that are waiting to be applied.",
              "type": "integer"
            }
          },
          "type": "object"
        },
        "resources": {
          "description": "Resources lists the metadata of resources that were deployed\naccording to the helm release history.",
          "items": {
            "description": "BundleDeploymentResource contains the metadata of a deployed resource.",
            "properties": {
              "apiVersion": {
                "nullable": true,
                "type": "string"
              },
              "createdAt": {
                "format": "date-time",
                "nullable": true,
                "type": "string"
              },
              "kind": {
                "nullable": true,
                "type": "string"
              },
              "name": {
                "nullable": true,
                "type": "string"
              },
              "namespace": {
                "nullable": true,
                "type": "string"
              }
            },
            "type": "object"
          },
          "nullable": true,
          "type": "array"
        },
        "syncGeneration": {
          "format": "int64",
          "nullable": true,
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "BundleDeployment v1alpha1"
}