{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "ingress": {
      "type": "object",
      "form": true,
      "title": "Ingress details",
      "properties": {
        "enabled": {
          "type": "boolean",
          "form": true,
          "title": "Use a custom hostname",
          "description": "Enable the ingress resource that allows you to access the NGINX installation."
        },
        "hostname": {
          "type": "string",
          "form": true,
          "title": "Hostname",
          "hidden": {
            "value": false,
            "path": "ingress/enabled"
          }
        }
      }
    },
    "service": {
      "type": "object",
      "form": true,
      "title": "Service Configuration",
      "properties": {
        "type": {
          "type": "string",
          "form": true,
          "title": "Service Type",
          "description": "Allowed values: \"ClusterIP\", \"NodePort\" and \"LoadBalancer\""
        }
      }
    },
    "replicaCount": {
      "type": "integer",
      "form": true,
      "title": "Number of replicas",
      "description": "Number of replicas to deploy"
    },
    "serverBlock": {
      "type": "string",
      "form": true,
      "title": "Custom server block",
      "description": "Custom server block to be added to NGINX configuration"
    },
    "streamServerBlock": {
      "type": "string",
      "form": true,
      "title": "Custom stream server block",
      "description": "Custom stream server block to be added to NGINX configuration"
    },
    "containerSecurityContext": {
      "type": "object",
      "form": true,
      "title": "NGINX containers' Security Context",
      "properties": {
        "enabled": {
          "type": "boolean",
          "form": true,
          "title": "Enable Security Context",
          "description": "Whether to enable NGINX containers' Security Context"
        },
        "runAsUser": {
          "type": "integer",
          "form": true,
          "title": "ID of the user",
          "description": "The UID of the user NGINX containers will run as"
        }
      }
    },
    "podSecurityContext": {
      "type": "object",
      "form": true,
      "title": "NGINX pods' Security Context",
      "properties": {
        "enabled": {
          "type": "boolean",
          "form": true,
          "title": "Enable Security Context",
          "description": "Whether to enable NGINX pods' Security Context"
        },
        "fsGroup": {
          "type": "integer",
          "form": true,
          "title": "ID of the group",
          "description": "The GID of the group NGINX pods will run as"
        }
      }
    },
    "metrics": {
      "type": "object",
      "form": true,
      "title": "Prometheus metrics details",
      "properties": {
        "enabled": {
          "type": "boolean",
          "title": "Create Prometheus metrics exporter",
          "description": "Create a side-car container to expose Prometheus metrics",
          "form": true
        },
        "serviceMonitor": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "title": "Create Prometheus Operator ServiceMonitor",
              "description": "Create a ServiceMonitor to track metrics using Prometheus Operator",
              "form": true,
              "hidden": {
                "value": false,
                "path": "metrics/enabled"
              }
            }
          }
        }
      }
    }
  }
}