
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: clusters.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Cluster
    listKind: ClusterList
    plural: clusters
    singular: cluster
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.networkName
      name: NETWORK
      type: string
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .status.db.version
      name: VERSION
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Cluster is the Schema for the clusters 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: ClusterSpec defines the desired state of Cluster
            properties:
              cluster:
                description: Cluster specifies the cluster topology
                properties:
                  pd:
                    properties:
                      instanceType:
                        description: InstanceType is specified the profile of every
                          PD node, the InstanceType must be declared in the Provider
                          spec
                        type: string
                      replicas:
                        minimum: 1
                        type: integer
                      storageClassName:
                        type: string
                      storageSize:
                        anyOf:
                        - type: integer
                        - type: string
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      suspendAction:
                        description: SuspendAction defines the suspend actions for
                          the component and overrides the value in `ClusterTopology`
                        properties:
                          suspendCompute:
                            type: boolean
                        type: object
                    required:
                    - instanceType
                    - replicas
                    type: object
                  suspendAction:
                    description: SuspendAction defines the suspend actions for a cluster
                    properties:
                      suspendCompute:
                        type: boolean
                    type: object
                  tidb:
                    properties:
                      audit:
                        properties:
                          bucketUrl:
                            type: string
                          enable:
                            description: When enable this, means tidb need to be able
                              pushing audit log to the specific object storage. DO
                              NOT means the plugin is enable. User can run "admin
                              plugins enable audit" or "admin plugins disable audit".
                              The plugins is enable default when we start tidb and
                              load the plugin.
                            type: boolean
                          region:
                            type: string
                          roleArn:
                            type: string
                        type: object
                      instanceType:
                        description: InstanceType is specified the profile of every
                          TiDB node, the InstanceType must be declared in the Provider
                          spec
                        type: string
                      precheckAudit:
                        description: Set only if you want to check the permission
                          is granted to tidb cloud right.
                        properties:
                          bucketUrl:
                            type: string
                          enable:
                            description: When enable this, means tidb need to be able
                              pushing audit log to the specific object storage. DO
                              NOT means the plugin is enable. User can run "admin
                              plugins enable audit" or "admin plugins disable audit".
                              The plugins is enable default when we start tidb and
                              load the plugin.
                            type: boolean
                          region:
                            type: string
                          roleArn:
                            type: string
                        type: object
                      replicas:
                        minimum: 1
                        type: integer
                      security:
                        description: Set only if you want to overwrite the default
                          TiDB security configurations.
                        properties:
                          sslCASecret:
                            description: SSLCASecret references a secret containing
                              TiDB server's CA cert.
                            properties:
                              name:
                                description: Name is unique within a namespace to
                                  reference a secret resource.
                                type: string
                              namespace:
                                description: Namespace defines the space within which
                                  the secret name must be unique.
                                type: string
                            type: object
                        type: object
                      suspendAction:
                        description: SuspendAction defines the suspend actions for
                          the component and overrides the value in `ClusterTopology`
                        properties:
                          suspendCompute:
                            type: boolean
                        type: object
                    required:
                    - instanceType
                    - replicas
                    type: object
                  tiflash:
                    properties:
                      instanceType:
                        description: InstanceType is specified the profile of every
                          TiFlash node, the InstanceType must be declared in the Provider
                          spec
                        type: string
                      replicas:
                        minimum: 0
                        type: integer
                      storageClassName:
                        type: string
                      storageSize:
                        anyOf:
                        - type: integer
                        - type: string
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      suspendAction:
                        description: SuspendAction defines the suspend actions for
                          the component and overrides the value in `ClusterTopology`
                        properties:
                          suspendCompute:
                            type: boolean
                        type: object
                      useLocalStorage:
                        description: UseLocalStorage specifies whethre the local disk
                          should be used for storage
                        type: boolean
                    required:
                    - instanceType
                    - replicas
                    type: object
                  tikv:
                    properties:
                      instanceType:
                        description: InstanceType is specified the profile of every
                          TiKV node, the InstanceType must be declared in the Provider
                          spec
                        type: string
                      replicas:
                        minimum: 1
                        type: integer
                      storageClassName:
                        type: string
                      storageSize:
                        anyOf:
                        - type: integer
                        - type: string
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      suspendAction:
                        description: SuspendAction defines the suspend actions for
                          the component and overrides the value in `ClusterTopology`
                        properties:
                          suspendCompute:
                            type: boolean
                        type: object
                      useLocalStorage:
                        description: UseLocalStorage specifies whether the local disk
                          should be used for storage
                        type: boolean
                    required:
                    - instanceType
                    - replicas
                    type: object
                required:
                - pd
                - tidb
                - tiflash
                - tikv
                type: object
              configRevisionRef:
                description: ConfigRevisionRef specifies the ConfigRevision related
                  to current cluster.
                properties:
                  name:
                    type: string
                required:
                - name
                type: object
              forProvider:
                description: ForProvider encodes the provider specific spec
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              networkName:
                description: NetworkName references the Network where the Cluster
                  is hosted, the Network must exist in the same namespace as Cluster
                type: string
              sqlEndpoints:
                description: SqlEndpoints specifies the mysql endpoints of the cluster
                properties:
                  dns:
                    description: DNS defines dns settings about tidb cluster
                    properties:
                      identity:
                        description: 'Identity defines dns identity of tidb cluster
                          Normally there are these dns record will be genereated 1.
                          Public: tidb.$identity.$domain 2. Private: private-tidb.$identity.$domain
                          3. PrivateLink: privatelink-tidb.$identity.$domain Default
                          is a random(11) string This field is readonly and can''t
                          be changed if it is set See https://docs.google.com/document/d/15h84VUsgWSJoH21bVRN4qVXUHrt9Dh_4vGNYy-L5juY
                          for more help'
                        type: string
                    type: object
                  private:
                    description: Private specifies the intranet facing endpoint of
                      the cluster
                    properties:
                      enabled:
                        type: boolean
                      loadBalancerSourceRanges:
                        description: LoadBalancerSourceRanges the IP whitelists of
                          the service
                        items:
                          type: string
                        type: array
                      port:
                        description: Port that will be exposed by this service.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                    required:
                    - enabled
                    type: object
                  privateLinkService:
                    description: PrivateLinkService specifies the private intranet
                      facing enpoint of the cluster supported by AWS PrivateLink or
                      GCP Private Service Connect
                    nullable: true
                    properties:
                      aws:
                        description: PrivateLink service for AWS
                        properties:
                          acceptedEndpoints:
                            description: AcceptedEndpoints represents the allowed
                              VPC endpoint IDs. It has to full match with the connections
                              list in status.
                            items:
                              type: string
                            type: array
                        required:
                        - acceptedEndpoints
                        type: object
                    type: object
                  public:
                    description: Public specifies the internet facing endpoint of
                      the cluster
                    properties:
                      enabled:
                        type: boolean
                      loadBalancerSourceRanges:
                        description: LoadBalancerSourceRanges the IP whitelists of
                          the service
                        items:
                          type: string
                        type: array
                      port:
                        description: Port that will be exposed by this service.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                    required:
                    - enabled
                    type: object
                required:
                - public
                type: object
            required:
            - cluster
            - networkName
            - sqlEndpoints
            type: object
          status:
            description: ClusterStatus defines the observed state of Cluster
            properties:
              conditions:
                description: Current service state of cluster.
                items:
                  description: ClusterCondition contains details for the current condition
                    of this cluster.
                  properties:
                    lastProbeTime:
                      description: Last time we probed the condition.
                      format: date-time
                      type: string
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    message:
                      description: Human-readable message indicating details about
                        last transition.
                      type: string
                    reason:
                      description: Unique, one-word, CamelCase reason for the condition's
                        last transition.
                      type: string
                    status:
                      description: Status is the status of the condition. Can be True,
                        False.
                      type: string
                    type:
                      description: Type is the type of the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              db:
                description: DB represents the status of the TiDB cluster
                properties:
                  pd:
                    description: PD is the current PD status of db cluster
                    properties:
                      conditions:
                        items:
                          description: "Condition contains details for one aspect
                            of the current state of this API Resource. --- This struct
                            is intended for direct use as an array at the field path
                            .status.conditions.  For example, type FooStatus struct{
                            \    // Represents the observations of a foo's current
                            state.     // Known .status.conditions.type are: \"Available\",
                            \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                            \    // +patchStrategy=merge     // +listType=map     //
                            +listMapKey=type     Conditions []metav1.Condition `json:\"conditions,omitempty\"
                            patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                            \n     // other fields }"
                          properties:
                            lastTransitionTime:
                              description: lastTransitionTime is the last time the
                                condition transitioned from one status to another.
                                This should be when the underlying condition changed.  If
                                that is not known, then using the time when the API
                                field changed is acceptable.
                              format: date-time
                              type: string
                            message:
                              description: message is a human readable message indicating
                                details about the transition. This may be an empty
                                string.
                              maxLength: 32768
                              type: string
                            observedGeneration:
                              description: observedGeneration represents the .metadata.generation
                                that the condition was set based upon. For instance,
                                if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration
                                is 9, the condition is out of date with respect to
                                the current state of the instance.
                              format: int64
                              minimum: 0
                              type: integer
                            reason:
                              description: reason contains a programmatic identifier
                                indicating the reason for the condition's last transition.
                                Producers of specific condition types may define expected
                                values and meanings for this field, and whether the
                                values are considered a guaranteed API. The value
                                should be a CamelCase string. This field may not be
                                empty.
                              maxLength: 1024
                              minLength: 1
                              pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                              type: string
                            status:
                              description: status of the condition, one of True, False,
                                Unknown.
                              enum:
                              - "True"
                              - "False"
                              - Unknown
                              type: string
                            type:
                              description: type of condition in CamelCase or in foo.example.com/CamelCase.
                                --- Many .condition.type values are consistent across
                                resources like Available, but because arbitrary conditions
                                can be useful (see .node.status.conditions), the ability
                                to deconflict is important. The regex it matches is
                                (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                              maxLength: 316
                              pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                              type: string
                          required:
                          - lastTransitionTime
                          - message
                          - reason
                          - status
                          - type
                          type: object
                        type: array
                      instanceTypeScalePhase:
                        type: string
                      members:
                        items:
                          properties:
                            instanceType:
                              description: InstanceType is the current instance type
                                of the member, this may be empty for some providers
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            resources:
                              properties:
                                cpu:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                memory:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                storage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - cpu
                              - memory
                              type: object
                            status:
                              type: string
                          required:
                          - name
                          - resources
                          - status
                          type: object
                        type: array
                      status:
                        type: string
                      updatedReplicas:
                        description: UpdatedReplicas is the `UpdatedReplicas` of the
                          PD StatefulSet
                        format: int32
                        type: integer
                      volume:
                        description: VolumeStatus is the actual status for a storage
                        properties:
                          boundCount:
                            description: BoundCount is the count of bound volumes.
                            type: integer
                          currentCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: CurrentCapacity is the current capacity of
                              the volume. If any volume is resizing, it is the capacity
                              before resizing. If all volumes are resized, it is the
                              resized capacity and same as desired capacity.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          currentCount:
                            description: CurrentCount is the count of volumes whose
                              capacity is equal to `currentCapacity`.
                            type: integer
                          currentStorageClass:
                            description: CurrentStorageClass is the current storage
                              class of the volume. If any volume is modifiying, it
                              is the storage class before modification. If all volumes
                              are modified, it is the modified storage class and same
                              as desired storage class.
                            type: string
                          modifiedCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: ModifiedCapacity is the modified capacity
                              of the volume.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          modifiedCount:
                            description: ModifiedCount is the count of modified volumes.
                            type: integer
                          modifiedStorageClass:
                            description: ModifiedStorageClass is the modified storage
                              calss of the volume.
                            type: string
                          resizedCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: (Deprecated) ResizedCapacity is the desired
                              capacity of the volume.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          resizedCount:
                            description: (Deprecated) ResizedCount is the count of
                              volumes whose capacity is equal to `resizedCapacity`.
                            type: integer
                        required:
                        - currentCapacity
                        type: object
                    required:
                    - status
                    type: object
                  secondaryStatus:
                    description: SecondaryStatus represents if there is a partial
                      failure of db cluster
                    enum:
                    - Healthy
                    - Unhealthy
                    type: string
                  tidb:
                    description: TiDB is the current TiDB status of db cluster
                    properties:
                      auditReady:
                        description: AuditReady is set to true, when tidb is ready
                          to work as spec set in 'cluster.tidb.audit' result will
                          be set in TiDBStatus.
                        type: boolean
                      conditions:
                        items:
                          description: "Condition contains details for one aspect
                            of the current state of this API Resource. --- This struct
                            is intended for direct use as an array at the field path
                            .status.conditions.  For example, type FooStatus struct{
                            \    // Represents the observations of a foo's current
                            state.     // Known .status.conditions.type are: \"Available\",
                            \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                            \    // +patchStrategy=merge     // +listType=map     //
                            +listMapKey=type     Conditions []metav1.Condition `json:\"conditions,omitempty\"
                            patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                            \n     // other fields }"
                          properties:
                            lastTransitionTime:
                              description: lastTransitionTime is the last time the
                                condition transitioned from one status to another.
                                This should be when the underlying condition changed.  If
                                that is not known, then using the time when the API
                                field changed is acceptable.
                              format: date-time
                              type: string
                            message:
                              description: message is a human readable message indicating
                                details about the transition. This may be an empty
                                string.
                              maxLength: 32768
                              type: string
                            observedGeneration:
                              description: observedGeneration represents the .metadata.generation
                                that the condition was set based upon. For instance,
                                if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration
                                is 9, the condition is out of date with respect to
                                the current state of the instance.
                              format: int64
                              minimum: 0
                              type: integer
                            reason:
                              description: reason contains a programmatic identifier
                                indicating the reason for the condition's last transition.
                                Producers of specific condition types may define expected
                                values and meanings for this field, and whether the
                                values are considered a guaranteed API. The value
                                should be a CamelCase string. This field may not be
                                empty.
                              maxLength: 1024
                              minLength: 1
                              pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                              type: string
                            status:
                              description: status of the condition, one of True, False,
                                Unknown.
                              enum:
                              - "True"
                              - "False"
                              - Unknown
                              type: string
                            type:
                              description: type of condition in CamelCase or in foo.example.com/CamelCase.
                                --- Many .condition.type values are consistent across
                                resources like Available, but because arbitrary conditions
                                can be useful (see .node.status.conditions), the ability
                                to deconflict is important. The regex it matches is
                                (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                              maxLength: 316
                              pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                              type: string
                          required:
                          - lastTransitionTime
                          - message
                          - reason
                          - status
                          - type
                          type: object
                        type: array
                      instanceTypeScalePhase:
                        type: string
                      members:
                        items:
                          properties:
                            instanceType:
                              description: InstanceType is the current instance type
                                of the member, this may be empty for some providers
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            resources:
                              properties:
                                cpu:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                memory:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                storage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - cpu
                              - memory
                              type: object
                            status:
                              type: string
                          required:
                          - name
                          - resources
                          - status
                          type: object
                        type: array
                      precheckAudit:
                        properties:
                          message:
                            description: Human-readable message indicating details
                            type: string
                          pass:
                            description: Pass the precheck or not.
                            type: boolean
                        required:
                        - pass
                        type: object
                      status:
                        type: string
                      updatedReplicas:
                        description: UpdatedReplicas is the `UpdatedReplicas` of the
                          TiDB StatefulSet
                        format: int32
                        type: integer
                    required:
                    - status
                    type: object
                  tiflash:
                    description: TiFlash is the current TiFlash status of db cluster
                    properties:
                      conditions:
                        items:
                          description: "Condition contains details for one aspect
                            of the current state of this API Resource. --- This struct
                            is intended for direct use as an array at the field path
                            .status.conditions.  For example, type FooStatus struct{
                            \    // Represents the observations of a foo's current
                            state.     // Known .status.conditions.type are: \"Available\",
                            \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                            \    // +patchStrategy=merge     // +listType=map     //
                            +listMapKey=type     Conditions []metav1.Condition `json:\"conditions,omitempty\"
                            patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                            \n     // other fields }"
                          properties:
                            lastTransitionTime:
                              description: lastTransitionTime is the last time the
                                condition transitioned from one status to another.
                                This should be when the underlying condition changed.  If
                                that is not known, then using the time when the API
                                field changed is acceptable.
                              format: date-time
                              type: string
                            message:
                              description: message is a human readable message indicating
                                details about the transition. This may be an empty
                                string.
                              maxLength: 32768
                              type: string
                            observedGeneration:
                              description: observedGeneration represents the .metadata.generation
                                that the condition was set based upon. For instance,
                                if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration
                                is 9, the condition is out of date with respect to
                                the current state of the instance.
                              format: int64
                              minimum: 0
                              type: integer
                            reason:
                              description: reason contains a programmatic identifier
                                indicating the reason for the condition's last transition.
                                Producers of specific condition types may define expected
                                values and meanings for this field, and whether the
                                values are considered a guaranteed API. The value
                                should be a CamelCase string. This field may not be
                                empty.
                              maxLength: 1024
                              minLength: 1
                              pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                              type: string
                            status:
                              description: status of the condition, one of True, False,
                                Unknown.
                              enum:
                              - "True"
                              - "False"
                              - Unknown
                              type: string
                            type:
                              description: type of condition in CamelCase or in foo.example.com/CamelCase.
                                --- Many .condition.type values are consistent across
                                resources like Available, but because arbitrary conditions
                                can be useful (see .node.status.conditions), the ability
                                to deconflict is important. The regex it matches is
                                (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                              maxLength: 316
                              pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                              type: string
                          required:
                          - lastTransitionTime
                          - message
                          - reason
                          - status
                          - type
                          type: object
                        type: array
                      instanceTypeScalePhase:
                        type: string
                      members:
                        items:
                          properties:
                            instanceType:
                              description: InstanceType is the current instance type
                                of the member, this may be empty for some providers
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            resources:
                              properties:
                                cpu:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                memory:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                storage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - cpu
                              - memory
                              type: object
                            status:
                              type: string
                          required:
                          - name
                          - resources
                          - status
                          type: object
                        type: array
                      status:
                        type: string
                      updatedReplicas:
                        description: UpdatedReplicas is the `UpdatedReplicas` of the
                          TiFlash StatefulSet
                        format: int32
                        type: integer
                      volume:
                        description: VolumeStatus is the actual status for a storage
                        properties:
                          boundCount:
                            description: BoundCount is the count of bound volumes.
                            type: integer
                          currentCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: CurrentCapacity is the current capacity of
                              the volume. If any volume is resizing, it is the capacity
                              before resizing. If all volumes are resized, it is the
                              resized capacity and same as desired capacity.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          currentCount:
                            description: CurrentCount is the count of volumes whose
                              capacity is equal to `currentCapacity`.
                            type: integer
                          currentStorageClass:
                            description: CurrentStorageClass is the current storage
                              class of the volume. If any volume is modifiying, it
                              is the storage class before modification. If all volumes
                              are modified, it is the modified storage class and same
                              as desired storage class.
                            type: string
                          modifiedCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: ModifiedCapacity is the modified capacity
                              of the volume.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          modifiedCount:
                            description: ModifiedCount is the count of modified volumes.
                            type: integer
                          modifiedStorageClass:
                            description: ModifiedStorageClass is the modified storage
                              calss of the volume.
                            type: string
                          resizedCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: (Deprecated) ResizedCapacity is the desired
                              capacity of the volume.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          resizedCount:
                            description: (Deprecated) ResizedCount is the count of
                              volumes whose capacity is equal to `resizedCapacity`.
                            type: integer
                        required:
                        - currentCapacity
                        type: object
                    required:
                    - status
                    type: object
                  tikv:
                    description: TiKV is the current TiKV status of db cluster
                    properties:
                      conditions:
                        items:
                          description: "Condition contains details for one aspect
                            of the current state of this API Resource. --- This struct
                            is intended for direct use as an array at the field path
                            .status.conditions.  For example, type FooStatus struct{
                            \    // Represents the observations of a foo's current
                            state.     // Known .status.conditions.type are: \"Available\",
                            \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                            \    // +patchStrategy=merge     // +listType=map     //
                            +listMapKey=type     Conditions []metav1.Condition `json:\"conditions,omitempty\"
                            patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                            \n     // other fields }"
                          properties:
                            lastTransitionTime:
                              description: lastTransitionTime is the last time the
                                condition transitioned from one status to another.
                                This should be when the underlying condition changed.  If
                                that is not known, then using the time when the API
                                field changed is acceptable.
                              format: date-time
                              type: string
                            message:
                              description: message is a human readable message indicating
                                details about the transition. This may be an empty
                                string.
                              maxLength: 32768
                              type: string
                            observedGeneration:
                              description: observedGeneration represents the .metadata.generation
                                that the condition was set based upon. For instance,
                                if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration
                                is 9, the condition is out of date with respect to
                                the current state of the instance.
                              format: int64
                              minimum: 0
                              type: integer
                            reason:
                              description: reason contains a programmatic identifier
                                indicating the reason for the condition's last transition.
                                Producers of specific condition types may define expected
                                values and meanings for this field, and whether the
                                values are considered a guaranteed API. The value
                                should be a CamelCase string. This field may not be
                                empty.
                              maxLength: 1024
                              minLength: 1
                              pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                              type: string
                            status:
                              description: status of the condition, one of True, False,
                                Unknown.
                              enum:
                              - "True"
                              - "False"
                              - Unknown
                              type: string
                            type:
                              description: type of condition in CamelCase or in foo.example.com/CamelCase.
                                --- Many .condition.type values are consistent across
                                resources like Available, but because arbitrary conditions
                                can be useful (see .node.status.conditions), the ability
                                to deconflict is important. The regex it matches is
                                (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                              maxLength: 316
                              pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                              type: string
                          required:
                          - lastTransitionTime
                          - message
                          - reason
                          - status
                          - type
                          type: object
                        type: array
                      instanceTypeScalePhase:
                        type: string
                      members:
                        items:
                          properties:
                            instanceType:
                              description: InstanceType is the current instance type
                                of the member, this may be empty for some providers
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            resources:
                              properties:
                                cpu:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                memory:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                storage:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - cpu
                              - memory
                              type: object
                            status:
                              type: string
                          required:
                          - name
                          - resources
                          - status
                          type: object
                        type: array
                      status:
                        type: string
                      updatedReplicas:
                        description: UpdatedReplicas is the `UpdatedReplicas` of the
                          TiKV StatefulSet
                        format: int32
                        type: integer
                      volume:
                        description: VolumeStatus is the actual status for a storage
                        properties:
                          boundCount:
                            description: BoundCount is the count of bound volumes.
                            type: integer
                          currentCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: CurrentCapacity is the current capacity of
                              the volume. If any volume is resizing, it is the capacity
                              before resizing. If all volumes are resized, it is the
                              resized capacity and same as desired capacity.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          currentCount:
                            description: CurrentCount is the count of volumes whose
                              capacity is equal to `currentCapacity`.
                            type: integer
                          currentStorageClass:
                            description: CurrentStorageClass is the current storage
                              class of the volume. If any volume is modifiying, it
                              is the storage class before modification. If all volumes
                              are modified, it is the modified storage class and same
                              as desired storage class.
                            type: string
                          modifiedCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: ModifiedCapacity is the modified capacity
                              of the volume.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          modifiedCount:
                            description: ModifiedCount is the count of modified volumes.
                            type: integer
                          modifiedStorageClass:
                            description: ModifiedStorageClass is the modified storage
                              calss of the volume.
                            type: string
                          resizedCapacity:
                            anyOf:
                            - type: integer
                            - type: string
                            description: (Deprecated) ResizedCapacity is the desired
                              capacity of the volume.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          resizedCount:
                            description: (Deprecated) ResizedCount is the count of
                              volumes whose capacity is equal to `resizedCapacity`.
                            type: integer
                        required:
                        - currentCapacity
                        type: object
                    required:
                    - status
                    type: object
                  version:
                    description: Version is the current version of db cluster
                    type: string
                required:
                - secondaryStatus
                - version
                type: object
              fromProvider:
                description: FromProvider encodes the provider specific status of
                  the Cluster, e.g. AWS IAM role of the cluster
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              lastActiveTimestamp:
                description: LastActiveTimestamp is the last active time of the cluster
                  in RFC3339 format.
                format: date-time
                type: string
              lastDetectTimestamp:
                description: LastDetectTimestamp is the last time we try to detect
                  the cluster and update LastActiveTimestamp.
                format: date-time
                type: string
              metrics:
                description: Metrics represents the status of the monitoring service
                  for the TiDB cluster
                properties:
                  baseUrl:
                    type: string
                  credentialConfig:
                    type: string
                required:
                - baseUrl
                - credentialConfig
                type: object
              objectStore:
                description: ObjectStore represents the status of the object store
                  for the TiDB cluster
                properties:
                  gcs:
                    properties:
                      path:
                        type: string
                    required:
                    - path
                    type: object
                  s3:
                    properties:
                      path:
                        type: string
                    required:
                    - path
                    type: object
                type: object
              phase:
                description: Phase is lifecycle phase of the Cluster
                enum:
                - Pending
                - Creating
                - Running
                - Hibernated
                - PendingDelete
                - Deleting
                - Scaling
                - Upgrading
                - Unavailable
                - Suspend
                type: string
              proxy:
                description: Proxy represents the status of the proxy service for
                  the TiDB cluster.
                properties:
                  credentialConfig:
                    type: string
                  endpoint:
                    type: string
                required:
                - credentialConfig
                - endpoint
                type: object
              reason:
                description: Reason explains why the cluster is in current phase to
                  human, reason is not supposed to be parsed by program, Phase should
                  be used instead.
                type: string
              sqlEndpoints:
                description: SQLEndpoints represents the status of the SQL endpoints
                properties:
                  privateEndpoint:
                    nullable: true
                    properties:
                      host:
                        type: string
                      port:
                        type: integer
                      token:
                        type: string
                    required:
                    - host
                    - port
                    type: object
                  privateLinkService:
                    nullable: true
                    properties:
                      aws:
                        nullable: true
                        properties:
                          connections:
                            description: Connections contains all the connections
                              on the AWS endpoint service
                            items:
                              properties:
                                endpoint:
                                  description: Endpoint represents the VPC endpoint
                                    ID
                                  type: string
                                message:
                                  description: Message contains the error message
                                    if in 'Failed' phase.
                                  type: string
                                phase:
                                  description: PrivateLinkServiceConnectionPhase represents
                                    the phase of the connection
                                  enum:
                                  - Pending
                                  - Active
                                  - Deleting
                                  - Failed
                                  type: string
                              required:
                              - endpoint
                              - message
                              - phase
                              type: object
                            nullable: true
                            type: array
                          nlb:
                            description: NLB is the network LoadBalance used by the
                              AWS endpoint service
                            nullable: true
                            type: string
                          port:
                            description: Port is the port to connect with privatelink
                              service
                            format: int32
                            nullable: true
                            type: integer
                          privateDNSName:
                            description: PrivateDNSName is the private  DNS name of
                              the AWS endpoint service, constructed from DNS identity
                            nullable: true
                            type: string
                          serviceID:
                            description: ServiceID is the ID of the the AWS endpoint
                              service
                            nullable: true
                            type: string
                          serviceName:
                            description: ServiceName is the name of the AWS ednpoint
                              service
                            nullable: true
                            type: string
                        required:
                        - nlb
                        - port
                        - privateDNSName
                        - serviceID
                        - serviceName
                        type: object
                      creationTimestamp:
                        description: CreationTimestamp is a timestamp representing
                          the server time when this object was created. It is represented
                          in RFC3339 form and is in UTC.
                        format: date-time
                        type: string
                      message:
                        nullable: true
                        type: string
                      phase:
                        enum:
                        - Creating
                        - Active
                        - Deleting
                        - Unavailable
                        nullable: true
                        type: string
                    type: object
                  publicEndpoint:
                    nullable: true
                    properties:
                      host:
                        type: string
                      port:
                        type: integer
                      token:
                        type: string
                    required:
                    - host
                    - port
                    type: object
                type: object
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
