{
  "description": "ClusterExternalSecret is the Schema for the clusterexternalsecrets API.",
  "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": {
      "description": "ClusterExternalSecretSpec defines the desired state of ClusterExternalSecret.",
      "properties": {
        "externalSecretMetadata": {
          "description": "The metadata of the external secrets to be created",
          "properties": {
            "annotations": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "labels": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "externalSecretName": {
          "description": "The name of the external secrets to be created.\nDefaults to the name of the ClusterExternalSecret",
          "maxLength": 253,
          "minLength": 1,
          "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
          "type": "string"
        },
        "externalSecretSpec": {
          "description": "The spec for the ExternalSecrets to be created",
          "properties": {
            "data": {
              "description": "Data defines the connection between the Kubernetes Secret keys and the Provider data",
              "items": {
                "description": "ExternalSecretData defines the connection between the Kubernetes Secret key (spec.data.<key>) and the Provider data.",
                "properties": {
                  "remoteRef": {
                    "description": "RemoteRef points to the remote secret and defines\nwhich secret (version/property/..) to fetch.",
                    "properties": {
                      "conversionStrategy": {
                        "default": "Default",
                        "description": "Used to define a conversion Strategy",
                        "enum": [
                          "Default",
                          "Unicode"
                        ],
                        "type": "string"
                      },
                      "decodingStrategy": {
                        "default": "None",
                        "description": "Used to define a decoding Strategy",
                        "enum": [
                          "Auto",
                          "Base64",
                          "Base64URL",
                          "None"
                        ],
                        "type": "string"
                      },
                      "key": {
                        "description": "Key is the key used in the Provider, mandatory",
                        "type": "string"
                      },
                      "metadataPolicy": {
                        "default": "None",
                        "description": "Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None",
                        "enum": [
                          "None",
                          "Fetch"
                        ],
                        "type": "string"
                      },
                      "property": {
                        "description": "Used to select a specific property of the Provider value (if a map), if supported",
                        "type": "string"
                      },
                      "version": {
                        "description": "Used to select a specific version of the Provider value, if supported",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "secretKey": {
                    "description": "The key in the Kubernetes Secret to store the value.",
                    "maxLength": 253,
                    "minLength": 1,
                    "pattern": "^[-._a-zA-Z0-9]+$",
                    "type": "string"
                  },
                  "sourceRef": {
                    "description": "SourceRef allows you to override the source\nfrom which the value will be pulled.",
                    "maxProperties": 1,
                    "minProperties": 1,
                    "properties": {
                      "generatorRef": {
                        "description": "GeneratorRef points to a generator custom resource.\n\nDeprecated: The generatorRef is not implemented in .data[].\nthis will be removed with v1.",
                        "properties": {
                          "apiVersion": {
                            "default": "generators.external-secrets.io/v1alpha1",
                            "description": "Specify the apiVersion of the generator resource",
                            "type": "string"
                          },
                          "kind": {
                            "description": "Specify the Kind of the generator resource",
                            "enum": [
                              "ACRAccessToken",
                              "ClusterGenerator",
                              "CloudsmithAccessToken",
                              "ECRAuthorizationToken",
                              "Fake",
                              "GCRAccessToken",
                              "GithubAccessToken",
                              "QuayAccessToken",
                              "Password",
                              "SSHKey",
                              "STSSessionToken",
                              "UUID",
                              "VaultDynamicSecret",
                              "Webhook",
                              "Grafana",
                              "MFA"
                            ],
                            "type": "string"
                          },
                          "name": {
                            "description": "Specify the name of the generator resource",
                            "maxLength": 253,
                            "minLength": 1,
                            "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "name"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "storeRef": {
                        "description": "SecretStoreRef defines which SecretStore to fetch the ExternalSecret data.",
                        "properties": {
                          "kind": {
                            "description": "Kind of the SecretStore resource (SecretStore or ClusterSecretStore)\nDefaults to `SecretStore`",
                            "enum": [
                              "SecretStore",
                              "ClusterSecretStore"
                            ],
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the SecretStore resource",
                            "maxLength": 253,
                            "minLength": 1,
                            "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "required": [
                  "remoteRef",
                  "secretKey"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "dataFrom": {
              "description": "DataFrom is used to fetch all properties from a specific Provider data\nIf multiple entries are specified, the Secret keys are merged in the specified order",
              "items": {
                "description": "ExternalSecretDataFromRemoteRef defines the connection between the Kubernetes Secret keys and the Provider data\nwhen using DataFrom to fetch multiple values from a Provider.",
                "properties": {
                  "extract": {
                    "description": "Used to extract multiple key/value pairs from one secret\nNote: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.",
                    "properties": {
                      "conversionStrategy": {
                        "default": "Default",
                        "description": "Used to define a conversion Strategy",
                        "enum": [
                          "Default",
                          "Unicode"
                        ],
                        "type": "string"
                      },
                      "decodingStrategy": {
                        "default": "None",
                        "description": "Used to define a decoding Strategy",
                        "enum": [
                          "Auto",
                          "Base64",
                          "Base64URL",
                          "None"
                        ],
                        "type": "string"
                      },
                      "key": {
                        "description": "Key is the key used in the Provider, mandatory",
                        "type": "string"
                      },
                      "metadataPolicy": {
                        "default": "None",
                        "description": "Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None",
                        "enum": [
                          "None",
                          "Fetch"
                        ],
                        "type": "string"
                      },
                      "property": {
                        "description": "Used to select a specific property of the Provider value (if a map), if supported",
                        "type": "string"
                      },
                      "version": {
                        "description": "Used to select a specific version of the Provider value, if supported",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "find": {
                    "description": "Used to find secrets based on tags or regular expressions\nNote: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.",
                    "properties": {
                      "conversionStrategy": {
                        "default": "Default",
                        "description": "Used to define a conversion Strategy",
                        "enum": [
                          "Default",
                          "Unicode"
                        ],
                        "type": "string"
                      },
                      "decodingStrategy": {
                        "default": "None",
                        "description": "Used to define a decoding Strategy",
                        "enum": [
                          "Auto",
                          "Base64",
                          "Base64URL",
                          "None"
                        ],
                        "type": "string"
                      },
                      "name": {
                        "description": "Finds secrets based on the name.",
                        "properties": {
                          "regexp": {
                            "description": "Finds secrets base",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "path": {
                        "description": "A root path to start the find operations.",
                        "type": "string"
                      },
                      "tags": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Find secrets based on tags.",
                        "type": "object"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "rewrite": {
                    "description": "Used to rewrite secret Keys after getting them from the secret Provider\nMultiple Rewrite operations can be provided. They are applied in a layered order (first to last)",
                    "items": {
                      "description": "ExternalSecretRewrite defines how to rewrite secret data values before they are written to the Secret.",
                      "maxProperties": 1,
                      "minProperties": 1,
                      "properties": {
                        "merge": {
                          "description": "Used to merge key/values in one single Secret\nThe resulting key will contain all values from the specified secrets",
                          "properties": {
                            "conflictPolicy": {
                              "default": "Error",
                              "description": "Used to define the policy to use in conflict resolution.",
                              "enum": [
                                "Ignore",
                                "Error"
                              ],
                              "type": "string"
                            },
                            "into": {
                              "default": "",
                              "description": "Used to define the target key of the merge operation.\nRequired if strategy is JSON. Ignored otherwise.",
                              "type": "string"
                            },
                            "priority": {
                              "description": "Used to define key priority in conflict resolution.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            },
                            "priorityPolicy": {
                              "default": "Strict",
                              "description": "Used to define the policy when a key in the priority list does not exist in the input.",
                              "enum": [
                                "IgnoreNotFound",
                                "Strict"
                              ],
                              "type": "string"
                            },
                            "strategy": {
                              "default": "Extract",
                              "description": "Used to define the strategy to use in the merge operation.",
                              "enum": [
                                "Extract",
                                "JSON"
                              ],
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "regexp": {
                          "description": "Used to rewrite with regular expressions.\nThe resulting key will be the output of a regexp.ReplaceAll operation.",
                          "properties": {
                            "source": {
                              "description": "Used to define the regular expression of a re.Compiler.",
                              "type": "string"
                            },
                            "target": {
                              "description": "Used to define the target pattern of a ReplaceAll operation.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "source",
                            "target"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        },
                        "transform": {
                          "description": "Used to apply string transformation on the secrets.\nThe resulting key will be the output of the template applied by the operation.",
                          "properties": {
                            "template": {
                              "description": "Used to define the template to apply on the secret name.\n`.value ` will specify the secret name in the template.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "template"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "sourceRef": {
                    "description": "SourceRef points to a store or generator\nwhich contains secret values ready to use.\nUse this in combination with Extract or Find pull values out of\na specific SecretStore.\nWhen sourceRef points to a generator Extract or Find is not supported.\nThe generator returns a static map of values",
                    "maxProperties": 1,
                    "minProperties": 1,
                    "properties": {
                      "generatorRef": {
                        "description": "GeneratorRef points to a generator custom resource.",
                        "properties": {
                          "apiVersion": {
                            "default": "generators.external-secrets.io/v1alpha1",
                            "description": "Specify the apiVersion of the generator resource",
                            "type": "string"
                          },
                          "kind": {
                            "description": "Specify the Kind of the generator resource",
                            "enum": [
                              "ACRAccessToken",
                              "ClusterGenerator",
                              "CloudsmithAccessToken",
                              "ECRAuthorizationToken",
                              "Fake",
                              "GCRAccessToken",
                              "GithubAccessToken",
                              "QuayAccessToken",
                              "Password",
                              "SSHKey",
                              "STSSessionToken",
                              "UUID",
                              "VaultDynamicSecret",
                              "Webhook",
                              "Grafana",
                              "MFA"
                            ],
                            "type": "string"
                          },
                          "name": {
                            "description": "Specify the name of the generator resource",
                            "maxLength": 253,
                            "minLength": 1,
                            "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "name"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "storeRef": {
                        "description": "SecretStoreRef defines which SecretStore to fetch the ExternalSecret data.",
                        "properties": {
                          "kind": {
                            "description": "Kind of the SecretStore resource (SecretStore or ClusterSecretStore)\nDefaults to `SecretStore`",
                            "enum": [
                              "SecretStore",
                              "ClusterSecretStore"
                            ],
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the SecretStore resource",
                            "maxLength": 253,
                            "minLength": 1,
                            "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "refreshInterval": {
              "default": "1h0m0s",
              "description": "RefreshInterval is the amount of time before the values are read again from the SecretStore provider,\nspecified as Golang Duration strings.\nValid time units are \"ns\", \"us\" (or \"\u00b5s\"), \"ms\", \"s\", \"m\", \"h\"\nExample values: \"1h0m0s\", \"2h30m0s\", \"10m0s\"\nMay be set to \"0s\" to fetch and create it once. Defaults to 1h0m0s.",
              "type": "string"
            },
            "refreshPolicy": {
              "description": "RefreshPolicy determines how the ExternalSecret should be refreshed:\n- CreatedOnce: Creates the Secret only if it does not exist and does not update it thereafter\n- Periodic: Synchronizes the Secret from the external source at regular intervals specified by refreshInterval.\n  No periodic updates occur if refreshInterval is 0.\n- OnChange: Only synchronizes the Secret when the ExternalSecret's metadata or specification changes",
              "enum": [
                "CreatedOnce",
                "Periodic",
                "OnChange"
              ],
              "type": "string"
            },
            "secretStoreRef": {
              "description": "SecretStoreRef defines which SecretStore to fetch the ExternalSecret data.",
              "properties": {
                "kind": {
                  "description": "Kind of the SecretStore resource (SecretStore or ClusterSecretStore)\nDefaults to `SecretStore`",
                  "enum": [
                    "SecretStore",
                    "ClusterSecretStore"
                  ],
                  "type": "string"
                },
                "name": {
                  "description": "Name of the SecretStore resource",
                  "maxLength": 253,
                  "minLength": 1,
                  "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "target": {
              "default": {
                "creationPolicy": "Owner",
                "deletionPolicy": "Retain"
              },
              "description": "ExternalSecretTarget defines the Kubernetes Secret to be created,\nthere can be only one target per ExternalSecret.",
              "properties": {
                "creationPolicy": {
                  "default": "Owner",
                  "description": "CreationPolicy defines rules on how to create the resulting Secret.\nDefaults to \"Owner\"",
                  "enum": [
                    "Owner",
                    "Orphan",
                    "Merge",
                    "None"
                  ],
                  "type": "string"
                },
                "deletionPolicy": {
                  "default": "Retain",
                  "description": "DeletionPolicy defines rules on how to delete the resulting Secret.\nDefaults to \"Retain\"",
                  "enum": [
                    "Delete",
                    "Merge",
                    "Retain"
                  ],
                  "type": "string"
                },
                "immutable": {
                  "description": "Immutable defines if the final secret will be immutable",
                  "type": "boolean"
                },
                "manifest": {
                  "description": "Manifest defines a custom Kubernetes resource to create instead of a Secret.\nWhen specified, ExternalSecret will create the resource type defined here\n(e.g., ConfigMap, Custom Resource) instead of a Secret.\nWarning: Using Generic target. Make sure access policies and encryption are properly configured.",
                  "properties": {
                    "apiVersion": {
                      "description": "APIVersion of the target resource (e.g., \"v1\" for ConfigMap, \"argoproj.io/v1alpha1\" for ArgoCD Application)",
                      "minLength": 1,
                      "type": "string"
                    },
                    "kind": {
                      "description": "Kind of the target resource (e.g., \"ConfigMap\", \"Application\")",
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "apiVersion",
                    "kind"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "name": {
                  "description": "The name of the Secret resource to be managed.\nDefaults to the .metadata.name of the ExternalSecret resource",
                  "maxLength": 253,
                  "minLength": 1,
                  "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                  "type": "string"
                },
                "template": {
                  "description": "Template defines a blueprint for the created Secret resource.",
                  "properties": {
                    "data": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "engineVersion": {
                      "default": "v2",
                      "description": "EngineVersion specifies the template engine version\nthat should be used to compile/execute the\ntemplate specified in .data and .templateFrom[].",
                      "enum": [
                        "v2"
                      ],
                      "type": "string"
                    },
                    "mergePolicy": {
                      "default": "Replace",
                      "description": "TemplateMergePolicy defines how the rendered template should be merged with the existing Secret data.",
                      "enum": [
                        "Replace",
                        "Merge"
                      ],
                      "type": "string"
                    },
                    "metadata": {
                      "description": "ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.",
                      "properties": {
                        "annotations": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "type": "object"
                        },
                        "finalizers": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "labels": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "type": "object"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "templateFrom": {
                      "items": {
                        "description": "TemplateFrom specifies a source for templates.\nEach item in the list can either reference a ConfigMap or a Secret resource.",
                        "properties": {
                          "configMap": {
                            "description": "TemplateRef specifies a reference to either a ConfigMap or a Secret resource.",
                            "properties": {
                              "items": {
                                "description": "A list of keys in the ConfigMap/Secret to use as templates for Secret data",
                                "items": {
                                  "description": "TemplateRefItem specifies a key in the ConfigMap/Secret to use as a template for Secret data.",
                                  "properties": {
                                    "key": {
                                      "description": "A key in the ConfigMap/Secret",
                                      "maxLength": 253,
                                      "minLength": 1,
                                      "pattern": "^[-._a-zA-Z0-9]+$",
                                      "type": "string"
                                    },
                                    "templateAs": {
                                      "default": "Values",
                                      "description": "TemplateScope specifies how the template keys should be interpreted.",
                                      "enum": [
                                        "Values",
                                        "KeysAndValues"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "key"
                                  ],
                                  "type": "object",
                                  "additionalProperties": false
                                },
                                "type": "array"
                              },
                              "name": {
                                "description": "The name of the ConfigMap/Secret resource",
                                "maxLength": 253,
                                "minLength": 1,
                                "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                                "type": "string"
                              }
                            },
                            "required": [
                              "items",
                              "name"
                            ],
                            "type": "object",
                            "additionalProperties": false
                          },
                          "literal": {
                            "type": "string"
                          },
                          "secret": {
                            "description": "TemplateRef specifies a reference to either a ConfigMap or a Secret resource.",
                            "properties": {
                              "items": {
                                "description": "A list of keys in the ConfigMap/Secret to use as templates for Secret data",
                                "items": {
                                  "description": "TemplateRefItem specifies a key in the ConfigMap/Secret to use as a template for Secret data.",
                                  "properties": {
                                    "key": {
                                      "description": "A key in the ConfigMap/Secret",
                                      "maxLength": 253,
                                      "minLength": 1,
                                      "pattern": "^[-._a-zA-Z0-9]+$",
                                      "type": "string"
                                    },
                                    "templateAs": {
                                      "default": "Values",
                                      "description": "TemplateScope specifies how the template keys should be interpreted.",
                                      "enum": [
                                        "Values",
                                        "KeysAndValues"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "key"
                                  ],
                                  "type": "object",
                                  "additionalProperties": false
                                },
                                "type": "array"
                              },
                              "name": {
                                "description": "The name of the ConfigMap/Secret resource",
                                "maxLength": 253,
                                "minLength": 1,
                                "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                                "type": "string"
                              }
                            },
                            "required": [
                              "items",
                              "name"
                            ],
                            "type": "object",
                            "additionalProperties": false
                          },
                          "target": {
                            "default": "Data",
                            "description": "Target specifies where to place the template result.\nFor Secret resources, common values are: \"Data\", \"Annotations\", \"Labels\".\nFor custom resources (when spec.target.manifest is set), this supports\nnested paths like \"spec.database.config\" or \"data\".",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "namespaceSelector": {
          "description": "The labels to select by to find the Namespaces to create the ExternalSecrets in.\nDeprecated: Use NamespaceSelectors instead.",
          "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",
                "additionalProperties": false
              },
              "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",
          "additionalProperties": false
        },
        "namespaceSelectors": {
          "description": "A list of labels to select by to find the Namespaces to create the ExternalSecrets in. The selectors are ORed.",
          "items": {
            "description": "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.",
            "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",
                  "additionalProperties": false
                },
                "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",
            "additionalProperties": false
          },
          "type": "array"
        },
        "namespaces": {
          "description": "Choose namespaces by name. This field is ORed with anything that NamespaceSelectors ends up choosing.\nDeprecated: Use NamespaceSelectors instead.",
          "items": {
            "maxLength": 63,
            "minLength": 1,
            "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
            "type": "string"
          },
          "type": "array"
        },
        "refreshTime": {
          "description": "The time in which the controller should reconcile its objects and recheck namespaces for labels.",
          "type": "string"
        }
      },
      "required": [
        "externalSecretSpec"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "ClusterExternalSecretStatus defines the observed state of ClusterExternalSecret.",
      "properties": {
        "conditions": {
          "items": {
            "description": "ClusterExternalSecretStatusCondition defines the observed state of a ClusterExternalSecret resource.",
            "properties": {
              "message": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "type": {
                "description": "ClusterExternalSecretConditionType defines a value type for ClusterExternalSecret conditions.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "externalSecretName": {
          "description": "ExternalSecretName is the name of the ExternalSecrets created by the ClusterExternalSecret",
          "type": "string"
        },
        "failedNamespaces": {
          "description": "Failed namespaces are the namespaces that failed to apply an ExternalSecret",
          "items": {
            "description": "ClusterExternalSecretNamespaceFailure represents a failed namespace deployment and it's reason.",
            "properties": {
              "namespace": {
                "description": "Namespace is the namespace that failed when trying to apply an ExternalSecret",
                "type": "string"
              },
              "reason": {
                "description": "Reason is why the ExternalSecret failed to apply to the namespace",
                "type": "string"
              }
            },
            "required": [
              "namespace"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "provisionedNamespaces": {
          "description": "ProvisionedNamespaces are the namespaces where the ClusterExternalSecret has secrets",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
