apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: authentications.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: Authentication
    listKind: AuthenticationList
    plural: authentications
    singular: authentication
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: Authentication is the Schema for the authentications 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/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/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: AuthenticationSpec defines the desired state of Authentication
            properties:
              managerDomain:
                description: ManagerDomain is the domain name of the Manager
                type: string
              method:
                description: 'Method configures the method of authentication used
                  by Kibana. Default: Basic'
                enum:
                - Basic
                - OIDC
                type: string
              oidc:
                description: OIDC contains the configuration needed to setup OIDC
                  authentication. If the method is OIDC then this is required, if
                  the method is not OIDC then this must not be specified.
                properties:
                  groupsClaim:
                    description: GroupsClaim specifies which claim to use from the
                      OIDC provider as the group.
                    type: string
                  groupsPrefix:
                    description: If specified, GroupsPrefix is prepended to each group
                      obtained from the claims specified by GroupsClaim. Note that
                      Kibana does not support a groups prefix, so this prefix is removed
                      from Kubernetes Groups when translating log access ClusterRoleBindings
                      into Elastic.
                    type: string
                  issuerURL:
                    description: IssuerURL is the URL to the OIDC provider.
                    type: string
                  requestedScopes:
                    description: RequestedScopes is a list of scopes to request from
                      the OIDC provider. If not provided, all the available scopes
                      are requested.
                    items:
                      type: string
                    type: array
                  usernameClaim:
                    description: UsernameClaim specifies which claim to use from the
                      OIDC provider as the username.
                    type: string
                  usernamePrefix:
                    description: If specified, UsernamePrefix is prepended to each
                      user obtained from the claims specified by UsernameClaim. Note
                      that Kibana does not support a user prefix, so this prefix is
                      removed from Kubernetes User when translating log access ClusterRoleBindings
                      into Elastic.
                    type: string
                required:
                - issuerURL
                - usernameClaim
                type: object
            type: object
          status:
            description: AuthenticationStatus defines the observed state of Authentication
            properties:
              state:
                description: State provides user-readable status.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
