{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
        "affinity": {
            "description": "Set affinity rules for the Capsule pod",
            "type": "object"
        },
        "certManager": {
            "type": "object",
            "properties": {
                "additionalSANS": {
                    "description": "Specify additional SANS to add to the certificate",
                    "type": "array"
                },
                "generateCertificates": {
                    "description": "Specifies whether capsule webhooks certificates should be generated using cert-manager",
                    "type": "boolean"
                }
            }
        },
        "conversions": {
            "type": "object",
            "properties": {
                "service": {
                    "type": "object",
                    "properties": {
                        "caBundle": {
                            "description": "CABundle for the webhook service",
                            "type": "string"
                        },
                        "name": {
                            "description": "Custom service name for the webhook service",
                            "type": "string"
                        },
                        "namespace": {
                            "description": "Custom service namespace for the webhook service",
                            "type": "string"
                        },
                        "port": {
                            "description": "(integer, null) Custom service port for the webhook service",
                            "type": [
                                "integer",
                                "null"
                            ]
                        },
                        "url": {
                            "description": "The URL where the capsule webhook services are running (Overwrites cluster scoped service definition)",
                            "type": "string"
                        }
                    }
                }
            }
        },
        "crds": {
            "type": "object",
            "properties": {
                "annnotations": {
                    "description": "Extra Annotations for CRDs",
                    "type": "object"
                },
                "createConfig": {
                    "description": "Create additionally CapsuleConfiguration even if CRDs are exclusive",
                    "type": "boolean"
                },
                "createDiagnostics": {
                    "description": "Create Diagnostic Dashboards even if CRDs are exclusive",
                    "type": "boolean"
                },
                "createRBAC": {
                    "description": "Create RBAC and Serviceaccount even if CRDs are exclusive",
                    "type": "boolean"
                },
                "exclusive": {
                    "description": "Only install the CRDs, no other primitives",
                    "type": "boolean"
                },
                "inline": {
                    "description": "Render CRDS inline (in this case use --skip-crds when installing the chart and create the capsuleconfiguration independently)",
                    "type": "boolean"
                },
                "install": {
                    "description": "Install the CustomResourceDefinitions (This also manages the lifecycle of the CRDs for update operations)",
                    "type": "boolean"
                },
                "labels": {
                    "description": "Extra Labels for CRDs",
                    "type": "object"
                }
            }
        },
        "customAnnotations": {
            "description": "Additional annotations which will be added to all resources created by Capsule helm chart",
            "type": "object"
        },
        "customLabels": {
            "description": "Additional labels which will be added to all resources created by Capsule helm chart",
            "type": "object"
        },
        "extraManifests": {
            "description": "Array of additional resources to be created alongside Capsule helm chart",
            "type": "array"
        },
        "global": {
            "type": "object",
            "properties": {
                "jobs": {
                    "type": "object",
                    "properties": {
                        "kubectl": {
                            "type": "object",
                            "properties": {
                                "affinity": {
                                    "description": "Set affinity rules",
                                    "type": "object"
                                },
                                "annotations": {
                                    "description": "Annotations to add to the job.",
                                    "type": "object"
                                },
                                "backoffLimit": {
                                    "description": "Backofflimit for jobs",
                                    "type": "integer"
                                },
                                "image": {
                                    "type": "object",
                                    "properties": {
                                        "pullPolicy": {
                                            "description": "Set the image pull policy of the helm chart job",
                                            "type": "string"
                                        },
                                        "registry": {
                                            "description": "Set the image repository of the helm chart job",
                                            "type": "string"
                                        },
                                        "repository": {
                                            "description": "Set the image repository of the helm chart job",
                                            "type": "string"
                                        },
                                        "tag": {
                                            "description": "Set the image tag of the helm chart job",
                                            "type": "string"
                                        }
                                    }
                                },
                                "imagePullSecrets": {
                                    "description": "ImagePullSecrets",
                                    "type": "array"
                                },
                                "labels": {
                                    "description": "Labels to add to the job.",
                                    "type": "object"
                                },
                                "nodeSelector": {
                                    "description": "Set the node selector",
                                    "type": "object"
                                },
                                "podAnnotations": {
                                    "description": "Annotations to add to the job pod",
                                    "type": "object"
                                },
                                "podLabels": {
                                    "description": "Labels to add to the job pod",
                                    "type": "object"
                                },
                                "podSecurityContext": {
                                    "description": "Security context for the job pods.",
                                    "type": "object",
                                    "properties": {
                                        "enabled": {
                                            "type": "boolean"
                                        },
                                        "seccompProfile": {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "priorityClassName": {
                                    "description": "Set a pod priorityClassName",
                                    "type": "string"
                                },
                                "resources": {
                                    "description": "Job resources",
                                    "type": "object"
                                },
                                "restartPolicy": {
                                    "description": "Set the restartPolicy",
                                    "type": "string"
                                },
                                "securityContext": {
                                    "description": "Security context for the job containers.",
                                    "type": "object",
                                    "properties": {
                                        "allowPrivilegeEscalation": {
                                            "type": "boolean"
                                        },
                                        "capabilities": {
                                            "type": "object",
                                            "properties": {
                                                "drop": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        },
                                        "enabled": {
                                            "type": "boolean"
                                        },
                                        "readOnlyRootFilesystem": {
                                            "type": "boolean"
                                        },
                                        "runAsGroup": {
                                            "type": "integer"
                                        },
                                        "runAsNonRoot": {
                                            "type": "boolean"
                                        },
                                        "runAsUser": {
                                            "type": "integer"
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "tolerations": {
                                    "description": "Set list of tolerations",
                                    "type": "array"
                                },
                                "topologySpreadConstraints": {
                                    "description": "Set Topology Spread Constraints",
                                    "type": "array"
                                },
                                "ttlSecondsAfterFinished": {
                                    "description": "Sets the ttl in seconds after a finished certgen job is deleted. Set to -1 to never delete.",
                                    "type": "integer"
                                }
                            }
                        },
                        "postInstall": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable Post Install Job",
                                    "type": "boolean"
                                }
                            }
                        },
                        "preDelete": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable Pre Delete Job",
                                    "type": "boolean"
                                }
                            }
                        }
                    }
                }
            }
        },
        "imagePullSecrets": {
            "description": "Configuration for `imagePullSecrets` so that you can use a private images registry.",
            "type": "array"
        },
        "jobs": {
            "description": "Deprecated, use .global.jobs.kubectl instead",
            "type": "object"
        },
        "manager": {
            "type": "object",
            "properties": {
                "apiPriorityAndFairness": {
                    "type": "object",
                    "properties": {
                        "enabled": {
                            "description": "Change to `true` if you want to insulate the API calls made by Capsule admission controller activities. This will help ensure Capsule stability in busy clusters. Ref: https://kubernetes.io/docs/concepts/cluster-administration/flow-control/",
                            "type": "boolean"
                        },
                        "flowApiVersion": {
                            "description": "Declare ApiVersion used for Flow",
                            "type": "string"
                        },
                        "matchingPrecedence": {
                            "description": "Only the first matching FlowSchema for a given request matters. If multiple FlowSchemas match a single inbound request, it will be assigned based on the one with the highest matchingPrecedence. Ref: https://kubernetes.io/docs/concepts/cluster-administration/flow-control/#flowschema",
                            "type": "integer"
                        },
                        "priorityLevelConfigurationSpec": {
                            "description": "Priority level configuration. The block is directly forwarded into the priorityLevelConfiguration, so you can use whatever specification you want. ref: https://kubernetes.io/docs/concepts/cluster-administration/flow-control/#prioritylevelconfiguration",
                            "type": "object",
                            "properties": {
                                "limited": {
                                    "type": "object",
                                    "properties": {
                                        "limitResponse": {
                                            "type": "object",
                                            "properties": {
                                                "queuing": {
                                                    "type": "object",
                                                    "properties": {
                                                        "handSize": {
                                                            "type": "integer"
                                                        },
                                                        "queueLengthLimit": {
                                                            "type": "integer"
                                                        },
                                                        "queues": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "type": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "nominalConcurrencyShares": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "type": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": true
                        }
                    }
                },
                "daemonsetStrategy": {
                    "description": "[Daemonset Strategy](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#creating-a-daemonset-with-rollingupdate-update-strategy)",
                    "type": "object",
                    "properties": {
                        "type": {
                            "type": "string"
                        }
                    }
                },
                "deploymentStrategy": {
                    "description": "[Deployment Strategy](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)",
                    "type": "object",
                    "properties": {
                        "type": {
                            "type": "string"
                        }
                    }
                },
                "env": {
                    "description": "Additional Environment Variables",
                    "type": "array"
                },
                "extraArgs": {
                    "description": "A list of extra arguments for the capsule controller",
                    "type": "array"
                },
                "hostNetwork": {
                    "description": "Specifies if the container should be started in hostNetwork mode.  Required for use in some managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working",
                    "type": "boolean"
                },
                "hostPID": {
                    "description": "Specifies if the container should be started in hostPID mode.",
                    "type": "boolean"
                },
                "hostUsers": {
                    "description": "Don't use Host Users (User Namespaces)",
                    "type": "boolean"
                },
                "image": {
                    "type": "object",
                    "properties": {
                        "pullPolicy": {
                            "description": "Set the image pull policy.",
                            "type": "string"
                        },
                        "registry": {
                            "description": "Set the image registry of capsule.",
                            "type": "string"
                        },
                        "repository": {
                            "description": "Set the image repository of capsule.",
                            "type": "string"
                        },
                        "tag": {
                            "description": "Overrides the image tag whose default is the chart appVersion.",
                            "type": "string"
                        }
                    }
                },
                "kind": {
                    "description": "Set the controller deployment mode as `Deployment` or `DaemonSet`.",
                    "type": "string"
                },
                "livenessProbe": {
                    "description": "Configure the liveness probe using Deployment probe spec",
                    "type": "object",
                    "properties": {
                        "httpGet": {
                            "type": "object",
                            "properties": {
                                "path": {
                                    "type": "string"
                                },
                                "port": {
                                    "type": "integer"
                                }
                            }
                        }
                    },
                    "additionalProperties": true
                },
                "options": {
                    "type": "object",
                    "properties": {
                        "administrators": {
                            "description": "Define entities which can act as Administrators in the capsule construct These entities are automatically owners for all existing tenants. Meaning they can add namespaces to any tenant. However they must be specific by using the capsule label for interacting with namespaces. Because if that label is not defined, it's assumed that namespace interaction was not targeted towards a tenant and will therefore be ignored by capsule. May also be handy in GitOps scenarios where certain service accounts need to be able to manage namespaces for all tenants.",
                            "type": "array"
                        },
                        "allowServiceAccountPromotion": {
                            "description": "ServiceAccounts within tenant namespaces can be promoted to owners of the given tenant this can be achieved by labeling the serviceaccount and then they are considered owners. This can only be done by other owners of the tenant. However ServiceAccounts which have been promoted to owner can not promote further serviceAccounts.",
                            "type": "boolean"
                        },
                        "annotations": {
                            "description": "Additional annotations to add to the CapsuleConfiguration resource",
                            "type": "object"
                        },
                        "cacheInvalidation": {
                            "description": "Duration after which the in-memory cache is invalidated (based on usaage) and re-fetched from the API server",
                            "type": "string"
                        },
                        "cacheSyncTimeout": {
                            "description": "Timeout used when waiting for controller cache synchronization. Empty uses controller-runtime's default.",
                            "type": "string"
                        },
                        "capsuleConfiguration": {
                            "description": "Change the default name of the capsule configuration name",
                            "type": "string"
                        },
                        "capsuleUserGroups": {
                            "description": "DEPRECATED: use users properties. Names of the users considered as Capsule users.",
                            "type": "array"
                        },
                        "clientConnectionBurst": {
                            "description": "Burst to use for interacting with kubernetes apiserver",
                            "type": "integer"
                        },
                        "clientConnectionQPS": {
                            "description": "QPS to use for interacting with kubernetes apiserver",
                            "type": "number"
                        },
                        "createConfiguration": {
                            "description": "Create Configuration",
                            "type": "boolean"
                        },
                        "forceTenantPrefix": {
                            "description": "Boolean, enforces the Tenant owner, during Namespace creation, to name it using the selected Tenant name as prefix, separated by a dash",
                            "type": "boolean"
                        },
                        "generateCertificates": {
                            "description": "Specifies whether capsule webhooks certificates should be generated by capsule operator",
                            "type": "boolean"
                        },
                        "ignoreUserWithGroups": {
                            "description": "Define groups which when found in the request of a user will be ignored by the Capsule this might be useful if you have one group where all the users are in, but you want to separate administrators from normal users with additional groups.",
                            "type": "array"
                        },
                        "impersonation": {
                            "description": "Impersonation",
                            "type": "object",
                            "properties": {
                                "tenantDefaultServiceAccount": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": true
                        },
                        "labels": {
                            "description": "Additional labels to add to the CapsuleConfiguration resource",
                            "type": "object"
                        },
                        "leaderElection": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable Leader Election for capsule controller",
                                    "type": "boolean"
                                },
                                "leaseDuration": {
                                    "description": "Leader election lease duration. Empty uses controller-runtime's default.",
                                    "type": "string"
                                },
                                "renewDeadline": {
                                    "description": "Leader election renew deadline. Empty uses controller-runtime's default.",
                                    "type": "string"
                                },
                                "retryPeriod": {
                                    "description": "Leader election retry period. Empty uses controller-runtime's default.",
                                    "type": "string"
                                }
                            }
                        },
                        "logLevel": {
                            "description": "Set the log verbosity of the capsule with a value from 1 to 5",
                            "type": "string"
                        },
                        "nodeMetadata": {
                            "description": "Allows to set the forbidden metadata for the worker nodes that could be patched by a Tenant",
                            "type": "object",
                            "properties": {
                                "forbiddenAnnotations": {
                                    "type": "object",
                                    "properties": {
                                        "denied": {
                                            "type": "array"
                                        },
                                        "deniedRegex": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "forbiddenLabels": {
                                    "type": "object",
                                    "properties": {
                                        "denied": {
                                            "type": "array"
                                        },
                                        "deniedRegex": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        },
                        "protectedNamespaceRegex": {
                            "description": "If specified, disallows creation of namespaces matching the passed regexp",
                            "type": "string"
                        },
                        "rbac": {
                            "description": "Managed RBAC configuration for the controller",
                            "type": "object",
                            "properties": {
                                "administrationClusterRoles": {
                                    "description": "The ClusterRoles applied for Administrators",
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "deleter": {
                                    "description": "Name for the ClusterRole required to grant Namespace Deletion permissions.",
                                    "type": "string"
                                },
                                "promotionClusterRoles": {
                                    "description": "The ClusterRoles applied for ServiceAccounts which had owner Promotion",
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "provisioner": {
                                    "description": "Name for the ClusterRole required to grant Namespace Provision permissions.",
                                    "type": "string"
                                }
                            }
                        },
                        "tracing": {
                            "type": "object",
                            "properties": {
                                "basicAuth": {
                                    "type": "object",
                                    "properties": {
                                        "existingSecret": {
                                            "type": "object",
                                            "properties": {
                                                "name": {
                                                    "description": "Existing Secret containing OTLP basic auth credentials.",
                                                    "type": "string"
                                                },
                                                "passwordKey": {
                                                    "description": "Secret key containing the basic auth password.",
                                                    "type": "string"
                                                },
                                                "usernameKey": {
                                                    "description": "Secret key containing the basic auth username.",
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "password": {
                                            "description": "Basic auth password for the OTLP gRPC trace exporter. Prefer existingSecret for production.",
                                            "type": "string"
                                        },
                                        "username": {
                                            "description": "Basic auth username for the OTLP gRPC trace exporter. Prefer existingSecret for production.",
                                            "type": "string"
                                        }
                                    }
                                },
                                "compression": {
                                    "description": "Compression for OTLP gRPC trace exports. Supported value: gzip. Empty disables compression.",
                                    "type": "string"
                                },
                                "enabled": {
                                    "description": "Enable OpenTelemetry tracing for admission webhook requests.",
                                    "type": "boolean"
                                },
                                "endpoint": {
                                    "description": "OTLP gRPC endpoint for exporting traces. If empty, OpenTelemetry environment variables are used.",
                                    "type": "string"
                                },
                                "headers": {
                                    "description": "OTLP gRPC metadata headers to send with each trace export request.",
                                    "type": "object"
                                },
                                "insecure": {
                                    "description": "Disable transport security for the OTLP gRPC trace exporter.",
                                    "type": "boolean"
                                },
                                "sampleRatio": {
                                    "description": "Trace sampling ratio for admission webhook requests. Must be between 0 and 1.",
                                    "type": "number"
                                },
                                "timeout": {
                                    "description": "Timeout for exporting a batch of spans. Empty uses OpenTelemetry's default.",
                                    "type": "string"
                                },
                                "tls": {
                                    "type": "object",
                                    "properties": {
                                        "insecureSkipVerify": {
                                            "description": "Skip OTLP gRPC trace exporter TLS certificate verification. Not recommended for production.",
                                            "type": "boolean"
                                        },
                                        "serverName": {
                                            "description": "TLS server name override for the OTLP gRPC trace exporter.",
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        },
                        "userNames": {
                            "description": "DEPRECATED: use users properties. Names of the users considered as Capsule users.",
                            "type": "array"
                        },
                        "users": {
                            "description": "Define entities which are considered part of the Capsule construct. Users not mentioned here will be ignored by Capsule",
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "kind": {
                                        "type": "string"
                                    },
                                    "name": {
                                        "type": "string"
                                    }
                                }
                            }
                        },
                        "workers": {
                            "description": "Workers (MaxConcurrentReconciles) is the maximum number of concurrent Reconciles which can be run (ALPHA).",
                            "type": "integer"
                        }
                    }
                },
                "rbac": {
                    "type": "object",
                    "properties": {
                        "bindableClusterRoles": {
                            "description": "ClusterRoles the Capsule controller is allowed to bind (verb `bind`) when strict RBAC is enabled, in addition to the roles Capsule manages (manager.options.rbac provisioner, deleter, administrationClusterRoles and promotionClusterRoles), which are always bindable. Add any custom tenant-owner ClusterRoles here.",
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "clusterRole": {
                            "type": "object",
                            "properties": {
                                "extraResources": {
                                    "description": "Extra cluster-scoped RBAC PolicyRules to add to a ClusterRole created by this chart and bound to the Capsule ServiceAccount.",
                                    "type": "array"
                                }
                            }
                        },
                        "create": {
                            "description": "Specifies whether RBAC resources should be created.",
                            "type": "boolean"
                        },
                        "existingClusterRoles": {
                            "description": "Specifies further cluster roles to be added to the Capsule manager service account.",
                            "type": "array"
                        },
                        "existingRoles": {
                            "description": "Specifies further cluster roles to be added to the Capsule manager service account.",
                            "type": "array"
                        },
                        "minimal": {
                            "description": "DEPRECATED: use strict instead. Former name of the strict option; takes effect when either flag is true.",
                            "type": "boolean"
                        },
                        "role": {
                            "type": "object",
                            "properties": {
                                "extraResources": {
                                    "description": "Extra namespaced RBAC PolicyRules to add to a Role created by this chart and bound to the Capsule ServiceAccount.",
                                    "type": "array"
                                }
                            }
                        },
                        "strict": {
                            "description": "Strongly restrict the RBAC assigned to Capsule Controller. The default owner ClusterRoles (admin, provisioner and deleter) can be bound to tenant owners out of the box; add custom owner ClusterRoles via bindableClusterRoles. Permissions beyond binding (e.g. TenantResource replication) must be aggregated by yourself via ClusterRoles labeled projectcapsule.dev/aggregate-to-controller: \"true\".",
                            "type": "boolean"
                        }
                    }
                },
                "readinessProbe": {
                    "description": "Configure the readiness probe using Deployment probe spec",
                    "type": "object",
                    "properties": {
                        "httpGet": {
                            "type": "object",
                            "properties": {
                                "path": {
                                    "type": "string"
                                },
                                "port": {
                                    "type": "integer"
                                }
                            }
                        }
                    },
                    "additionalProperties": true
                },
                "resources": {
                    "description": "Set the resource requests/limits for the Capsule manager container",
                    "type": "object"
                },
                "securityContext": {
                    "description": "Set the securityContext for the Capsule container",
                    "type": "object"
                },
                "volumeMounts": {
                    "description": "Set the additional volumeMounts needed for the Capsule manager container",
                    "type": "array"
                },
                "volumes": {
                    "description": "Set the additional volumes needed for the Capsule manager container",
                    "type": "array"
                },
                "webhookPort": {
                    "description": "Set an alternative to the default container port.  Useful for use in some kubernetes clusters (such as GKE Private) with aggregator routing turned on, because pod ports have to be opened manually on the firewall side",
                    "type": "integer"
                }
            }
        },
        "monitoring": {
            "type": "object",
            "properties": {
                "dashboards": {
                    "type": "object",
                    "properties": {
                        "annotations": {
                            "description": "Annotations for dashboard configmaps",
                            "type": "object"
                        },
                        "enabled": {
                            "description": "Enable Dashboards to be deployed",
                            "type": "boolean"
                        },
                        "labels": {
                            "description": "Labels for dashboard configmaps",
                            "type": "object",
                            "properties": {
                                "grafana_dashboard": {
                                    "type": "string"
                                }
                            }
                        },
                        "namespace": {
                            "description": "Custom namespace for dashboard configmaps",
                            "type": "string"
                        },
                        "operator": {
                            "type": "object",
                            "properties": {
                                "allowCrossNamespaceImport": {
                                    "description": "Allow the Operator to match this resource with Grafanas outside the current namespace",
                                    "type": "boolean"
                                },
                                "enabled": {
                                    "description": "Enable Operator Resources (GrafanaDashboard)",
                                    "type": "boolean"
                                },
                                "folder": {
                                    "description": "folder assignment for dashboard",
                                    "type": "string"
                                },
                                "instanceSelector": {
                                    "description": "Selects Grafana instances for import",
                                    "type": "object"
                                },
                                "resyncPeriod": {
                                    "description": "How often the resource is synced, defaults to 10m0s if not set",
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "diagnostics": {
                    "type": "object",
                    "properties": {
                        "annotations": {
                            "description": "Annotations for dashboard configmaps",
                            "type": "object"
                        },
                        "enabled": {
                            "description": "Enable Diagnostic Dashboards to be deployed",
                            "type": "boolean"
                        },
                        "labels": {
                            "description": "Labels for dashboard configmaps",
                            "type": "object",
                            "properties": {
                                "grafana_dashboard": {
                                    "type": "string"
                                }
                            }
                        },
                        "operator": {
                            "type": "object",
                            "properties": {
                                "allowCrossNamespaceImport": {
                                    "description": "Allow the Operator to match this resource with Grafanas outside the current namespace",
                                    "type": "boolean"
                                },
                                "enabled": {
                                    "description": "Enable Operator Resources (GrafanaDashboard)",
                                    "type": "boolean"
                                },
                                "folder": {
                                    "description": "folder assignment for dashboard",
                                    "type": "string"
                                },
                                "instanceSelector": {
                                    "description": "Selects Grafana instances for import",
                                    "type": "object"
                                },
                                "resyncPeriod": {
                                    "description": "How often the resource is synced, defaults to 10m0s if not set",
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "prometheusRules": {
                    "type": "object",
                    "properties": {
                        "annotations": {
                            "description": "Assign additional Annotations",
                            "type": "object"
                        },
                        "enabled": {
                            "description": "Enable PrometheusRules",
                            "type": "boolean"
                        },
                        "labels": {
                            "description": "Assign additional labels according to Prometheus selector matching labels",
                            "type": "object"
                        },
                        "namespace": {
                            "description": "Install the PrometheusRules into a different Namespace, as the monitoring stack one (default: the release one)",
                            "type": "string"
                        },
                        "ruleAnnotations": {
                            "description": "Annotations add to all Rules",
                            "type": "object"
                        },
                        "ruleLabels": {
                            "description": "Labels add to all Rules",
                            "type": "object"
                        },
                        "rules": {
                            "description": "Prometheus Rules definitions. The block is directly forwarded into the PrometheusRule, so you can use whatever specification you want.",
                            "type": "array",
                            "items": {
                                "type": "object"
                            }
                        }
                    }
                },
                "serviceMonitor": {
                    "type": "object",
                    "properties": {
                        "annotations": {
                            "description": "Assign additional Annotations",
                            "type": "object"
                        },
                        "enabled": {
                            "description": "Enable ServiceMonitor",
                            "type": "boolean"
                        },
                        "endpoint": {
                            "type": "object",
                            "properties": {
                                "interval": {
                                    "description": "Set the scrape interval for the endpoint of the serviceMonitor",
                                    "type": "string"
                                },
                                "metricRelabelings": {
                                    "description": "Set metricRelabelings for the endpoint of the serviceMonitor",
                                    "type": "array"
                                },
                                "relabelings": {
                                    "description": "Set relabelings for the endpoint of the serviceMonitor",
                                    "type": "array"
                                },
                                "scrapeTimeout": {
                                    "description": "Set the scrape timeout for the endpoint of the serviceMonitor",
                                    "type": "string"
                                }
                            }
                        },
                        "labels": {
                            "description": "Assign additional labels according to Prometheus' serviceMonitorSelector matching labels",
                            "type": "object"
                        },
                        "matchLabels": {
                            "description": "Change matching labels",
                            "type": "object"
                        },
                        "namespace": {
                            "description": "Install the ServiceMonitor into a different Namespace, as the monitoring stack one (default: the release one)",
                            "type": "string"
                        },
                        "targetLabels": {
                            "description": "Set targetLabels for the serviceMonitor",
                            "type": "array"
                        }
                    }
                }
            }
        },
        "nodeSelector": {
            "description": "Set the node selector for the Capsule pod",
            "type": "object"
        },
        "podAnnotations": {
            "description": "Annotations to add to the capsule pod.",
            "type": "object"
        },
        "podLabels": {
            "description": "Labels to add to the capsule pod.",
            "type": "object"
        },
        "podSecurityContext": {
            "description": "Set the securityContext for the Capsule pod",
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "runAsGroup": {
                    "type": "integer"
                },
                "runAsNonRoot": {
                    "type": "boolean"
                },
                "runAsUser": {
                    "type": "integer"
                },
                "seccompProfile": {
                    "type": "object",
                    "properties": {
                        "type": {
                            "type": "string"
                        }
                    }
                }
            },
            "additionalProperties": true
        },
        "ports": {
            "description": "Set additional ports for the deployment",
            "type": "array"
        },
        "priorityClassName": {
            "description": "Set the priority class name of the Capsule pod",
            "type": "string"
        },
        "proxy": {
            "type": "object",
            "properties": {
                "enabled": {
                    "description": "Enable Installation of Capsule Proxy",
                    "type": "boolean"
                }
            }
        },
        "rbac": {
            "type": "object",
            "properties": {
                "customquotas": {
                    "description": "Allow the creation of CustomQuotas",
                    "type": "object",
                    "properties": {
                        "create": {
                            "type": "boolean"
                        },
                        "labels": {
                            "type": "object"
                        }
                    }
                },
                "resourcepoolclaims": {
                    "description": "Allow the creation of ResourcePoolClaims",
                    "type": "object",
                    "properties": {
                        "create": {
                            "type": "boolean"
                        },
                        "labels": {
                            "type": "object"
                        }
                    }
                },
                "resources": {
                    "description": "Allow the creation of TenantResources",
                    "type": "object",
                    "properties": {
                        "create": {
                            "type": "boolean"
                        },
                        "labels": {
                            "type": "object"
                        }
                    }
                }
            }
        },
        "replicaCount": {
            "description": "Set the replica count for capsule pod",
            "type": "integer"
        },
        "securityContext": {
            "description": "Set the securityContext for the Capsule container",
            "type": "object",
            "properties": {
                "allowPrivilegeEscalation": {
                    "type": "boolean"
                },
                "capabilities": {
                    "type": "object",
                    "properties": {
                        "drop": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                },
                "enabled": {
                    "type": "boolean"
                },
                "readOnlyRootFilesystem": {
                    "type": "boolean"
                }
            },
            "additionalProperties": true
        },
        "serviceAccount": {
            "type": "object",
            "properties": {
                "annotations": {
                    "description": "Annotations to add to the service account.",
                    "type": "object"
                },
                "create": {
                    "description": "Specifies whether a service account should be created.",
                    "type": "boolean"
                },
                "imagePullSecrets": {
                    "type": "array"
                },
                "name": {
                    "description": "The name of the service account to use. If not set and `serviceAccount.create=true`, a name is generated using the fullname template",
                    "type": "string"
                }
            }
        },
        "tls": {
            "type": "object",
            "properties": {
                "create": {
                    "description": "When cert-manager is disabled, Capsule will generate the TLS certificate for webhook and CRDs conversion.",
                    "type": "boolean"
                },
                "enableController": {
                    "description": "Start the Capsule controller that injects the CA into mutating and validating webhooks, and CRD as well.",
                    "type": "boolean"
                },
                "name": {
                    "description": "Override name of the Capsule TLS Secret name when externally managed.",
                    "type": "string"
                }
            }
        },
        "tolerations": {
            "description": "Set list of tolerations for the Capsule pod",
            "type": "array"
        },
        "topologySpreadConstraints": {
            "description": "Set topology spread constraints for the Capsule pod",
            "type": "array"
        },
        "webhooks": {
            "type": "object",
            "properties": {
                "annotations": {
                    "description": "Additional Annotations for all webhooks",
                    "type": "object"
                },
                "exclusive": {
                    "description": "When `crds.exclusive` is `true` the webhooks will be installed",
                    "type": "boolean"
                },
                "hooks": {
                    "type": "object",
                    "properties": {
                        "calculations": {
                            "description": "Webhook for Custom Quota Calculations ([Read More](https://projectcapsule.dev/docs/resource-management/customquotas/#admission))",
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules) Include an explicit status subresource (for example, pods/status) when CustomQuota field selectors depend on status fields.",
                                    "type": "array"
                                }
                            }
                        },
                        "config": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "cordoning": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "expression": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    },
                                                    "values": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "customquotas": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "customresources": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "expression": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                }
                            }
                        },
                        "defaults": {
                            "type": "object",
                            "properties": {
                                "ingress": {
                                    "description": "Deprecated, use webhooks.hooks.ingresses instead",
                                    "type": "object"
                                },
                                "pods": {
                                    "description": "Deprecated, use webhooks.hooks.pods instead",
                                    "type": "object"
                                },
                                "pvc": {
                                    "description": "Deprecated, use webhooks.hooks.persistentvolumeclaims instead",
                                    "type": "object"
                                }
                            }
                        },
                        "devices": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "gateways": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "generic": {
                            "description": "Generic Rules API, including the rule-engine validation for Pods and Services",
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "expression": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "globalcustomquotas": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "globalresourcequotas": {
                            "description": "Webhook for admission-time GlobalResourceQuota calculations",
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "ingresses": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "managed": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    },
                                                    "values": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "metadata": {
                            "description": "Additional Metadata webhook",
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "expression": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "namespaceOwnerReference": {
                            "description": "Deprecated, use webhooks.hooks.namespaces instead",
                            "type": "object"
                        },
                        "namespaces": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "nodes": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                }
                            }
                        },
                        "owners": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "persistentvolumeclaims": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "pods": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        },
                        "replications": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    },
                                                    "values": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "rules": {
                                    "description": "[Rules](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-rules)",
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "apiGroups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "apiVersions": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "operations": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "resources": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "resourcepools": {
                            "type": "object",
                            "properties": {
                                "claims": {
                                    "type": "object",
                                    "properties": {
                                        "enabled": {
                                            "description": "Enable the Hook",
                                            "type": "boolean"
                                        },
                                        "failurePolicy": {
                                            "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                            "type": "string"
                                        },
                                        "matchConditions": {
                                            "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                            "type": "array"
                                        },
                                        "matchPolicy": {
                                            "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                            "type": "string"
                                        },
                                        "namespaceSelector": {
                                            "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                            "type": "object",
                                            "additionalProperties": true
                                        },
                                        "objectSelector": {
                                            "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                            "type": "object",
                                            "additionalProperties": true
                                        },
                                        "opts": {
                                            "description": "Capsule Hook Options",
                                            "type": "object"
                                        },
                                        "reinvocationPolicy": {
                                            "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                            "type": "string"
                                        }
                                    }
                                },
                                "pools": {
                                    "type": "object",
                                    "properties": {
                                        "enabled": {
                                            "description": "Enable the Hook",
                                            "type": "boolean"
                                        },
                                        "failurePolicy": {
                                            "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                            "type": "string"
                                        },
                                        "matchConditions": {
                                            "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                            "type": "array"
                                        },
                                        "matchPolicy": {
                                            "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                            "type": "string"
                                        },
                                        "namespaceSelector": {
                                            "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                            "type": "object"
                                        },
                                        "objectSelector": {
                                            "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                            "type": "object"
                                        },
                                        "opts": {
                                            "description": "Capsule Hook Options",
                                            "type": "object"
                                        },
                                        "reinvocationPolicy": {
                                            "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        },
                        "rulestatus": {
                            "description": "Webhook for Rule Status ([Read More](https://projectcapsule.dev/docs/resource-management/customquotas/#admission))",
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                }
                            }
                        },
                        "serviceaccounts": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                }
                            }
                        },
                        "services": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "properties": {
                                        "matchExpressions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "key": {
                                                        "type": "string"
                                                    },
                                                    "operator": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                }
                            }
                        },
                        "tenantResourceObjects": {
                            "description": "Deprecated, use webhooks.hooks.replications instead",
                            "type": "object"
                        },
                        "tenants": {
                            "type": "object",
                            "properties": {
                                "enabled": {
                                    "description": "Enable the Hook",
                                    "type": "boolean"
                                },
                                "failurePolicy": {
                                    "description": "[FailurePolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy)",
                                    "type": "string"
                                },
                                "matchConditions": {
                                    "description": "[MatchConditions](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "array"
                                },
                                "matchPolicy": {
                                    "description": "[MatchPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy)",
                                    "type": "string"
                                },
                                "namespaceSelector": {
                                    "description": "[NamespaceSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "objectSelector": {
                                    "description": "[ObjectSelector](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector)",
                                    "type": "object",
                                    "additionalProperties": true
                                },
                                "opts": {
                                    "description": "Capsule Hook Options",
                                    "type": "object"
                                },
                                "reinvocationPolicy": {
                                    "description": "[ReinvocationPolicy](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#reinvocation-policy)",
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "labels": {
                    "description": "Additional Labels for all webhooks",
                    "type": "object"
                },
                "matchConditions": {
                    "description": "MatchConditions for all webhooks",
                    "type": "array"
                },
                "mutatingWebhooksTimeoutSeconds": {
                    "description": "Timeout in seconds for mutating webhooks",
                    "type": "integer"
                },
                "service": {
                    "type": "object",
                    "properties": {
                        "caBundle": {
                            "description": "CABundle for the webhook service",
                            "type": "string"
                        },
                        "name": {
                            "description": "Custom service name for the webhook service",
                            "type": "string"
                        },
                        "namespace": {
                            "description": "Custom service namespace for the webhook service",
                            "type": "string"
                        },
                        "port": {
                            "description": "(integer, null) Custom service port for the webhook service",
                            "type": [
                                "integer",
                                "null"
                            ]
                        },
                        "url": {
                            "description": "The URL where the capsule webhook services are running (Overwrites cluster scoped service definition)",
                            "type": "string"
                        }
                    }
                },
                "validatingWebhooksTimeoutSeconds": {
                    "description": "Timeout in seconds for validating webhooks",
                    "type": "integer"
                }
            }
        }
    }
}
