apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
  name: clustercsidrivers.operator.openshift.io
spec:
  group: operator.openshift.io
  names:
    kind: ClusterCSIDriver
    plural: clustercsidrivers
    singular: clustercsidriver
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: ClusterCSIDriver object allows management and configuration of
            a CSI driver operator installed by default in OpenShift. Name of the object
            must be name of the CSI driver it operates. See CSIDriverName type for list
            of allowed values.
          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:
              properties:
                name:
                  enum:
                    - ebs.csi.aws.com
                    - disk.csi.azure.com
                    - pd.csi.storage.gke.io
                    - cinder.csi.openstack.org
                    - csi.vsphere.vmware.com
                    - manila.csi.openstack.org
                    - csi.ovirt.org
                    - csi.kubevirt.io
                    - vpc.block.csi.ibm.io
                  type: string
              type: object
            spec:
              description: spec holds user settable values for configuration
              properties:
                logLevel:
                  default: Normal
                  description: "logLevel is an intent based logging for an overall component.
                  \ It does not give fine grained control, but it is a simple way
                  to manage coarse grained logging choices that operators have to
                  interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
                  \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
                  enum:
                    - ""
                    - Normal
                    - Debug
                    - Trace
                    - TraceAll
                  type: string
                managementState:
                  description: managementState indicates whether and how the operator
                    should manage the component
                  pattern: ^(Managed|Unmanaged|Force|Removed)$
                  type: string
                observedConfig:
                  description: observedConfig holds a sparse config that controller
                    has observed from the cluster state.  It exists in spec because
                    it is an input to the level for the operator
                  nullable: true
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                operatorLogLevel:
                  default: Normal
                  description: "operatorLogLevel is an intent based logging for the
                  operator itself.  It does not give fine grained control, but it
                  is a simple way to manage coarse grained logging choices that operators
                  have to interpret for themselves. \n Valid values are: \"Normal\",
                  \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
                  enum:
                    - ""
                    - Normal
                    - Debug
                    - Trace
                    - TraceAll
                  type: string
                unsupportedConfigOverrides:
                  description: 'unsupportedConfigOverrides holds a sparse config that
                  will override any previously set options.  It only needs to be the
                  fields to override it will end up overlaying in the following order:
                  1. hardcoded defaults 2. observedConfig 3. unsupportedConfigOverrides'
                  nullable: true
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
              type: object
            status:
              description: status holds observed values from the cluster. They may not
                be overridden.
              properties:
                conditions:
                  description: conditions is a list of conditions and their status
                  items:
                    description: OperatorCondition is just the standard condition fields.
                    properties:
                      lastTransitionTime:
                        format: date-time
                        type: string
                      message:
                        type: string
                      reason:
                        type: string
                      status:
                        type: string
                      type:
                        type: string
                    type: object
                  type: array
                generations:
                  description: generations are used to determine when an item needs
                    to be reconciled or has changed in a way that needs a reaction.
                  items:
                    description: GenerationStatus keeps track of the generation for
                      a given resource so that decisions about forced updates can be
                      made.
                    properties:
                      group:
                        description: group is the group of the thing you're tracking
                        type: string
                      hash:
                        description: hash is an optional field set for resources without
                          generation that are content sensitive like secrets and configmaps
                        type: string
                      lastGeneration:
                        description: lastGeneration is the last generation of the workload
                          controller involved
                        format: int64
                        type: integer
                      name:
                        description: name is the name of the thing you're tracking
                        type: string
                      namespace:
                        description: namespace is where the thing you're tracking is
                        type: string
                      resource:
                        description: resource is the resource type of the thing you're
                          tracking
                        type: string
                    type: object
                  type: array
                observedGeneration:
                  description: observedGeneration is the last generation change you've
                    dealt with
                  format: int64
                  type: integer
                readyReplicas:
                  description: readyReplicas indicates how many replicas are ready and
                    at the desired state
                  format: int32
                  type: integer
                version:
                  description: version is the level this availability applies to
                  type: string
              type: object
          required:
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
