{
  "description": "Keycloak is the Schema for the keycloaks API.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "KeycloakSpec defines the desired state of Keycloak.",
      "properties": {
        "adminType": {
          "description": "AdminType can be user or serviceAccount, if serviceAccount was specified, then client_credentials grant type should be used for getting admin realm token.",
          "enum": [
            "serviceAccount",
            "user"
          ],
          "type": "string"
        },
        "caCert": {
          "description": "CACert defines the root certificate authority\nthat api client use when verifying server certificates.",
          "properties": {
            "configMapKeyRef": {
              "description": "Selects a key of a ConfigMap.",
              "properties": {
                "key": {
                  "description": "The key to select.",
                  "type": "string"
                },
                "name": {
                  "default": "",
                  "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                  "type": "string"
                }
              },
              "required": [
                "key"
              ],
              "type": "object",
              "x-kubernetes-map-type": "atomic",
              "additionalProperties": false
            },
            "secretKeyRef": {
              "description": "Selects a key of a secret.",
              "properties": {
                "key": {
                  "description": "The key of the secret to select from.",
                  "type": "string"
                },
                "name": {
                  "default": "",
                  "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                  "type": "string"
                }
              },
              "required": [
                "key"
              ],
              "type": "object",
              "x-kubernetes-map-type": "atomic",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "insecureSkipVerify": {
          "description": "InsecureSkipVerify controls whether api client verifies the server's\ncertificate chain and host name. If InsecureSkipVerify is true, api client\naccepts any certificate presented by the server and any host name in that\ncertificate.",
          "type": "boolean"
        },
        "secret": {
          "description": "Secret is a secret name which contains admin credentials.",
          "type": "string"
        },
        "url": {
          "description": "URL of keycloak service.",
          "type": "string"
        }
      },
      "required": [
        "secret",
        "url"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "default": {
        "connected": false
      },
      "description": "KeycloakStatus defines the observed state of Keycloak.",
      "properties": {
        "connected": {
          "description": "Connected shows if keycloak service is up and running.",
          "type": "boolean"
        }
      },
      "required": [
        "connected"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
