---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.15.0
  name: clusterkeycloaks.v1.edp.epam.com
spec:
  group: v1.edp.epam.com
  names:
    kind: ClusterKeycloak
    listKind: ClusterKeycloakList
    plural: clusterkeycloaks
    singular: clusterkeycloak
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - description: Is connected to keycloak
      jsonPath: .status.connected
      name: Connected
      type: boolean
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ClusterKeycloak is the Schema for the clusterkeycloaks API.
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More 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.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: ClusterKeycloakSpec defines the desired state of ClusterKeycloak.
            properties:
              adminType:
                default: user
                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
                  that api clients use when verifying server certificates.
                  Resources should be in the namespace defined in operator OPERATOR_NAMESPACE env.
                properties:
                  configMapKeyRef:
                    description: Selects a key of a ConfigMap.
                    properties:
                      key:
                        description: The key to select.
                        type: string
                      name:
                        description: |-
                          Name of the referent.
                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?
                        type: string
                    required:
                    - key
                    type: object
                    x-kubernetes-map-type: atomic
                  secretKeyRef:
                    description: Selects a key of a secret.
                    properties:
                      key:
                        description: The key of the secret to select from.
                        type: string
                      name:
                        description: |-
                          Name of the referent.
                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?
                        type: string
                    required:
                    - key
                    type: object
                    x-kubernetes-map-type: atomic
                type: object
              insecureSkipVerify:
                description: |-
                  InsecureSkipVerify controls whether api client verifies the server's
                  certificate chain and host name. If InsecureSkipVerify is true, api client
                  accepts any certificate presented by the server and any host name in that
                  certificate.
                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
          status:
            default:
              connected: false
            description: ClusterKeycloakStatus defines the observed state of ClusterKeycloak.
            properties:
              connected:
                description: Connected shows if keycloak service is up and running.
                type: boolean
            required:
            - connected
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
