apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: keycloakrealms.keycloak.org
  annotations:
    helm.sh/hook: crd-install
spec:
  group: keycloak.org
  names:
    kind: KeycloakRealm
    listKind: KeycloakRealmList
    plural: keycloakrealms
    singular: keycloakrealm
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: KeycloakRealm is the Schema for the keycloakrealms 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: KeycloakRealmSpec defines the desired state of KeycloakRealm.
              properties:
                instanceSelector:
                  description: Selector for looking up Keycloak Custom Resources.
                  properties:
                    matchExpressions:
                      description: matchExpressions is a list of label selector requirements.
                        The requirements are ANDed.
                      items:
                        description: A label selector requirement is a selector that
                          contains values, a key, and an operator that relates the key
                          and values.
                        properties:
                          key:
                            description: key is the label key that the selector applies
                              to.
                            type: string
                          operator:
                            description: operator represents a key's relationship to
                              a set of values. Valid operators are In, NotIn, Exists
                              and DoesNotExist.
                            type: string
                          values:
                            description: values is an array of string values. If the
                              operator is In or NotIn, the values array must be non-empty.
                              If the operator is Exists or DoesNotExist, the values
                              array must be empty. This array is replaced during a strategic
                              merge patch.
                            items:
                              type: string
                            type: array
                        required:
                          - key
                          - operator
                        type: object
                      type: array
                    matchLabels:
                      additionalProperties:
                        type: string
                      description: matchLabels is a map of {key,value} pairs. A single
                        {key,value} in the matchLabels map is equivalent to an element
                        of matchExpressions, whose key field is "key", the operator
                        is "In", and the values array contains only "value". The requirements
                        are ANDed.
                      type: object
                  type: object
                realm:
                  description: Keycloak Realm REST object.
                  properties:
                    accessTokenLifespan:
                      description: Access Token Lifespan
                      format: int32
                      type: integer
                    accessTokenLifespanForImplicitFlow:
                      description: Access Token Lifespan For Implicit Flow
                      format: int32
                      type: integer
                    accountTheme:
                      description: Account Theme
                      type: string
                    adminEventsDetailsEnabled:
                      description: 'Enable admin events details TODO: change to values
                      and use kubebuilder default annotation once supported'
                      type: boolean
                    adminEventsEnabled:
                      description: 'Enable events recording TODO: change to values and
                      use kubebuilder default annotation once supported'
                      type: boolean
                    adminTheme:
                      description: Admin Console Theme
                      type: string
                    authenticationFlows:
                      description: Authentication flows
                      items:
                        properties:
                          alias:
                            description: Alias
                            type: string
                          authenticationExecutions:
                            description: Authentication executions
                            items:
                              properties:
                                authenticator:
                                  description: Authenticator
                                  type: string
                                authenticatorConfig:
                                  description: Authenticator Config
                                  type: string
                                authenticatorFlow:
                                  description: Authenticator flow
                                  type: boolean
                                flowAlias:
                                  description: Flow Alias
                                  type: string
                                priority:
                                  description: Priority
                                  format: int32
                                  type: integer
                                requirement:
                                  description: Requirement [REQUIRED, OPTIONAL, ALTERNATIVE,
                                    DISABLED]
                                  type: string
                                userSetupAllowed:
                                  description: User setup allowed
                                  type: boolean
                              type: object
                            type: array
                          builtIn:
                            description: Built in
                            type: boolean
                          description:
                            description: Description
                            type: string
                          id:
                            description: ID
                            type: string
                          providerId:
                            description: Provider ID
                            type: string
                          topLevel:
                            description: Top level
                            type: boolean
                        required:
                          - alias
                          - authenticationExecutions
                        type: object
                      type: array
                    authenticatorConfig:
                      description: Authenticator config
                      items:
                        properties:
                          alias:
                            description: Alias
                            type: string
                          config:
                            additionalProperties:
                              type: string
                            description: Config
                            type: object
                          id:
                            description: ID
                            type: string
                        required:
                          - alias
                        type: object
                      type: array
                    bruteForceProtected:
                      description: Brute Force Detection
                      type: boolean
                    clientScopeMappings:
                      additionalProperties:
                        items:
                          description: https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_scopemappingrepresentation
                          properties:
                            client:
                              description: Client
                              type: string
                            clientScope:
                              description: Client Scope
                              type: string
                            roles:
                              description: Roles
                              items:
                                type: string
                              type: array
                            self:
                              description: Self
                              type: string
                          type: object
                        type: array
                      description: Client Scope Mappings
                      type: object
                    clientScopes:
                      description: Client scopes
                      items:
                        properties:
                          attributes:
                            additionalProperties:
                              type: string
                            type: object
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          protocol:
                            type: string
                          protocolMappers:
                            description: Protocol Mappers.
                            items:
                              properties:
                                config:
                                  additionalProperties:
                                    type: string
                                  description: Config options.
                                  type: object
                                consentRequired:
                                  description: True if Consent Screen is required.
                                  type: boolean
                                consentText:
                                  description: Text to use for displaying Consent Screen.
                                  type: string
                                id:
                                  description: Protocol Mapper ID.
                                  type: string
                                name:
                                  description: Protocol Mapper Name.
                                  type: string
                                protocol:
                                  description: Protocol to use.
                                  type: string
                                protocolMapper:
                                  description: Protocol Mapper to use
                                  type: string
                              type: object
                            type: array
                        type: object
                      type: array
                    clients:
                      description: A set of Keycloak Clients.
                      items:
                        properties:
                          access:
                            additionalProperties:
                              type: boolean
                            description: Access options.
                            type: object
                          adminUrl:
                            description: Application Admin URL.
                            type: string
                          attributes:
                            additionalProperties:
                              type: string
                            description: Client Attributes.
                            type: object
                          authorizationServicesEnabled:
                            description: True if fine-grained authorization support
                              is enabled for this client.
                            type: boolean
                          authorizationSettings:
                            description: Authorization settings for this resource server.
                            properties:
                              allowRemoteResourceManagement:
                                description: True if resources should be managed remotely
                                  by the resource server.
                                type: boolean
                              clientId:
                                description: Client ID.
                                type: string
                              decisionStrategy:
                                description: The decision strategy dictates how permissions
                                  are evaluated and how a final decision is obtained.
                                  'Affirmative' means that at least one permission must
                                  evaluate to a positive decision in order to grant
                                  access to a resource and its scopes. 'Unanimous' means
                                  that all permissions must evaluate to a positive decision
                                  in order for the final decision to be also positive.
                                type: string
                              id:
                                description: ID.
                                type: string
                              name:
                                description: Name.
                                type: string
                              policies:
                                description: Policies.
                                items:
                                  description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_policyrepresentation
                                  properties:
                                    config:
                                      additionalProperties:
                                        type: string
                                      description: Config.
                                      type: object
                                    decisionStrategy:
                                      description: The decision strategy dictates how
                                        the policies associated with a given permission
                                        are evaluated and how a final decision is obtained.
                                        'Affirmative' means that at least one policy
                                        must evaluate to a positive decision in order
                                        for the final decision to be also positive.
                                        'Unanimous' means that all policies must evaluate
                                        to a positive decision in order for the final
                                        decision to be also positive. 'Consensus' means
                                        that the number of positive decisions must be
                                        greater than the number of negative decisions.
                                        If the number of positive and negative is the
                                        same, the final decision will be negative.
                                      type: string
                                    description:
                                      description: A description for this policy.
                                      type: string
                                    id:
                                      description: ID.
                                      type: string
                                    logic:
                                      description: The logic dictates how the policy
                                        decision should be made. If 'Positive', the
                                        resulting effect (permit or deny) obtained during
                                        the evaluation of this policy will be used to
                                        perform a decision. If 'Negative', the resulting
                                        effect will be negated, in other words, a permit
                                        becomes a deny and vice-versa.
                                      type: string
                                    name:
                                      description: The name of this policy.
                                      type: string
                                    owner:
                                      description: Owner.
                                      type: string
                                    policies:
                                      description: Policies.
                                      items:
                                        type: string
                                      type: array
                                    resources:
                                      description: Resources.
                                      items:
                                        type: string
                                      type: array
                                    resourcesData:
                                      description: Resources Data.
                                      items:
                                        description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_resourcerepresentation
                                        properties:
                                          _id:
                                            description: ID.
                                            type: string
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: The attributes associated with
                                              the resource.
                                            type: object
                                          displayName:
                                            description: A unique name for this resource.
                                              The name can be used to uniquely identify
                                              a resource, useful when querying for a
                                              specific resource.
                                            type: string
                                          icon_uri:
                                            description: An URI pointing to an icon.
                                            type: string
                                          name:
                                            description: A unique name for this resource.
                                              The name can be used to uniquely identify
                                              a resource, useful when querying for a
                                              specific resource.
                                            type: string
                                          ownerManagedAccess:
                                            description: True if the access to this
                                              resource can be managed by the resource
                                              owner.
                                            type: boolean
                                          scopes:
                                            description: The scopes associated with
                                              this resource.
                                            items:
                                              x-kubernetes-preserve-unknown-fields: true
                                            type: array
                                          type:
                                            description: The type of this resource.
                                              It can be used to group different resource
                                              instances with the same type.
                                            type: string
                                          uris:
                                            description: Set of URIs which are protected
                                              by resource.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                    scopes:
                                      description: Scopes.
                                      items:
                                        type: string
                                      type: array
                                    scopesData:
                                      description: Scopes Data.
                                      items:
                                        x-kubernetes-preserve-unknown-fields: true
                                      type: array
                                    type:
                                      description: Type.
                                      type: string
                                  type: object
                                type: array
                              policyEnforcementMode:
                                description: The policy enforcement mode dictates how
                                  policies are enforced when evaluating authorization
                                  requests. 'Enforcing' means requests are denied by
                                  default even when there is no policy associated with
                                  a given resource. 'Permissive' means requests are
                                  allowed even when there is no policy associated with
                                  a given resource. 'Disabled' completely disables the
                                  evaluation of policies and allows access to any resource.
                                type: string
                              resources:
                                description: Resources.
                                items:
                                  description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_resourcerepresentation
                                  properties:
                                    _id:
                                      description: ID.
                                      type: string
                                    attributes:
                                      additionalProperties:
                                        type: string
                                      description: The attributes associated with the
                                        resource.
                                      type: object
                                    displayName:
                                      description: A unique name for this resource.
                                        The name can be used to uniquely identify a
                                        resource, useful when querying for a specific
                                        resource.
                                      type: string
                                    icon_uri:
                                      description: An URI pointing to an icon.
                                      type: string
                                    name:
                                      description: A unique name for this resource.
                                        The name can be used to uniquely identify a
                                        resource, useful when querying for a specific
                                        resource.
                                      type: string
                                    ownerManagedAccess:
                                      description: True if the access to this resource
                                        can be managed by the resource owner.
                                      type: boolean
                                    scopes:
                                      description: The scopes associated with this resource.
                                      items:
                                        x-kubernetes-preserve-unknown-fields: true
                                      type: array
                                    type:
                                      description: The type of this resource. It can
                                        be used to group different resource instances
                                        with the same type.
                                      type: string
                                    uris:
                                      description: Set of URIs which are protected by
                                        resource.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                type: array
                              scopes:
                                description: Authorization Scopes.
                                items:
                                  description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_scoperepresentation
                                  properties:
                                    displayName:
                                      description: A unique name for this scope. The
                                        name can be used to uniquely identify a scope,
                                        useful when querying for a specific scope.
                                      type: string
                                    iconUri:
                                      description: An URI pointing to an icon.
                                      type: string
                                    id:
                                      description: ID.
                                      type: string
                                    name:
                                      description: A unique name for this scope. The
                                        name can be used to uniquely identify a scope,
                                        useful when querying for a specific scope.
                                      type: string
                                    policies:
                                      description: Policies.
                                      items:
                                        description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_policyrepresentation
                                        properties:
                                          config:
                                            additionalProperties:
                                              type: string
                                            description: Config.
                                            type: object
                                          decisionStrategy:
                                            description: The decision strategy dictates
                                              how the policies associated with a given
                                              permission are evaluated and how a final
                                              decision is obtained. 'Affirmative' means
                                              that at least one policy must evaluate
                                              to a positive decision in order for the
                                              final decision to be also positive. 'Unanimous'
                                              means that all policies must evaluate
                                              to a positive decision in order for the
                                              final decision to be also positive. 'Consensus'
                                              means that the number of positive decisions
                                              must be greater than the number of negative
                                              decisions. If the number of positive and
                                              negative is the same, the final decision
                                              will be negative.
                                            type: string
                                          description:
                                            description: A description for this policy.
                                            type: string
                                          id:
                                            description: ID.
                                            type: string
                                          logic:
                                            description: The logic dictates how the
                                              policy decision should be made. If 'Positive',
                                              the resulting effect (permit or deny)
                                              obtained during the evaluation of this
                                              policy will be used to perform a decision.
                                              If 'Negative', the resulting effect will
                                              be negated, in other words, a permit becomes
                                              a deny and vice-versa.
                                            type: string
                                          name:
                                            description: The name of this policy.
                                            type: string
                                          owner:
                                            description: Owner.
                                            type: string
                                          policies:
                                            description: Policies.
                                            items:
                                              type: string
                                            type: array
                                          resources:
                                            description: Resources.
                                            items:
                                              type: string
                                            type: array
                                          resourcesData:
                                            description: Resources Data.
                                            items:
                                              description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_resourcerepresentation
                                              properties:
                                                _id:
                                                  description: ID.
                                                  type: string
                                                attributes:
                                                  additionalProperties:
                                                    type: string
                                                  description: The attributes associated
                                                    with the resource.
                                                  type: object
                                                displayName:
                                                  description: A unique name for this
                                                    resource. The name can be used to
                                                    uniquely identify a resource, useful
                                                    when querying for a specific resource.
                                                  type: string
                                                icon_uri:
                                                  description: An URI pointing to an
                                                    icon.
                                                  type: string
                                                name:
                                                  description: A unique name for this
                                                    resource. The name can be used to
                                                    uniquely identify a resource, useful
                                                    when querying for a specific resource.
                                                  type: string
                                                ownerManagedAccess:
                                                  description: True if the access to
                                                    this resource can be managed by
                                                    the resource owner.
                                                  type: boolean
                                                scopes:
                                                  description: The scopes associated
                                                    with this resource.
                                                  items:
                                                    x-kubernetes-preserve-unknown-fields: true
                                                  type: array
                                                type:
                                                  description: The type of this resource.
                                                    It can be used to group different
                                                    resource instances with the same
                                                    type.
                                                  type: string
                                                uris:
                                                  description: Set of URIs which are
                                                    protected by resource.
                                                  items:
                                                    type: string
                                                  type: array
                                              type: object
                                            type: array
                                          scopes:
                                            description: Scopes.
                                            items:
                                              type: string
                                            type: array
                                          scopesData:
                                            description: Scopes Data.
                                            items:
                                              x-kubernetes-preserve-unknown-fields: true
                                            type: array
                                          type:
                                            description: Type.
                                            type: string
                                        type: object
                                      type: array
                                    resources:
                                      description: Resources.
                                      items:
                                        description: https://www.keycloak.org/docs-api/12.0/rest-api/index.html#_resourcerepresentation
                                        properties:
                                          _id:
                                            description: ID.
                                            type: string
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: The attributes associated with
                                              the resource.
                                            type: object
                                          displayName:
                                            description: A unique name for this resource.
                                              The name can be used to uniquely identify
                                              a resource, useful when querying for a
                                              specific resource.
                                            type: string
                                          icon_uri:
                                            description: An URI pointing to an icon.
                                            type: string
                                          name:
                                            description: A unique name for this resource.
                                              The name can be used to uniquely identify
                                              a resource, useful when querying for a
                                              specific resource.
                                            type: string
                                          ownerManagedAccess:
                                            description: True if the access to this
                                              resource can be managed by the resource
                                              owner.
                                            type: boolean
                                          scopes:
                                            description: The scopes associated with
                                              this resource.
                                            items:
                                              x-kubernetes-preserve-unknown-fields: true
                                            type: array
                                          type:
                                            description: The type of this resource.
                                              It can be used to group different resource
                                              instances with the same type.
                                            type: string
                                          uris:
                                            description: Set of URIs which are protected
                                              by resource.
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      type: array
                                  type: object
                                type: array
                            type: object
                          baseUrl:
                            description: Application base URL.
                            type: string
                          bearerOnly:
                            description: True if a client supports only Bearer Tokens.
                            type: boolean
                          clientAuthenticatorType:
                            description: What Client authentication type to use.
                            type: string
                          clientId:
                            description: Client ID.
                            type: string
                          consentRequired:
                            description: True if Consent Screen is required.
                            type: boolean
                          defaultClientScopes:
                            description: A list of default client scopes. Default client
                              scopes are always applied when issuing OpenID Connect
                              tokens or SAML assertions for this client.
                            items:
                              type: string
                            type: array
                          defaultRoles:
                            description: Default Client roles.
                            items:
                              type: string
                            type: array
                          description:
                            description: Client description.
                            type: string
                          directAccessGrantsEnabled:
                            description: True if Direct Grant is enabled.
                            type: boolean
                          enabled:
                            description: Client enabled flag.
                            type: boolean
                          frontchannelLogout:
                            description: True if this client supports Front Channel
                              logout.
                            type: boolean
                          fullScopeAllowed:
                            description: True if Full Scope is allowed.
                            type: boolean
                          id:
                            description: Client ID. If not specified, automatically
                              generated.
                            type: string
                          implicitFlowEnabled:
                            description: True if Implicit flow is enabled.
                            type: boolean
                          name:
                            description: Client name.
                            type: string
                          nodeReRegistrationTimeout:
                            description: Node registration timeout.
                            type: integer
                          notBefore:
                            description: Not Before setting.
                            type: integer
                          optionalClientScopes:
                            description: A list of optional client scopes. Optional
                              client scopes are applied when issuing tokens for this
                              client, but only when they are requested by the scope
                              parameter in the OpenID Connect authorization request.
                            items:
                              type: string
                            type: array
                          protocol:
                            description: Protocol used for this Client.
                            type: string
                          protocolMappers:
                            description: Protocol Mappers.
                            items:
                              properties:
                                config:
                                  additionalProperties:
                                    type: string
                                  description: Config options.
                                  type: object
                                consentRequired:
                                  description: True if Consent Screen is required.
                                  type: boolean
                                consentText:
                                  description: Text to use for displaying Consent Screen.
                                  type: string
                                id:
                                  description: Protocol Mapper ID.
                                  type: string
                                name:
                                  description: Protocol Mapper Name.
                                  type: string
                                protocol:
                                  description: Protocol to use.
                                  type: string
                                protocolMapper:
                                  description: Protocol Mapper to use
                                  type: string
                              type: object
                            type: array
                          publicClient:
                            description: True if this is a public Client.
                            type: boolean
                          redirectUris:
                            description: A list of valid Redirection URLs.
                            items:
                              type: string
                            type: array
                          rootUrl:
                            description: Application root URL.
                            type: string
                          secret:
                            description: Client Secret. The Operator will automatically
                              create a Secret based on this value.
                            type: string
                          serviceAccountsEnabled:
                            description: True if Service Accounts are enabled.
                            type: boolean
                          standardFlowEnabled:
                            description: True if Standard flow is enabled.
                            type: boolean
                          surrogateAuthRequired:
                            description: Surrogate Authentication Required option.
                            type: boolean
                          useTemplateConfig:
                            description: True to use a Template Config.
                            type: boolean
                          useTemplateMappers:
                            description: True to use Template Mappers.
                            type: boolean
                          useTemplateScope:
                            description: True to use Template Scope.
                            type: boolean
                          webOrigins:
                            description: A list of valid Web Origins.
                            items:
                              type: string
                            type: array
                        required:
                          - clientId
                        type: object
                      type: array
                    defaultLocale:
                      description: Default Locale
                      type: string
                    displayName:
                      description: Realm display name.
                      type: string
                    displayNameHtml:
                      description: Realm HTML display name.
                      type: string
                    duplicateEmailsAllowed:
                      description: Duplicate emails
                      type: boolean
                    editUsernameAllowed:
                      description: Edit username
                      type: boolean
                    emailTheme:
                      description: Email Theme
                      type: string
                    enabled:
                      description: Realm enabled flag.
                      type: boolean
                    enabledEventTypes:
                      description: Enabled event types
                      items:
                        type: string
                      type: array
                    eventsEnabled:
                      description: 'Enable events recording TODO: change to values and
                      use kubebuilder default annotation once supported'
                      type: boolean
                    eventsListeners:
                      description: A set of Event Listeners.
                      items:
                        type: string
                      type: array
                    failureFactor:
                      description: Max Login Failures
                      format: int32
                      type: integer
                    id:
                      type: string
                    identityProviders:
                      description: A set of Identity Providers.
                      items:
                        properties:
                          addReadTokenRoleOnCreate:
                            description: Adds Read Token role when creating this Identity
                              Provider.
                            type: boolean
                          alias:
                            description: Identity Provider Alias.
                            type: string
                          config:
                            additionalProperties:
                              type: string
                            description: Identity Provider config.
                            type: object
                          displayName:
                            description: Identity Provider Display Name.
                            type: string
                          enabled:
                            description: Identity Provider enabled flag.
                            type: boolean
                          firstBrokerLoginFlowAlias:
                            description: Identity Provider First Broker Login Flow Alias.
                            type: string
                          internalId:
                            description: Identity Provider Internal ID.
                            type: string
                          linkOnly:
                            description: Identity Provider Link Only setting.
                            type: boolean
                          postBrokerLoginFlowAlias:
                            description: Identity Provider Post Broker Login Flow Alias.
                            type: string
                          providerId:
                            description: Identity Provider ID.
                            type: string
                          storeToken:
                            description: Identity Provider Store to Token.
                            type: boolean
                          trustEmail:
                            description: Identity Provider Trust Email.
                            type: boolean
                        type: object
                      type: array
                    internationalizationEnabled:
                      description: Internationalization Enabled
                      type: boolean
                    loginTheme:
                      description: Login Theme
                      type: string
                    loginWithEmailAllowed:
                      description: Login with email
                      type: boolean
                    maxDeltaTimeSeconds:
                      description: Failure Reset Time
                      format: int32
                      type: integer
                    maxFailureWaitSeconds:
                      description: Max Wait
                      format: int32
                      type: integer
                    minimumQuickLoginWaitSeconds:
                      description: Minimum Quick Login Wait
                      format: int32
                      type: integer
                    passwordPolicy:
                      description: Realm Password Policy
                      type: string
                    permanentLockout:
                      description: Permanent Lockout
                      type: boolean
                    quickLoginCheckMilliSeconds:
                      description: Quick Login Check Milli Seconds
                      format: int64
                      type: integer
                    realm:
                      description: Realm name.
                      type: string
                    registrationAllowed:
                      description: User registration
                      type: boolean
                    registrationEmailAsUsername:
                      description: Email as username
                      type: boolean
                    rememberMe:
                      description: Remember me
                      type: boolean
                    resetPasswordAllowed:
                      description: Forgot password
                      type: boolean
                    roles:
                      description: Roles
                      properties:
                        client:
                          additionalProperties:
                            items:
                              description: https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_rolerepresentation
                              properties:
                                attributes:
                                  additionalProperties:
                                    items:
                                      type: string
                                    type: array
                                  description: Role Attributes
                                  type: object
                                clientRole:
                                  description: Client Role
                                  type: boolean
                                composite:
                                  description: Composite
                                  type: boolean
                                composites:
                                  description: Composites
                                  properties:
                                    client:
                                      additionalProperties:
                                        items:
                                          type: string
                                        type: array
                                      description: Map client => []role
                                      type: object
                                    realm:
                                      description: Realm roles
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                containerId:
                                  description: Container Id
                                  type: string
                                description:
                                  description: Description
                                  type: string
                                id:
                                  description: Id
                                  type: string
                                name:
                                  description: Name
                                  type: string
                              required:
                                - name
                              type: object
                            type: array
                          description: Client Roles
                          type: object
                        realm:
                          description: Realm Roles
                          items:
                            description: https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_rolerepresentation
                            properties:
                              attributes:
                                additionalProperties:
                                  items:
                                    type: string
                                  type: array
                                description: Role Attributes
                                type: object
                              clientRole:
                                description: Client Role
                                type: boolean
                              composite:
                                description: Composite
                                type: boolean
                              composites:
                                description: Composites
                                properties:
                                  client:
                                    additionalProperties:
                                      items:
                                        type: string
                                      type: array
                                    description: Map client => []role
                                    type: object
                                  realm:
                                    description: Realm roles
                                    items:
                                      type: string
                                    type: array
                                type: object
                              containerId:
                                description: Container Id
                                type: string
                              description:
                                description: Description
                                type: string
                              id:
                                description: Id
                                type: string
                              name:
                                description: Name
                                type: string
                            required:
                              - name
                            type: object
                          type: array
                      type: object
                    scopeMappings:
                      description: Scope Mappings
                      items:
                        description: https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_scopemappingrepresentation
                        properties:
                          client:
                            description: Client
                            type: string
                          clientScope:
                            description: Client Scope
                            type: string
                          roles:
                            description: Roles
                            items:
                              type: string
                            type: array
                          self:
                            description: Self
                            type: string
                        type: object
                      type: array
                    smtpServer:
                      additionalProperties:
                        type: string
                      description: Email
                      type: object
                    sslRequired:
                      description: Require SSL
                      type: string
                    supportedLocales:
                      description: Supported Locales
                      items:
                        type: string
                      type: array
                    userFederationMappers:
                      description: User federation mappers are extension points triggered
                        by the user federation at various points.
                      items:
                        description: https://www.keycloak.org/docs/11.0/server_admin/#_ldap_mappers
                          https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_userfederationmapperrepresentation
                        properties:
                          config:
                            additionalProperties:
                              type: string
                            description: User federation mapper config.
                            type: object
                          federationMapperType:
                            type: string
                          federationProviderDisplayName:
                            description: The displayName for the user federation provider
                              this mapper applies to.
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                        type: object
                      type: array
                    userFederationProviders:
                      description: Point keycloak to an external user provider to validate
                        credentials or pull in identity information.
                      items:
                        description: https://www.keycloak.org/docs-api/10.0/rest-api/index.html#_userfederationproviderrepresentation
                        properties:
                          config:
                            additionalProperties:
                              type: string
                            description: User federation provider config.
                            type: object
                          displayName:
                            description: The display name of this provider instance.
                            type: string
                          fullSyncPeriod:
                            format: int32
                            type: integer
                          id:
                            description: The ID of this provider
                            type: string
                          priority:
                            description: The priority of this provider when looking
                              up users or adding a user.
                            format: int32
                            type: integer
                          providerName:
                            description: The name of the user provider, such as "ldap",
                              "kerberos" or a custom SPI.
                            type: string
                        type: object
                      type: array
                    userManagedAccessAllowed:
                      description: User Managed Access Allowed
                      type: boolean
                    users:
                      description: A set of Keycloak Users.
                      items:
                        properties:
                          attributes:
                            additionalProperties:
                              items:
                                type: string
                              type: array
                            description: A set of Attributes.
                            type: object
                          clientRoles:
                            additionalProperties:
                              items:
                                type: string
                              type: array
                            description: A set of Client Roles.
                            type: object
                          credentials:
                            description: A set of Credentials.
                            items:
                              properties:
                                temporary:
                                  description: True if this credential object is temporary.
                                  type: boolean
                                type:
                                  description: Credential Type.
                                  type: string
                                value:
                                  description: Credential Value.
                                  type: string
                              type: object
                            type: array
                          email:
                            description: Email.
                            type: string
                          emailVerified:
                            description: True if email has already been verified.
                            type: boolean
                          enabled:
                            description: User enabled flag.
                            type: boolean
                          federatedIdentities:
                            description: A set of Federated Identities.
                            items:
                              properties:
                                identityProvider:
                                  description: Federated Identity Provider.
                                  type: string
                                userId:
                                  description: Federated Identity User ID.
                                  type: string
                                userName:
                                  description: Federated Identity User Name.
                                  type: string
                              type: object
                            type: array
                          firstName:
                            description: First Name.
                            type: string
                          groups:
                            description: A set of Groups.
                            items:
                              type: string
                            type: array
                          id:
                            description: User ID.
                            type: string
                          lastName:
                            description: Last Name.
                            type: string
                          realmRoles:
                            description: A set of Realm Roles.
                            items:
                              type: string
                            type: array
                          requiredActions:
                            description: A set of Required Actions.
                            items:
                              type: string
                            type: array
                          username:
                            description: User Name.
                            type: string
                        type: object
                      type: array
                    verifyEmail:
                      description: Verify email
                      type: boolean
                    waitIncrementSeconds:
                      description: Wait Increment
                      format: int32
                      type: integer
                  required:
                    - realm
                  type: object
                realmOverrides:
                  description: A list of overrides to the default Realm behavior.
                  items:
                    properties:
                      forFlow:
                        description: Flow to be overridden.
                        type: string
                      identityProvider:
                        description: Identity Provider to be overridden.
                        type: string
                    required:
                      - identityProvider
                    type: object
                  type: array
                  x-kubernetes-list-type: atomic
                unmanaged:
                  description: When set to true, this KeycloakRealm will be marked as
                    unmanaged and not be managed by this operator. It can then be used
                    for targeting purposes.
                  type: boolean
              required:
                - realm
              type: object
            status:
              description: KeycloakRealmStatus defines the observed state of KeycloakRealm
              properties:
                loginURL:
                  description: TODO
                  type: string
                message:
                  description: Human-readable message indicating details about current
                    operator phase or error.
                  type: string
                phase:
                  description: Current phase of the operator.
                  type: string
                ready:
                  description: True if all resources are in a ready state and all work
                    is done.
                  type: boolean
                secondaryResources:
                  additionalProperties:
                    items:
                      type: string
                    type: array
                  description: 'A map of all the secondary resources types and names
                  created for this CR. e.g "Deployment": [ "DeploymentName1", "DeploymentName2"
                  ]'
                  type: object
              required:
                - loginURL
                - message
                - phase
                - ready
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}